--- a/handlers.py Mon Feb 09 03:05:43 2009 +0200
+++ b/handlers.py Mon Feb 09 04:39:24 2009 +0200
@@ -2,7 +2,7 @@
Our URL action handlers
"""
-import pytz
+import datetime, calendar, pytz
from qmsk.web import http, template
@@ -12,7 +12,7 @@
# load templates from here
templates = template.TemplateLoader("templates",
- h = helpers,
+ _helper_class = helpers.Helpers,
urls = urls,
channel_list = channels.channel_list,
)
@@ -33,8 +33,8 @@
return http.Redirect(urls.channel_view.build(request, channel=channel.id))
-@preferences.handler(prefs.Formatter)
-def channel_view (request, channel, count, formatter) :
+@preferences.handler(prefs.Formatter, prefs.Timezone)
+def channel_view (request, channel, count, formatter, timezone) :
"""
The main channel view page, display the most important info, and all requisite links
"""
@@ -47,6 +47,7 @@
return templates.render_to_response("channel_view",
req = request,
+ timezone = timezone,
channel = channel,
count = count,
formatter = formatter,
@@ -66,12 +67,34 @@
else :
raise http.ResponseError("Unknown filetype %r" % format)
-def channel_calendar (request, channel) :
+@preferences.handler(prefs.Timezone)
+def channel_calendar (request, channel, year, month, timezone) :
"""
- Display a list of avilable logs for some days
+ Display a list of avilable logs for some month
"""
- pass
+ # current date as default
+ now = timezone.localize(datetime.datetime.now())
+
+ # target year/month
+ target = timezone.localize(datetime.datetime(
+ year = year if year else now.year,
+ month = month if month else now.month,
+ day = 1
+ ))
+
+ # get set of days available
+ days = channel.source.get_month_days(target)
+
+ # display calendar
+ return templates.render_to_response("channel_calendar",
+ req = request,
+ timezone = timezone,
+ channel = channel,
+ calendar = calendar.Calendar(),
+ month = target.date(),
+ days = days,
+ )
@preferences.handler(prefs.Formatter, prefs.Timezone)
def channel_date (request, channel, date, formatter, timezone) :
@@ -90,6 +113,7 @@
return templates.render_to_response("channel_date",
req = request,
+ timezone = timezone,
channel = channel,
formatter = formatter,
date = date,