%s' % ustrfdate(day, '%B')) def add_days_header(table=None): """Adds locale specific days header""" # First print the header column with locale specific day render = False if table is None: table = list() render = True monday = date(year=2008, month=9, day=15) one_day = timedelta(days=1) table.append(u'') for i in range(7): day = monday + (one_day * i) table.append(u'%s' % ustrfdate(day, '%a')) table.append(u'') if render: return u''.join(table) def render_table(calendar, tm_name, read_only): """Renders the calendar rows""" count = 0 table = list() month = None add_days_header(table) today = datetime.today().date() for date in sorted(calendar.keys()): if date.month != month: add_month_header(table, date) table.append(u'') if date.weekday() != 0: table.append(u' ' % date.weekday()) month = date.month elif date.weekday() == 0: table.append(u'') day_class = u'' if today == date: day_class = u' class="today"' elif date.weekday() in (5, 6): day_class = u' class="weekend"' table.append(u'
%s
' % (day_class, date.day)) if read_only: table.append(str(calendar[date])) else: disabled = '' if date < today: disabled = ' disabled="disabled"' table.append(u'' % \ (tm_name, date.toordinal(), calendar[date], disabled)) table.append(u'
') last = count == len(calendar) - 1 if last and date.weekday() != 6: table.append(u' ' % (6 - date.weekday())) if date.weekday() == 6 or last: table.append(u'') count += 1 return u''.join(table) ?> ${Markup(render_table(calendar_dict, tm_name, read_only))}