from nevow import rend,loaders,tags
from nevow.taglibrary import cal
class Calendar(rend.Page):
addSlash = True
year = None
month = None
def __init__(self, year=None, month=None):
if year is not None and month is not None:
self.year = year
self.month = month
def locateChild(self, ctx, segments):
if len(segments) >= 2:
year, month = segments[:2]
return Calendar(int(year), int(month)), segments[2:]
return super(Calendar, self).locateChild(ctx, segments)
def data_date(self, ctx, data):
if self.year is None or self.month is None:
return None
return int(self.year), int(self.month)
docFactory = loaders.stan(
t.html[
t.head[
t.title["Calendar Example"],
cal.calendarCSS
],
t.body[
t.invisible(data=t.directive('date'), render=cal.cal)
]
]
)
|