From 9b73dcf320a596fda7c753e0745d26225c0f3e0a Mon Sep 17 00:00:00 2001 From: Nazar Kotiuk Date: Fri, 26 Dec 2014 12:04:48 +0200 Subject: [PATCH] Days without events --- settings/templatetags/tempalte_tags.py | 23 ++++++++++++ settings/templatetags/template_filters.py | 9 +++++ .../includes/accounts/calendar_table.html | 36 ++++++++----------- 3 files changed, 46 insertions(+), 22 deletions(-) diff --git a/settings/templatetags/tempalte_tags.py b/settings/templatetags/tempalte_tags.py index 7c23ccc5..5061e270 100644 --- a/settings/templatetags/tempalte_tags.py +++ b/settings/templatetags/tempalte_tags.py @@ -47,6 +47,29 @@ def get_date(parser, token): return Date() +class SetVarNode(template.Node): + def __init__(self, var_name, var_value): + self.var_name = var_name + self.var_value = var_value + + def render(self, context): + try: + value = template.Variable(self.var_value).resolve(context) + except template.VariableDoesNotExist: + value = "" + context[self.var_name] = value + return u"" + +def set_var(parser, token): + """ + {% set = %} + """ + parts = token.split_contents() + if len(parts) < 4: + raise template.TemplateSyntaxError("'set' tag must be of the form: {% set = %}") + return SetVarNode(parts[1], parts[3]) + +register.tag('set', set_var) register.tag('get_date', get_date) diff --git a/settings/templatetags/template_filters.py b/settings/templatetags/template_filters.py index 6c637c98..aad5a748 100644 --- a/settings/templatetags/template_filters.py +++ b/settings/templatetags/template_filters.py @@ -234,3 +234,12 @@ def get_rus_day(date): days = {1: u'Пн', 2: u'Вт', 3: u'Ср', 4: u'Чт', 5: u'Пт', 6: u'Сб', 0: u'Вс',} return days.get(date.weekday(), '') + +@register.filter +def in_events(day, events): + for event in events: + if event.data_begin <= day.date() <= event.data_end: + return True + return False + + diff --git a/templates/client/includes/accounts/calendar_table.html b/templates/client/includes/accounts/calendar_table.html index 55fdf767..a89e6d6d 100644 --- a/templates/client/includes/accounts/calendar_table.html +++ b/templates/client/includes/accounts/calendar_table.html @@ -17,10 +17,10 @@
+ {% with events=events %} - {% for day in days %} {% ifnotequal day current_day %} @@ -37,6 +37,18 @@ + {# первый ряд с отображениями дней где нет событий #} + + {% for day in days %} + {% if day|in_events:events %} + + {% else %} + {# нет событий в эти дни #} + {% endif %} + + {% endfor %} + + {% for event in events %} {% for day in days %} @@ -111,29 +123,9 @@ {% endfor %} - {% comment %} - {% if events %} - - - {% for day in days %} - {% ifnotequal day current_day %} - - {% else %} - - {% endifnotequal %} - {% endfor %} - - - {% endif %} - {% endcomment %}
{{ day|date:"d" }}/{% if LANGUAGE_CODE == 'ru' %}{{ day|get_rus_day }}{% else %}{{ day|date:"D" }}{% endif %}
 
{{ day|date:"d" }}/{{ day|date:"D"|lower }}
-
-
{% trans 'Сегодня' %}
- {{ day|date:"d" }}/{{ day|date:"D"|lower }} -
-
- + {% endwith %}