diff --git a/conference/forms.py b/conference/forms.py index 12040fc2..e4c00e16 100644 --- a/conference/forms.py +++ b/conference/forms.py @@ -195,6 +195,32 @@ class ConferenceCreateForm(forms.Form): conference.save() return conference + + def clean(self): + from functions.default_texts import default_conf_text, booking_url + d = self.cleaned_data + + booking_url=booking_url.format(city_id=d['city'],code='ru', + date1=d['data_begin'].strftime("%-d"), date2=d['data_begin'].strftime("%Y"), + date3=d['data_end'].strftime("%-m"),date4=d['data_end'].strftime("%-d"), + date5=d['data_end'].strftime("%Y"), date6=d['data_end'].strftime("%-m")) + if d['place']: + try: + place = PlaceConference.objects.language().get(id=int(d['place'])).name + except PlaceConference.DoesNotExist: + place = u"" + else: + place = u"место проведения конференции" + if not d['description_ru'] or d['description_en']: + d['description_ru'] = default_conf_text.format( + name=d['name_ru'], fr=d['data_begin'].strftime("%d.%m.%Y"), + city=City.objects.language().get(id=d['city']), + country=Country.objects.language().get(id=d['country']), + place=place, + booking_url=booking_url + ) + return d + """ def clean(self): id = self.cleaned_data.get('conference_id') diff --git a/exposition/forms.py b/exposition/forms.py index 5cb1380e..55695ef8 100644 --- a/exposition/forms.py +++ b/exposition/forms.py @@ -217,7 +217,6 @@ class ExpositionCreateForm(forms.Form): exposition.country = Country.objects.get(id=data['country']) exposition.city = City.objects.get(id=data['city']) - if data.get('place'): exposition.place = PlaceExposition.objects.get(id=data['place']) else: @@ -239,6 +238,28 @@ class ExpositionCreateForm(forms.Form): return exposition def clean(self): + from functions.default_texts import default_expo_descr, booking_url + d = self.cleaned_data + booking_url=booking_url.format(city_id=d['city'],code='ru', + date1=d['data_begin'].strftime("%-d"), date2=d['data_begin'].strftime("%Y"), + date3=d['data_end'].strftime("%-m"),date4=d['data_end'].strftime("%-d"), + date5=d['data_end'].strftime("%Y"), date6=d['data_end'].strftime("%-m")) + + if d['place']: + try: + place = PlaceExposition.objects.language().get(id=int(d['place'])).name + except PlaceExposition.DoesNotExist: + place = u"" + else: + place = u"" + descr = d.get('description_ru') or d.get('description_en') + if not descr: + descr = default_expo_descr.format(name=d['name_ru'], date_fr=d['data_begin'].strftime("%d.%m.%Y"), + date_to=d['data_end'].strftime("%d.%m.%Y"), city=City.objects.language().get(id=d['city']), + country=Country.objects.language().get(id=d['country']), + place=place, + booking_url=booking_url) + self.cleaned_data['description_ru'] = descr id = self.cleaned_data.get('exposition_id') name_ru = self.cleaned_data.get('name_ru') @@ -359,7 +380,6 @@ class ExpositionCreateForm(forms.Form): price_catalog = cleaned_data.get('price_catalog').strip() return is_positive_integer(price_catalog) - def clean_visitors(self): """ checking visitors @@ -449,6 +469,12 @@ class ExpositionCreateForm(forms.Form): discount = cleaned_data.get('discount').strip() return is_positive_integer(discount) + + + + + + class ExpositionDeleteForm(forms.ModelForm): url = forms.CharField(widget=forms.HiddenInput()) diff --git a/functions/default_texts.py b/functions/default_texts.py new file mode 100644 index 00000000..a4a307ed --- /dev/null +++ b/functions/default_texts.py @@ -0,0 +1,49 @@ +# -*- coding: utf-8 -*- + +default_expo_descr = u"""Выставка {name} проводится с {date_fr} по {date_to} в городе {city.name}, {country.name}. +Экспонируемые продукты и разделы выставки Вы можете посмотреть ниже, в блоке «Дополнительная информация». +Полный список участников {name} размещается на официальном сайте выставки и постоянно обновляется. +Там же Вы сможете найти экспонентов предыдущего года. Деловая программа {name} обычно публикуется ближе к началу события. +
+Ваш личный календарь +
+Добавьте выставку {name} в расписание, чтобы не потерять важное событие. Создавайте свой календарь мероприятий, +просто нажав кнопку Добавить в календарь. +
+Планируете самостоятельную поездку на {name}? +
+Мы рекомендуем посмотреть отели и цены в период проведения выставки здесь . +Как добраться до выставочного центра {place} можно посмотреть здесь. + +Не забудьте проверить место и даты выставки на официальном сайте и в календаре выставочного комплекса. +Событие могут перенести, отменить, объединить с проектом схожей тематики. +Expomap не несет ответственности за неточности предоставляемой информации. +Есть вопрос о посещении или участии в {name}? Ответим по тел. +7 (499) 999-12-07 +""" +default_conf_text = u""" +Конференция {name} проходит с по {fr} в городе {city.name}, {country.name}. +Посмотреть, как проехать в {place}, можно посмотреть на сайте конгрессной площадки. +Деловая программа {name} разбита на секции по дням и размещается на сайте мероприятия с подробным списком +докладчиков конференции. Спикеров конференции {name} обычно окончательно утверждают за 1-2 месяца до начала конференции. +
+Ваши деловые контакты на {name} +
+Добавьте конференцию {name} в расписание, чтобы не потерять важное событие, + где встречаются профессионалы нужной Вам отрасли. Создавайте свой календарь мероприятий, просто нажав кнопку + "Добавить в календарь". +
+Планируете самостоятельную поездку на {name} ? +
+Если Вам требуется размещение, мы рекомендуем посмотреть отели и цены в период проведения конференции здесь. +Не забудьте проверить место и даты конференции на официальном сайте и в календаре организатора. Событие могут перенести, +отменить, объединить с проектом схожей тематики. Expomap не несет ответственности за неточности +предоставляемой информации. +Есть вопрос по участию в {name} ? Ответим по тел. +7 (499) 999-12-07 +""" + +booking_url="http://www.booking.com/searchresults.html?aid=333667&city={city_id}&"\ + "do_availability_check=on"\ + "&label=expo_search&lang={code}&checkin_monthday={date1}&"\ + "checkin_year_month={date2}-{date3}&"\ + "checkout_monthday={date4}&checkout_year_month="\ + "{date5}-{date6}" \ No newline at end of file