diff -r 8103d18907a0 -r b65a95eb9f6b handlers.py --- 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,