1.1 --- a/actions/EventAggregatorSummary.py Sun Mar 29 19:33:59 2009 +0200
1.2 +++ b/actions/EventAggregatorSummary.py Sun Mar 29 21:01:49 2009 +0200
1.3 @@ -34,14 +34,24 @@
1.4
1.5 category_list.append('<option value="%s">%s</option>' % (category_pagename, category_name))
1.6
1.7 + month_list = []
1.8 + month_list.append('<option value=""></option>')
1.9 +
1.10 + for month in range(1, 13):
1.11 + month_label = _(EventAggregatorSupport.getMonthLabel(month))
1.12 + month_list.append('<option value="%02d">%s</option>' % (month, month_label))
1.13 +
1.14 + year_label = []
1.15 +
1.16 d = {
1.17 "buttons_html" : buttons_html,
1.18 "category_label" : _("Categories"),
1.19 "category_list" : "\n".join(category_list),
1.20 + "month_list" : "\n".join(month_list),
1.21 "start_label" : _("Start year and month"),
1.22 - "start_default" : "",
1.23 + "start_year_default" : "",
1.24 "end_label" : _("End year and month"),
1.25 - "end_default" : "",
1.26 + "end_year_default" : "",
1.27 }
1.28
1.29 return '''
1.30 @@ -57,13 +67,19 @@
1.31 <tr>
1.32 <td class="label"><label>%(start_label)s</label></td>
1.33 <td>
1.34 - <input name="start" type="text" value="%(start_default)s" size="12" />
1.35 + <select name="start-month">
1.36 + %(month_list)s
1.37 + </select>
1.38 + <input name="start-year" type="text" value="%(start_year_default)s" size="4" />
1.39 </td>
1.40 </tr>
1.41 <tr>
1.42 <td class="label"><label>%(end_label)s</label></td>
1.43 <td>
1.44 - <input name="end" type="text" value="%(end_default)s" size="12" />
1.45 + <select name="end-month">
1.46 + %(month_list)s
1.47 + </select>
1.48 + <input name="end-year" type="text" value="%(end_year_default)s" size="4" />
1.49 </td>
1.50 </tr>
1.51 <tr>
1.52 @@ -80,11 +96,12 @@
1.53 "Write the iCalendar resource."
1.54
1.55 _ = self._
1.56 + form = self.request.form
1.57
1.58 # If no category names exist in the request, an error message is
1.59 # returned.
1.60
1.61 - category_names = self.request.form.get("category", [])
1.62 + category_names = form.get("category", [])
1.63
1.64 if not category_names:
1.65 return 0, _("No categories specified.")
1.66 @@ -117,6 +134,16 @@
1.67 calendar_start = EventAggregatorSupport.getFormMonth(request, None, "start")
1.68 calendar_end = EventAggregatorSupport.getFormMonth(request, None, "end")
1.69
1.70 + # Look for separate start and end years and months.
1.71 +
1.72 + form = request.form
1.73 +
1.74 + if calendar_start is None:
1.75 + calendar_start = EventAggregatorSupport.getFormMonthPair(request, "start-year", "start-month")
1.76 +
1.77 + if calendar_end is None:
1.78 + calendar_end = EventAggregatorSupport.getFormMonthPair(request, "end-year", "end-month")
1.79 +
1.80 events, shown_events, all_shown_events, earliest, latest = \
1.81 EventAggregatorSupport.getEvents(request, category_names, calendar_start, calendar_end)
1.82