1.1 --- a/EventAggregatorSupport/View.py Wed May 01 00:04:59 2013 +0200
1.2 +++ b/EventAggregatorSupport/View.py Wed May 01 01:44:54 2013 +0200
1.3 @@ -82,7 +82,7 @@
1.4 calendar_start, calendar_end,
1.5 wider_calendar_start, wider_calendar_end,
1.6 first, last, category_names, remote_sources, search_pattern, template_name,
1.7 - parent_name, mode, resolution, name_usage, map_name):
1.8 + parent_name, mode, raw_resolution, resolution, name_usage, map_name):
1.9
1.10 """
1.11 Initialise the view with the current 'page', a 'calendar_name' (which
1.12 @@ -101,7 +101,8 @@
1.13 'template_name', 'parent_name' and 'mode' parameters are used to
1.14 configure the links employed by the view.
1.15
1.16 - The 'resolution' affects the view for certain modes and is also used to
1.17 + The 'raw_resolution' is used to parameterise download links, whereas the
1.18 + 'resolution' affects the view for certain modes and is also used to
1.19 parameterise links.
1.20
1.21 The 'name_usage' parameter controls how names are shown on calendar mode
1.22 @@ -124,6 +125,7 @@
1.23 self.template_name = template_name
1.24 self.parent_name = parent_name
1.25 self.mode = mode
1.26 + self.raw_resolution = raw_resolution
1.27 self.resolution = resolution
1.28 self.name_usage = name_usage
1.29 self.map_name = map_name
1.30 @@ -265,6 +267,7 @@
1.31 ("calendarend", self.raw_calendar_end or ""),
1.32 ("mode", mode or self.mode),
1.33 ("resolution", resolution or self.resolution),
1.34 + ("raw-resolution", self.raw_resolution),
1.35 ("parent", self.parent_name or ""),
1.36 ("template", self.template_name or ""),
1.37 ("names", self.name_usage),
1.38 @@ -314,8 +317,8 @@
1.39 def getFullMonthLabel(self, year_month):
1.40 return getFullMonthLabel(self.page.request, year_month)
1.41
1.42 - def getFullLabel(self, arg):
1.43 - return self.resolution == "date" and self.getFullDateLabel(arg) or self.getFullMonthLabel(arg)
1.44 + def getFullLabel(self, arg, resolution):
1.45 + return resolution == "date" and self.getFullDateLabel(arg) or self.getFullMonthLabel(arg)
1.46
1.47 def _getCalendarPeriod(self, start_label, end_label, default_label):
1.48
1.49 @@ -337,22 +340,31 @@
1.50 return "".join(output) or default_label
1.51
1.52 def getCalendarPeriod(self):
1.53 +
1.54 + "Return the period description for the shown calendar."
1.55 +
1.56 _ = self.page.request.getText
1.57 return self._getCalendarPeriod(
1.58 - self.calendar_start and self.getFullLabel(self.calendar_start),
1.59 - self.calendar_end and self.getFullLabel(self.calendar_end),
1.60 + self.calendar_start and self.getFullLabel(self.calendar_start, self.resolution),
1.61 + self.calendar_end and self.getFullLabel(self.calendar_end, self.resolution),
1.62 _("All events")
1.63 )
1.64
1.65 def getOriginalCalendarPeriod(self):
1.66 +
1.67 + "Return the period description for the originally specified calendar."
1.68 +
1.69 _ = self.page.request.getText
1.70 return self._getCalendarPeriod(
1.71 - self.original_calendar_start and self.getFullLabel(self.original_calendar_start),
1.72 - self.original_calendar_end and self.getFullLabel(self.original_calendar_end),
1.73 + self.original_calendar_start and self.getFullLabel(self.original_calendar_start, self.raw_resolution),
1.74 + self.original_calendar_end and self.getFullLabel(self.original_calendar_end, self.raw_resolution),
1.75 _("All events")
1.76 )
1.77
1.78 def getRawCalendarPeriod(self):
1.79 +
1.80 + "Return the raw period description for the calendar."
1.81 +
1.82 _ = self.page.request.getText
1.83 return self._getCalendarPeriod(
1.84 self.raw_calendar_start,
1.85 @@ -381,9 +393,8 @@
1.86
1.87 # Generate the links.
1.88
1.89 - download_dialogue_link = "action=EventAggregatorSummary&parent=%s&resolution=%s&search=%s%s%s" % (
1.90 + download_dialogue_link = "action=EventAggregatorSummary&parent=%s&search=%s%s%s" % (
1.91 self.parent_name or "",
1.92 - self.resolution,
1.93 self.search_pattern or "",
1.94 self.category_name_parameters and "&%s" % self.category_name_parameters,
1.95 self.remote_source_parameters and "&%s" % self.remote_source_parameters
1.96 @@ -394,6 +405,14 @@
1.97 self.getDateQueryString("end", self.calendar_end, prefix=0)
1.98 ))
1.99
1.100 + # The entire calendar download uses the originally specified resolution
1.101 + # of the calendar as does the dialogue. The other link uses the current
1.102 + # resolution.
1.103 +
1.104 + download_dialogue_link += "&resolution=%s" % self.raw_resolution
1.105 + download_all_link += "&resolution=%s" % self.raw_resolution
1.106 + download_link += "&resolution=%s" % self.resolution
1.107 +
1.108 # Subscription links just explicitly select the RSS format.
1.109
1.110 subscribe_dialogue_link = download_dialogue_link + "&format=RSS"
1.111 @@ -423,7 +442,7 @@
1.112
1.113 # Pop-up descriptions of the downloadable calendars.
1.114
1.115 - calendar_period = self.getCalendarPeriod()
1.116 + shown_calendar_period = self.getCalendarPeriod()
1.117 original_calendar_period = self.getOriginalCalendarPeriod()
1.118 raw_calendar_period = self.getRawCalendarPeriod()
1.119
1.120 @@ -450,7 +469,7 @@
1.121 append(fmt.text(_("Download this view")))
1.122 append(fmt.span(on=0)) # end label
1.123 append(fmt.span(on=1, css_class="event-download-period"))
1.124 - append(fmt.text(calendar_period))
1.125 + append(fmt.text(shown_calendar_period))
1.126 append(fmt.span(on=0))
1.127 append(fmt.div(on=0))
1.128
1.129 @@ -494,7 +513,7 @@
1.130 append(linkToPage(request, page, _("Subscribe to this view"), subscribe_link))
1.131 append(fmt.span(on=0)) # end label
1.132 append(fmt.span(on=1, css_class="event-download-period"))
1.133 - append(fmt.text(calendar_period))
1.134 + append(fmt.text(shown_calendar_period))
1.135 append(fmt.span(on=0))
1.136 append(fmt.div(on=0))
1.137