rendered paste bodyviews.py:
def calendar(request, calendar, year=False, month=False):
try:
c = Calendar.objects.get(ident=calendar)
except:
raise Http404
linklist = [
{"url": "/calendar", "text": "calendar"},
{"url": "/calendar/" + c.ident, "text": c.name.lower()}]
if year == False:
year = strftime("%Y")
else:
linklist.append({"url": "/calendar/"+c.ident+"/"+year, "text": year})
if month == False:
month = strftime("%m")
else:
linklist.append({"url": "/calendar/"+c.ident+"/"+year+"/"+month, "text": month})
events = Event.objects.filter(time__year=int(year), time__month=int(month), calendar=c)
cal = eventcalendar(events, year, month)
print cal
replaces = {
"linklist": linklist,
"calendar": c,
"cal": cal,
"year": year,
"month": month,
"events": events,
"today": strftime("%e")
}
return rtr("calendar/calendar.html", replaces, request)
def eventcalendar(events, year, month):
grid = monthcalendar(int(year), int(month))
cal = []
for week in grid:
new_week = []
for day in week:
new_week.append({"number":day, "events":events.filter(time__day = day)})
cal.append(new_week)
return cal
calendar.html:
{% block content %}
<h1>{{ calendar.name }}</h1>
<div id="calendar">
<table width="100%" cellspacing="0" cellpadding="0" border="0" class="grid">
<tr>
<th width="14%">Monday</th>
<th width="14%">Tuesday</th>
<th width="14%">Wednesday</th>
<th width="14%">Thursday</th>
<th width="14%">Friday</th>
<th width="14%">Saturday</th>
<th width="14%">Sunday</th>
{% if cal %}{% for week in cal %}
<tr>
{% for day in week %}
<td{% ifequal day.number today %} style="background-color: #000000;"{% endifequal %} valign="top">
{% ifnotequal day.number 0 %}
<table width="100%" cellspacing="0" cellpadding="0" border="0" class="events">
<tr><td rowspan="{{ day.events.count|add:2 }}" valign="top" class="number">
<a href="/calendar/{{ calendar.ident }}/{{ year }}/{{ month }}/{{ day.number }}" class="number{% ifnotequal day.events.count 0 %}active{%endifnotequal%}">{{ day.number }}</a>
</td></tr>
{% for event in day.events %}
<tr>
<td valign="top">
<div class="dim"><a href="/calendar/{{calendar.ident}}/{{year}}/{{month}}/{{day.number}}/{{event.ident}}">{{ event.name }}</a></div>
</td>
</tr>
{% endfor %}
</table>
{%endifnotequal%}
</td>
{% endfor %}
</tr>
{% endfor %}{% endif %}
</table>
</div>
{% endblock %}