Days without events

remotes/origin/1203
Nazar Kotiuk 11 years ago
parent aa922bd15c
commit 9b73dcf320
  1. 23
      settings/templatetags/tempalte_tags.py
  2. 9
      settings/templatetags/template_filters.py
  3. 36
      templates/client/includes/accounts/calendar_table.html

@ -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 <var_name> = <var_value> %}
"""
parts = token.split_contents()
if len(parts) < 4:
raise template.TemplateSyntaxError("'set' tag must be of the form: {% set <var_name> = <var_value> %}")
return SetVarNode(parts[1], parts[3])
register.tag('set', set_var)
register.tag('get_date', get_date)

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

@ -17,10 +17,10 @@
<div class="cal-wrap">
<div class="calendar-container" >
<div class="scroll-content" id="calendar-scroll-box">
{% with events=events %}
<table id="calendar-table">
<tbody class="cal-days">
<tr>
{% for day in days %}
{% ifnotequal day current_day %}
<td width="115"><div><b>{{ day|date:"d" }}</b>/<i>{% if LANGUAGE_CODE == 'ru' %}{{ day|get_rus_day }}{% else %}{{ day|date:"D" }}{% endif %}</i></div></td>
@ -37,6 +37,18 @@
</tbody>
<tbody class="cal-body">
{# первый ряд с отображениями дней где нет событий #}
<tr>
{% for day in days %}
{% if day|in_events:events %}
<td></td>
{% else %}
<td class="c-cur">&nbsp;</td>{# нет событий в эти дни #}
{% endif %}
{% endfor %}
</tr>
{% for event in events %}
<tr>
{% for day in days %}
@ -111,29 +123,9 @@
</tr>
{% endfor %}
</tbody>
{% comment %}
{% if events %}
<tbody class="cal-days">
<tr>
{% for day in days %}
{% ifnotequal day current_day %}
<td><div><b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i></div></td>
{% else %}
<td class="c-cur">
<div>
<div class="cur-mark">{% trans 'Сегодня' %}</div>
<b>{{ day|date:"d" }}</b>/<i>{{ day|date:"D"|lower }}</i>
</div>
</td>
{% endifnotequal %}
{% endfor %}
</tr>
</tbody>
{% endif %}
{% endcomment %}
</table>
{% endwith %}
</div>
</div>

Loading…
Cancel
Save