diff --git a/exposition/forms.py b/exposition/forms.py index 1dada998..2f5becb7 100644 --- a/exposition/forms.py +++ b/exposition/forms.py @@ -450,10 +450,14 @@ class TimeTableForm(forms.Form): # uses enumerate for detect iteration number # first iteration is a default lang so it required fields required = True if lid == 0 else False + self.fields['name_%s' % code] = forms.CharField(label='Название программы', required=required, + widget=forms.TextInput(attrs={'style':'width: 550px'})) self.fields['programe_%s' % code] = forms.CharField(label='Программа', required=required, widget=TinyMCE()) self.fields['speaker_%s' % code] = forms.CharField(label='Спикеры', required=False, widget=forms.TextInput(attrs={'style':'width: 550px'})) + self.fields['place_%s' % code] = forms.CharField(label='Место проведения', required=False, + widget=forms.TextInput(attrs={'style':'width: 550px'})) def save(self,exposition=None): data = self.cleaned_data diff --git a/exposition/models.py b/exposition/models.py index 68ac5c5f..3d9c2c8b 100644 --- a/exposition/models.py +++ b/exposition/models.py @@ -180,6 +180,17 @@ class Exposition(TranslatableModel, EventMixin, ExpoMixin): def get_visit_url(self): return '/exposition-visit/%s/'%self.id + def get_timetables_days(self): + tables = self.business_program.all() + days = [] + for t in tables: + d = t.begin.replace(hour = 0, minute = 0, second = 0, microsecond = 0) + if not d in days: + days.append(d) + + return days + + def clone(self): @@ -248,8 +259,10 @@ class TimeTable(TranslatableModel): modified = models.DateTimeField(auto_now=True) #translated fields translations = TranslatedFields( + name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), programe = models.TextField(verbose_name='Программа'), - speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True) + speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True), + place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) ) def to_dict(self): @@ -268,8 +281,10 @@ class TmpTimeTable(TranslatableModel): modified = models.DateTimeField(auto_now=True) #translated fields translations = TranslatedFields( + name = models.CharField(verbose_name='Название программы', max_length=255, blank=True), programe = models.TextField(verbose_name='Программа'), - speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True) + speaker = models.CharField(verbose_name='Спикеры', max_length=255, blank=True), + place = models.CharField(verbose_name='Место проведения', max_length=255, blank=True) ) def clone(self, exposition=None): diff --git a/proj/settings.py b/proj/settings.py index 33295da1..28bb4013 100644 --- a/proj/settings.py +++ b/proj/settings.py @@ -336,6 +336,7 @@ INSTALLED_APPS = ( 'django_messages', 'bitfield', 'djutils', + 'pytils', #'social_auth', 'social.apps.django_app.default', #'south', diff --git a/settings/templatetags/template_filters.py b/settings/templatetags/template_filters.py index 72c419ec..7d2570c4 100644 --- a/settings/templatetags/template_filters.py +++ b/settings/templatetags/template_filters.py @@ -117,3 +117,10 @@ def timesince_exp(value, date=None): if d>delta: return True return False + +@register.filter +def timetable_by_day(qs, day): + """ + filter for filtering timetables by day + """ + return qs.filter(begin__year=day.year, begin__month=day.month, begin__day=day.day) diff --git a/templates/admin/exposition/exposition_add.html b/templates/admin/exposition/exposition_add.html index e32fe7f2..b31596e7 100644 --- a/templates/admin/exposition/exposition_add.html +++ b/templates/admin/exposition/exposition_add.html @@ -647,6 +647,10 @@ {{ timetable_form.begin }} {{ timetable_form.end }} + {% with field='name' form=timetable_form languages=languages %} + {% include 'admin/forms/multilang.html' %} + {% endwith %} + {% with field='programe' form=timetable_form languages=languages %} {% include 'admin/forms/multilang.html' %} {% endwith %} @@ -654,13 +658,18 @@ {% with field='speaker' form=timetable_form languages=languages %} {% include 'admin/forms/multilang.html' %} {% endwith %} + {% with field='place' form=timetable_form languages=languages %} + {% include 'admin/forms/multilang.html' %} + {% endwith %} + + diff --git a/templates/client/exposition/exposition_programm.html b/templates/client/exposition/exposition_programm.html index 924aee9a..41a296bf 100644 --- a/templates/client/exposition/exposition_programm.html +++ b/templates/client/exposition/exposition_programm.html @@ -1,6 +1,7 @@ {% extends 'base_catalog.html' %} {% load static %} {% load i18n %} +{% load pytils_dt %} {% load template_filters %} {% block content_list %} @@ -69,20 +70,62 @@ - -
- +
+
+
Деловая программа
+
+ {% for day in object_list.0.get_timetables_days %} +
+ +
+
    + {% for pr in object_list.0.business_program.all|timetable_by_day:day %} +
  • +
    +
    +
    {{ pr.begin|date:"G:i" }} – {{ pr.end|date:"G:i" }}
    +
    {{ pr.name }}
    +
    +
    + {{ pr.programe|safe }}Организатор: {{ pr.speaker }} +
    + +
    +
  • + {% endfor %} +
+
+
+ {% endfor %} +
+ {% with event=exposition filter=filter %} + {% include 'includes/event_steps.html' %} + {% endwith %} +
- {{ object_list.0 }} + {{ object_list.0 }}
diff --git a/templates/client/includes/event_object.html b/templates/client/includes/event_object.html index 9c9eb007..4d3897f1 100644 --- a/templates/client/includes/event_object.html +++ b/templates/client/includes/event_object.html @@ -28,7 +28,7 @@
{% if exposition.discount %} - Скидка -{{ exposition.discount }}% + {% trans 'Скидка' %} -{{ exposition.discount }}%
{{ exposition.discount_description|safe|linebreaks }}
{% endif %}
@@ -38,9 +38,9 @@
{% if exposition.main_title %} - {{ exposition.main_title|safe|linebreaks }} + {{ exposition.main_title|safe }} {% else %} - {{ exposition.name|safe|linebreaks }} + {{ exposition.name|safe }} {% endif %}
@@ -139,9 +139,11 @@
{% trans 'Дополнительная информация' %}
diff --git a/templates/client/includes/event_steps.html b/templates/client/includes/event_steps.html index 4d71c53a..8cad6640 100644 --- a/templates/client/includes/event_steps.html +++ b/templates/client/includes/event_steps.html @@ -7,7 +7,7 @@