|
|
|
|
@ -30,6 +30,13 @@ class SettingsView(TemplateView): |
|
|
|
|
context['email_announcement_form'] = EmailAnnouncementForm() |
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
def dates_range(date1, date2): |
|
|
|
|
delta = date2 - date1 |
|
|
|
|
dates = [] |
|
|
|
|
for i in range(delta.days + 1): |
|
|
|
|
dates.append(date1 + datetime.timedelta(days=i)) |
|
|
|
|
return dates |
|
|
|
|
|
|
|
|
|
class CalendarView(TemplateView): |
|
|
|
|
""" |
|
|
|
|
display template with user calendar(one month) |
|
|
|
|
@ -79,6 +86,37 @@ class CalendarView(TemplateView): |
|
|
|
|
# events in current month |
|
|
|
|
context['events'] = calendar.events_by_month(now) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
events = context['events'] |
|
|
|
|
days = context['days'] |
|
|
|
|
event_in_day = False |
|
|
|
|
counter = 0 |
|
|
|
|
dates_with_events = [] |
|
|
|
|
for event in events: |
|
|
|
|
dates_with_events += dates_range(event.data_begin, event.data_end) |
|
|
|
|
|
|
|
|
|
dates_with_events = list(set(dates_with_events)) |
|
|
|
|
day_colspan = {} |
|
|
|
|
for day in days: |
|
|
|
|
if day.date() in dates_with_events: |
|
|
|
|
day_colspan[day] = {'event': True} |
|
|
|
|
else: |
|
|
|
|
day_colspan[day] = {'event': False} |
|
|
|
|
previous_day = day - datetime.timedelta(days=1) |
|
|
|
|
if previous_day not in days: |
|
|
|
|
day_colspan[day]['start'] = day |
|
|
|
|
else: |
|
|
|
|
if day_colspan[previous_day]['event']: |
|
|
|
|
day_colspan[day]['start'] = day |
|
|
|
|
else: |
|
|
|
|
day_colspan[day]['start'] = day_colspan[previous_day]['start'] |
|
|
|
|
if day_colspan[day_colspan[day]['start']].get('counter'): |
|
|
|
|
|
|
|
|
|
day_colspan[day_colspan[day]['start']]['counter'] += 1 |
|
|
|
|
else: |
|
|
|
|
day_colspan[day_colspan[day]['start']]['counter'] = 1 |
|
|
|
|
context['day_colspan'] = day_colspan |
|
|
|
|
|
|
|
|
|
return context |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|