From ba1550743b20d6b7dfdc00a9c6bb14bb88d789e2 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Sun, 10 Apr 2016 23:55:18 +0200 Subject: [PATCH] add price sync and fine display --- ...-events.py => festival-sync-eve-events.py} | 16 ++++++++-- .../0011_auto_20160410_2330.py | 30 +++++++++++++++++++ .../0012_auto_20160410_2336.py | 20 +++++++++++++ .../agenda/includes/event_metainfo.html | 5 +++- 4 files changed, 67 insertions(+), 4 deletions(-) rename app/festival/management/commands/{sync-eve-events.py => festival-sync-eve-events.py} (81%) create mode 100644 app/migrations/mezzanine_agenda/0011_auto_20160410_2330.py create mode 100644 app/migrations/mezzanine_agenda/0012_auto_20160410_2336.py diff --git a/app/festival/management/commands/sync-eve-events.py b/app/festival/management/commands/festival-sync-eve-events.py similarity index 81% rename from app/festival/management/commands/sync-eve-events.py rename to app/festival/management/commands/festival-sync-eve-events.py index e6edc437..01948c05 100644 --- a/app/festival/management/commands/sync-eve-events.py +++ b/app/festival/management/commands/festival-sync-eve-events.py @@ -25,11 +25,13 @@ class Command(BaseCommand): def cleanup(self): # for event in ma_models.Event.objects.all(): # event.delete() - for location in ma_models.EventLocation.objects.all(): - location.delete() + # for location in ma_models.EventLocation.objects.all(): + # location.delete() + for event_price in ma_models.EventPrice.objects.all(): + event_price.delete() def handle(self, *args, **kwargs): - self.cleanup() + # self.cleanup() meta_event_name = kwargs.get('meta_event') meta_trans_all = eve_models.MetaEventTranslation.objects.all() for meta_trans in meta_trans_all: @@ -58,12 +60,20 @@ class Command(BaseCommand): location = ma_models.EventLocation(title=manifestation.location.name) address = '\n'.join([manifestation.location.address, manifestation.location.postalcode + ' ' + manifestation.location.city]) location.address = address + location.external_id = manifestation.id location.clean() location.save() event.location = location category, c = ma_models.EventCategory.objects.get_or_create(name=eve_event.event_category.name) event.category = category + event.save() + + eve_prices = eve_models.PriceManifestation.objects.filter(manifestation=manifestation) + for price in eve_prices: + event_price, c = ma_models.EventPrice.objects.get_or_create(value=float(price.value)) + if event: + event.prices.add(event_price) if not first: event.parent = parent diff --git a/app/migrations/mezzanine_agenda/0011_auto_20160410_2330.py b/app/migrations/mezzanine_agenda/0011_auto_20160410_2330.py new file mode 100644 index 00000000..53985ab1 --- /dev/null +++ b/app/migrations/mezzanine_agenda/0011_auto_20160410_2330.py @@ -0,0 +1,30 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.2 on 2016-04-10 21:30 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mezzanine_agenda', '0010_eventlocation_external_id'), + ] + + operations = [ + migrations.RemoveField( + model_name='eventprice', + name='price', + ), + migrations.AddField( + model_name='eventprice', + name='value', + field=models.FloatField(default=0, verbose_name='value'), + preserve_default=False, + ), + migrations.AlterField( + model_name='eventlocation', + name='featured_name', + field=models.CharField(blank=True, max_length=512, null=True, verbose_name='featured name'), + ), + ] diff --git a/app/migrations/mezzanine_agenda/0012_auto_20160410_2336.py b/app/migrations/mezzanine_agenda/0012_auto_20160410_2336.py new file mode 100644 index 00000000..e7f9fac0 --- /dev/null +++ b/app/migrations/mezzanine_agenda/0012_auto_20160410_2336.py @@ -0,0 +1,20 @@ +# -*- coding: utf-8 -*- +# Generated by Django 1.9.2 on 2016-04-10 21:36 +from __future__ import unicode_literals + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mezzanine_agenda', '0011_auto_20160410_2330'), + ] + + operations = [ + migrations.AlterField( + model_name='eventprice', + name='unit', + field=models.CharField(blank=True, max_length=16, null=True, verbose_name='Unit'), + ), + ] diff --git a/app/templates/agenda/includes/event_metainfo.html b/app/templates/agenda/includes/event_metainfo.html index 15bbd16e..1fcc9e7d 100644 --- a/app/templates/agenda/includes/event_metainfo.html +++ b/app/templates/agenda/includes/event_metainfo.html @@ -5,10 +5,13 @@ {% if event.end %} {% if event.end|date == event.start|date and event.end.hour|subtract:event.start.hour > 3 %}{{ event.end|time:"TIME_FORMAT" }}{% endif %} {% if unit_booking %} - | {% for price in event.prices.all %}{{ price|floatformat }} €{% if not forloop.last %} - {% endif %}{% endfor %} +    |    + {% for price in event.prices.all %}{{ price.value|floatformat:"-2" }} €{% if not forloop.last %} / {% endif %}{% endfor %} + {% if event.prices.all.0|floatformat != '0' %} {% trans "Booking" %} + {% endif %} {% endif %} {% endif %} {% if event.location %} -- 2.39.5