1.1 --- a/macros/EventAggregator.py Sat Feb 19 03:11:19 2011 +0100
1.2 +++ b/macros/EventAggregator.py Sat Feb 19 03:17:01 2011 +0100
1.3 @@ -23,15 +23,19 @@
1.4 "A view of the event calendar."
1.5
1.6 def __init__(self, page, calendar_name, raw_calendar_start, raw_calendar_end,
1.7 - calendar_start, calendar_end, first, last, category_names, template_name,
1.8 - parent_name, mode, name_usage):
1.9 + original_calendar_start, original_calendar_end, calendar_start, calendar_end,
1.10 + first, last, category_names, template_name, parent_name, mode, name_usage):
1.11
1.12 """
1.13 Initialise the view with the current 'page', a 'calendar_name' (which
1.14 may be None), the 'raw_calendar_start' and 'raw_calendar_end' (which
1.15 are the actual start and end values provided by the request), the
1.16 - requested, calculated 'calendar_start' and 'calendar_end', and the
1.17 - 'first' and 'last' months of event coverage.
1.18 + calculated 'original_calendar_start' and 'original_calendar_end' (which
1.19 + are the result of calculating the calendar's limits from the raw start
1.20 + and end values), and the requested, calculated 'calendar_start' and
1.21 + 'calendar_end' (which may involve different start and end values due to
1.22 + navigation in the user interface), along with the 'first' and 'last'
1.23 + months of event coverage.
1.24
1.25 The additional 'category_names', 'template_name', 'parent_name' and
1.26 'mode' parameters are used to configure the links employed by the view.
1.27 @@ -44,6 +48,8 @@
1.28 self.calendar_name = calendar_name
1.29 self.raw_calendar_start = raw_calendar_start
1.30 self.raw_calendar_end = raw_calendar_end
1.31 + self.original_calendar_start = original_calendar_start
1.32 + self.original_calendar_end = original_calendar_end
1.33 self.calendar_start = calendar_start
1.34 self.calendar_end = calendar_end
1.35 self.template_name = template_name
1.36 @@ -147,7 +153,8 @@
1.37 # Generate the links.
1.38
1.39 download_dialogue_link = "action=EventAggregatorSummary&parent=%s&%s" % (
1.40 - self.parent_name or "", self.category_name_parameters
1.41 + self.parent_name or "",
1.42 + self.category_name_parameters
1.43 )
1.44 download_all_link = download_dialogue_link + "&doit=1"
1.45 download_link = download_all_link + ("&%s&%s" % (
1.46 @@ -188,6 +195,10 @@
1.47 self.getFullMonthLabel(self.calendar_start),
1.48 self.getFullMonthLabel(self.calendar_end)
1.49 )
1.50 + original_calendar_period = "%s - %s" % (
1.51 + self.getFullMonthLabel(self.original_calendar_start),
1.52 + self.getFullMonthLabel(self.original_calendar_end)
1.53 + )
1.54 raw_calendar_period = "%s - %s" % (self.raw_calendar_start, self.raw_calendar_end)
1.55
1.56 # Write the controls.
1.57 @@ -206,7 +217,7 @@
1.58 output.append(linkToPage(request, page, _("Download this calendar"), download_all_link))
1.59 output.append(fmt.span(on=1, css_class="event-download-popup"))
1.60 output.append(fmt.span(on=1, css_class="event-download-period"))
1.61 - output.append(fmt.text(calendar_period))
1.62 + output.append(fmt.text(original_calendar_period))
1.63 output.append(fmt.span(on=0))
1.64 output.append(fmt.span(on=1, css_class="event-download-period-raw"))
1.65 output.append(fmt.text(raw_calendar_period))
1.66 @@ -234,7 +245,7 @@
1.67 output.append(linkToPage(request, page, _("Subscribe to this calendar"), subscribe_all_link))
1.68 output.append(fmt.span(on=1, css_class="event-download-popup"))
1.69 output.append(fmt.span(on=1, css_class="event-download-period"))
1.70 - output.append(fmt.text(calendar_period))
1.71 + output.append(fmt.text(original_calendar_period))
1.72 output.append(fmt.span(on=0))
1.73 output.append(fmt.span(on=1, css_class="event-download-period-raw"))
1.74 output.append(fmt.text(raw_calendar_period))
1.75 @@ -782,11 +793,9 @@
1.76 for arg in parsed_args:
1.77 if arg.startswith("start="):
1.78 raw_calendar_start = arg[6:]
1.79 - calendar_start = EventAggregatorSupport.getParameterMonth(raw_calendar_start)
1.80
1.81 elif arg.startswith("end="):
1.82 raw_calendar_end = arg[4:]
1.83 - calendar_end = EventAggregatorSupport.getParameterMonth(raw_calendar_end)
1.84
1.85 elif arg.startswith("mode="):
1.86 mode = arg[5:]
1.87 @@ -806,6 +815,9 @@
1.88 else:
1.89 category_names.append(arg)
1.90
1.91 + original_calendar_start = calendar_start = EventAggregatorSupport.getParameterMonth(raw_calendar_start)
1.92 + original_calendar_end = calendar_end = EventAggregatorSupport.getParameterMonth(raw_calendar_end)
1.93 +
1.94 # Find request parameters to override settings.
1.95
1.96 calendar_start = EventAggregatorSupport.getFormMonth(request, calendar_name, "start") or calendar_start
1.97 @@ -824,7 +836,8 @@
1.98
1.99 # Define a view of the calendar, retaining useful navigational information.
1.100
1.101 - view = View(page, calendar_name, raw_calendar_start, raw_calendar_end, calendar_start, calendar_end,
1.102 + view = View(page, calendar_name, raw_calendar_start, raw_calendar_end,
1.103 + original_calendar_start, original_calendar_end, calendar_start, calendar_end,
1.104 first, last, category_names, template_name, parent_name, mode, name_usage)
1.105
1.106 # Make a calendar.