business programm

remotes/origin/1203
Nazar Kotyuk 12 years ago
parent c1e4e2c9c6
commit 8f9aa60fa7
  1. 4
      exposition/forms.py
  2. 19
      exposition/models.py
  3. 1
      proj/settings.py
  4. 7
      settings/templatetags/template_filters.py
  5. 11
      templates/admin/exposition/exposition_add.html
  6. 53
      templates/client/exposition/exposition_programm.html
  7. 12
      templates/client/includes/event_object.html
  8. 2
      templates/client/includes/event_steps.html

@ -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

@ -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):

@ -336,6 +336,7 @@ INSTALLED_APPS = (
'django_messages',
'bitfield',
'djutils',
'pytils',
#'social_auth',
'social.apps.django_app.default',
#'south',

@ -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)

@ -647,6 +647,10 @@
{{ timetable_form.begin }} {{ timetable_form.end }}
</div>
</div>
{% 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 %}
<!--
<div class="control-group">
<label class="control-label">Организатор:</label>
<div class="controls">
{{ timetable_form.timetable_organiser }}
</div>
</div>
</div>
-->
</div>
</div>

@ -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 @@
</div>
</div>
<div>
<hr/>
<div class="e-programm">
<div class="sect-title">Деловая программа</div>
<div class="ep-wrap">
{% for day in object_list.0.get_timetables_days %}
<div class="ep-sect {% if forloop.counter == 1 %}eps-opened{% endif %}">
<div class="ep-sect-title">
<a class="eps-open" href="#">
{% ifequal LANGUAGE_CODE 'ru' %}
{{ day|ru_strftime_preposition:"%d %B" }}
{% else %}
{{ day|date:"j F" }}
{% endifequal %}
</a>
</div>
<div class="ep-sect-body">
<ul>
{% for pr in object_list.0.business_program.all|timetable_by_day:day %}
<li>
<div class="ep-item">
<header class="clearfix">
<div class="ep-time">{{ pr.begin|date:"G:i" }} – {{ pr.end|date:"G:i" }}</div>
<div class="ep-title"><span>{{ pr.name }}</span></div>
</header>
<div class="ep-body">
{{ pr.programe|safe }}<span class="ep-coord">Организатор: {{ pr.speaker }}</span>
</div>
<footer class="clearfix">
<div class="ap-area">{{ pr.place }}</div>
</footer>
</div>
</li>
{% endfor %}
</ul>
</div>
</div>
{% endfor %}
</div>
</div>
{% with event=exposition filter=filter %}
{% include 'includes/event_steps.html' %}
{% endwith %}
</div>
<div class="ed-back">
<a href="/{{ filter|generate_url:"event" }}">{{ object_list.0 }}</a>
<a href="/{{ filter|generate_url:'event' }}">{{ object_list.0 }}</a>
</div>
<div class="i-sub-articles">
<ul>
{% for service in object_list.0.get_services %}
<li><a href="#">{{ service.name }}</a></li>
<li><a href="{% if filter %}/{{ filter|generate_url:'event' }}/service/{{ service.url }}/{% else %}{{ event.get_permanent_url }}/service/{{ service.url }}/{%endif%}">
{{ service.name }}
</a>
</li>
{% endfor %}
</ul>
</div>

@ -28,7 +28,7 @@
<div class="i-discount">
{% if exposition.discount %}
<a class="discount-button" href="#">Скидка -{{ exposition.discount }}%</a>
<a class="discount-button" href="#">{% trans 'Скидка' %} -{{ exposition.discount }}%</a>
<div class="dsc-text">{{ exposition.discount_description|safe|linebreaks }}</div>
{% endif %}
</div>
@ -38,9 +38,9 @@
<header>
<div class="i-title">
{% if exposition.main_title %}
{{ exposition.main_title|safe|linebreaks }}
{{ exposition.main_title|safe }}
{% else %}
{{ exposition.name|safe|linebreaks }}
{{ exposition.name|safe }}
{% endif %}
</div>
</header>
@ -139,9 +139,11 @@
<div class="i-event-additional clearfix">
<div class="sect-title">{% trans 'Дополнительная информация' %}</div>
<ul class="e-docs">
<!--
{% if exposition.business_program.all %}
<li><a href="/{{ filter|generate_url}}/program">{% trans 'Деловая программа' %}</a></li>
-->
{% endif %}
<li><a href="/{{ filter|generate_url}}/price">{% trans 'Условия участия' %}</a></li>
</ul>
<dl class="add-info">

@ -7,7 +7,7 @@
<ul>
<li class="s1">
<div class="label">1. {% trans 'Зарегистрируйтесь на событие' %}</div>
<a class="step" href="{% if filter %}/{{ filter|generate_url }}/service/visit/{% else %}{{ event.get_permanent_url }}/service/visit/{%endif%}">
<a class="step" href="{% if filter %}/{{ filter|generate_url:'event' }}/service/visit/{% else %}{{ event.get_permanent_url }}/service/visit/{%endif%}">
{% trans 'Билеты на выставку' %}
</a>
</li>

Loading…
Cancel
Save