1.1 --- a/EventAggregatorSupport.py Sat Nov 07 21:08:16 2009 +0100
1.2 +++ b/EventAggregatorSupport.py Sat Nov 07 21:36:36 2009 +0100
1.3 @@ -693,6 +693,16 @@
1.4 def getParameter(request, name, default=None):
1.5 return request.form.get(name, [default])[0]
1.6
1.7 +def getQualifiedParameter(request, calendar_name, argname, default=None):
1.8 + argname = getQualifiedParameterName(calendar_name, argname)
1.9 + return getParameter(request, argname, default)
1.10 +
1.11 +def getQualifiedParameterName(calendar_name, argname):
1.12 + if calendar_name is None:
1.13 + return argname
1.14 + else:
1.15 + return "%s-%s" % (calendar_name, argname)
1.16 +
1.17 def getParameterMonth(arg):
1.18 n = None
1.19
1.20 @@ -720,12 +730,7 @@
1.21 return date
1.22
1.23 def getFormMonth(request, calendar_name, argname):
1.24 - if calendar_name is None:
1.25 - calendar_prefix = argname
1.26 - else:
1.27 - calendar_prefix = "%s-%s" % (calendar_name, argname)
1.28 -
1.29 - arg = getParameter(request, calendar_prefix)
1.30 + arg = getQualifiedParameter(request, calendar_name, argname)
1.31 if arg is not None:
1.32 return getParameterMonth(arg)
1.33 else:
2.1 --- a/macros/EventAggregator.py Sat Nov 07 21:08:16 2009 +0100
2.2 +++ b/macros/EventAggregator.py Sat Nov 07 21:36:36 2009 +0100
2.3 @@ -66,20 +66,22 @@
2.4 self.previous_set_end = EventAggregatorSupport.monthupdate(last, -self.number_of_months)
2.5 self.next_set_end = EventAggregatorSupport.monthupdate(last, self.number_of_months)
2.6
2.7 + def getQualifiedParameterName(self, argname):
2.8 + return EventAggregatorSupport.getQualifiedParameterName(self.calendar_name, argname)
2.9 +
2.10 def getMonthQueryString(self, argname, month, prefix=1):
2.11 if month is not None:
2.12 if prefix:
2.13 - return "%s-%s=%04d-%02d" % ((self.calendar_name, argname) + month)
2.14 - else:
2.15 - return "%s=%04d-%02d" % ((argname,) + month)
2.16 + argname = self.getQualifiedParameterName(argname)
2.17 + return "%s=%04d-%02d" % ((argname,) + month)
2.18 else:
2.19 return ""
2.20
2.21 def getNavigationLink(self, start, end, mode=None):
2.22 - return "%s&%s&mode=%s" % (
2.23 + return "%s&%s&%s=%s" % (
2.24 self.getMonthQueryString("start", start),
2.25 self.getMonthQueryString("end", end),
2.26 - mode or self.mode
2.27 + self.getQualifiedParameterName("mode"), mode or self.mode
2.28 )
2.29
2.30 def writeDownloadControls(self):
2.31 @@ -230,9 +232,20 @@
2.32
2.33 output = []
2.34
2.35 + # Prepare navigation details for the calendar shown with the new event
2.36 + # form.
2.37 +
2.38 + navigation_link = self.getNavigationLink(
2.39 + self.calendar_start, self.calendar_end, self.mode
2.40 + )
2.41 +
2.42 + # Prepare the link to the new event form, incorporating the above
2.43 + # calendar parameters.
2.44 +
2.45 new_event_link = "action=EventAggregatorNewEvent&start-day=%d&start-month=%d&start-year=%d" \
2.46 - "&%s&template=%s&parent=%s" % (
2.47 - day, month, year, self.category_name_parameters, self.template_name, self.parent_name or "")
2.48 + "&%s&template=%s&parent=%s&%s" % (
2.49 + day, month, year, self.category_name_parameters, self.template_name, self.parent_name or "",
2.50 + navigation_link)
2.51
2.52 output.append(fmt.div(on=1))
2.53 output.append(fmt.span(on=1, css_class="event-day-number"))
2.54 @@ -347,7 +360,7 @@
2.55 calendar_start = EventAggregatorSupport.getFormMonth(request, calendar_name, "start") or calendar_start
2.56 calendar_end = EventAggregatorSupport.getFormMonth(request, calendar_name, "end") or calendar_end
2.57
2.58 - mode = EventAggregatorSupport.getParameter(request, "mode", mode or "calendar")
2.59 + mode = EventAggregatorSupport.getQualifiedParameter(request, calendar_name, "mode", mode or "calendar")
2.60
2.61 # Get the events.
2.62