diff --git a/apps/conference/forms.py b/apps/conference/forms.py index 3cdb0d39..8cf6ff62 100644 --- a/apps/conference/forms.py +++ b/apps/conference/forms.py @@ -6,6 +6,7 @@ from django.forms.util import ErrorList from django.core.validators import validate_email, URLValidator from django.utils.translation import ugettext as _ #models +from .models import flags as FLAGS from events.models import TargetAudience from models import Conference, TimeTable, CURRENCY, Statistic, BIT_AUDIENCE, Speaker from country.models import Country @@ -24,6 +25,8 @@ from functions.form_check import translit_with_separator from functions.admin_forms import AdminFilterForm, EventsAdminFilterFormMixin from functions.forms import ML_ModelMultipleChoiceField +from bitfield.forms import BitFieldCheckboxSelectMultiple + places = [(item.id, item.name) for item in PlaceConference.objects.language().all()] places.insert(0,('', 'Не выбрано')) diff --git a/apps/conference/models.py b/apps/conference/models.py index 72be39fb..654bd0fa 100644 --- a/apps/conference/models.py +++ b/apps/conference/models.py @@ -8,6 +8,7 @@ from django.core.urlresolvers import reverse_lazy from django.db import models from django.db.models import Q from django.db.models.signals import post_save, pre_save +from django.dispatch import receiver from django.utils import translation from django.utils.translation import ugettext as _ @@ -23,7 +24,7 @@ from functions.translate import fill_with_signal from functions.files import gen_path from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from photologue.models import Gallery -from service.models import Service +from service.models import Service, LinkedService from events.common import MEMBERS, VISITORS, PRICE, PRICE_EUR from events.models import TargetAudience @@ -296,3 +297,12 @@ pre_save.connect(pre_save_handler, sender=Conference) post_save.connect(post_save_handler, sender=Conference) post_save.connect(post_save_handler, sender=TimeTable) post_save.connect(post_save_handler, sender=Statistic) + + +@receiver(post_save, sender=Conference) +def conference_services_handler(sender, instance, **kwargs): + """ + При сохранении конференции сохраняем данные по услугам + """ + for service in LinkedService.objects.all(): + service.update_all_flags() diff --git a/apps/conference/signals.py b/apps/conference/signals.py deleted file mode 100644 index 59e8479f..00000000 --- a/apps/conference/signals.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -from django.db.models.signals import post_save -from models import Conference -from functions.signal_handlers import post_save_handler - -#post_save.connect(post_save_handler, sender=Conference) diff --git a/apps/exposition/models.py b/apps/exposition/models.py index 3598fe7d..22c54869 100644 --- a/apps/exposition/models.py +++ b/apps/exposition/models.py @@ -10,6 +10,7 @@ from django.core.urlresolvers import reverse_lazy from django.db import models from django.db.models import Q from django.db.models.signals import post_save, pre_save +from django.dispatch import receiver from django.utils import translation from django.utils.translation import ugettext as _ from functions.custom_fields import EnumField @@ -21,7 +22,7 @@ from hvad.models import TranslatableModel, TranslatedFields, TranslationManager from import_xls.model_utils import ExpoImportManager from manager import ClientManager from organiser.models import Organiser -from service.models import Service +from service.models import Service, LinkedService from events.common import MEMBERS, VISITORS, PRICE, PRICE_EUR @@ -363,3 +364,12 @@ post_save.connect(post_save_handler, sender=Exposition) post_save.connect(post_save_handler, sender=TimeTable) post_save.connect(post_save_handler, sender=TmpTimeTable) post_save.connect(post_save_handler, sender=Statistic) + + +@receiver(post_save, sender=Exposition) +def exposition_services_handler(sender, instance, **kwargs): + """ + При сохранении выставки сохраняем данные по услугам + """ + for service in LinkedService.objects.all(): + service.update_all_flags() diff --git a/apps/exposition/signals.py b/apps/exposition/signals.py deleted file mode 100644 index 6b7ad132..00000000 --- a/apps/exposition/signals.py +++ /dev/null @@ -1,6 +0,0 @@ -# -*- coding: utf-8 -*- -from django.db.models.signals import post_save -from models import Exposition -from functions.signal_handlers import post_save_handler - -#post_save.connect(post_save_handler, sender=Exposition) diff --git a/templates/c_admin/conference/conference.html b/templates/c_admin/conference/conference.html index 94b9543f..1fa1fed4 100644 --- a/templates/c_admin/conference/conference.html +++ b/templates/c_admin/conference/conference.html @@ -152,6 +152,13 @@ {{ form.audience.errors }} + {# services #} +
+ +
{{ form.services }} + {{ form.services.errors }} +
+
{# country #}