1.1 --- a/macros/EventAggregator.py Mon Jan 18 01:00:35 2010 +0100
1.2 +++ b/macros/EventAggregator.py Sun Jan 24 02:55:53 2010 +0100
1.3 @@ -53,18 +53,17 @@
1.4
1.5 # Store the view parameters.
1.6
1.7 - span = EventAggregatorSupport.span(first, last)
1.8 - self.number_of_months = span[0] * 12 + span[1] + 1
1.9 + self.number_of_months = (last - first).months() + 1
1.10
1.11 - self.previous_month_start = EventAggregatorSupport.prevmonth(first)
1.12 - self.next_month_start = EventAggregatorSupport.nextmonth(first)
1.13 - self.previous_month_end = EventAggregatorSupport.prevmonth(last)
1.14 - self.next_month_end = EventAggregatorSupport.nextmonth(last)
1.15 + self.previous_month_start = first.previous_month()
1.16 + self.next_month_start = first.next_month()
1.17 + self.previous_month_end = last.previous_month()
1.18 + self.next_month_end = last.next_month()
1.19
1.20 - self.previous_set_start = EventAggregatorSupport.monthupdate(first, -self.number_of_months)
1.21 - self.next_set_start = EventAggregatorSupport.monthupdate(first, self.number_of_months)
1.22 - self.previous_set_end = EventAggregatorSupport.monthupdate(last, -self.number_of_months)
1.23 - self.next_set_end = EventAggregatorSupport.monthupdate(last, self.number_of_months)
1.24 + self.previous_set_start = first.month_update(-self.number_of_months)
1.25 + self.next_set_start = first.month_update(self.number_of_months)
1.26 + self.previous_set_end = last.month_update(-self.number_of_months)
1.27 + self.next_set_end = last.month_update(self.number_of_months)
1.28
1.29 def getQualifiedParameterName(self, argname):
1.30 return EventAggregatorSupport.getQualifiedParameterName(self.calendar_name, argname)
1.31 @@ -73,7 +72,7 @@
1.32 if month is not None:
1.33 if prefix:
1.34 argname = self.getQualifiedParameterName(argname)
1.35 - return "%s=%04d-%02d" % ((argname,) + month)
1.36 + return "%s=%s" % (argname, month)
1.37 else:
1.38 return ""
1.39
1.40 @@ -155,7 +154,7 @@
1.41
1.42 return "".join(output)
1.43
1.44 - def writeMonthHeading(self, year, month):
1.45 + def writeMonthHeading(self, year_month):
1.46 page = self.page
1.47 request = page.request
1.48 fmt = page.formatter
1.49 @@ -163,6 +162,7 @@
1.50
1.51 output = []
1.52
1.53 + year, month = year_month.as_tuple()
1.54 month_label = _(EventAggregatorSupport.getMonthLabel(month))
1.55
1.56 # Prepare navigation links.
1.57 @@ -193,11 +193,9 @@
1.58 # A link leading to this month being at the top of the calendar.
1.59
1.60 full_month_label = "%s %s" % (month_label, year)
1.61 - end_month = EventAggregatorSupport.monthupdate((year, month), self.number_of_months - 1)
1.62 + end_month = year_month.month_update(self.number_of_months - 1)
1.63
1.64 - month_link = self.getNavigationLink(
1.65 - (year, month), end_month
1.66 - )
1.67 + month_link = self.getNavigationLink(year_month, end_month)
1.68
1.69 output.append(fmt.span(on=1, css_class="previous-month"))
1.70 output.append(linkToPage(request, page, "<<", previous_set_link))
1.71 @@ -224,12 +222,13 @@
1.72
1.73 return "".join(output)
1.74
1.75 - def writeDayNumberLinked(self, day, month, year):
1.76 + def writeDayNumberLinked(self, date):
1.77 page = self.page
1.78 request = page.request
1.79 fmt = page.formatter
1.80 _ = request.getText
1.81
1.82 + year, month, day = date.as_tuple()
1.83 output = []
1.84
1.85 # Prepare navigation details for the calendar shown with the new event
1.86 @@ -411,8 +410,9 @@
1.87
1.88 # Show the events in order.
1.89
1.90 - for event_page, event_details in ordered_events:
1.91 - event_summary = EventAggregatorSupport.getEventSummary(event_page, event_details, parent_name)
1.92 + for event_page in ordered_events:
1.93 + event_summary = event_page.getEventSummary(parent_name)
1.94 + event_details = event_page.getEventDetails()
1.95
1.96 # Prepare CSS classes with category-related styling.
1.97
1.98 @@ -432,13 +432,13 @@
1.99
1.100 output.append(fmt.table_cell(on=1, attrs=attrs))
1.101 output.append(fmt.span(on=1))
1.102 - output.append(fmt.text("%04d-%02d-%02d" % event_details["start"]))
1.103 + output.append(fmt.text(str(event_details["start"])))
1.104 output.append(fmt.span(on=0))
1.105
1.106 if event_details["start"] != event_details["end"]:
1.107 output.append(fmt.text(" - "))
1.108 output.append(fmt.span(on=1))
1.109 - output.append(fmt.text("%04d-%02d-%02d" % event_details["end"]))
1.110 + output.append(fmt.text(str(event_details["end"])))
1.111 output.append(fmt.span(on=0))
1.112
1.113 output.append(fmt.table_cell(on=0))
1.114 @@ -455,7 +455,7 @@
1.115 # Link to the page using the summary.
1.116
1.117 output.append(fmt.table_cell(on=1, attrs=attrs))
1.118 - output.append(linkToPage(request, event_page, event_summary))
1.119 + output.append(event_page.linkToPage(request, event_summary))
1.120 output.append(fmt.table_cell(on=0))
1.121
1.122 output.append(fmt.table_row(on=0))
1.123 @@ -477,7 +477,7 @@
1.124
1.125 # Visit all months in the requested range, or across known events.
1.126
1.127 - for year, month in EventAggregatorSupport.daterange(first, last):
1.128 + for month in first.months_until(last):
1.129
1.130 # Either output a calendar view...
1.131
1.132 @@ -493,7 +493,7 @@
1.133 # Either write a month heading or produce links for navigable
1.134 # calendars.
1.135
1.136 - output.append(view.writeMonthHeading(year, month))
1.137 + output.append(view.writeMonthHeading(month))
1.138
1.139 output.append(fmt.table_cell(on=0))
1.140 output.append(fmt.table_row(on=0))
1.141 @@ -511,7 +511,7 @@
1.142
1.143 # Process the days of the month.
1.144
1.145 - start_weekday, number_of_days = calendar.monthrange(year, month)
1.146 + start_weekday, number_of_days = month.month_properties()
1.147
1.148 # The start weekday is the weekday of day number 1.
1.149 # Find the first day of the week, counting from below zero, if
1.150 @@ -525,11 +525,11 @@
1.151 # Find events in this week and determine how to mark them on the
1.152 # calendar.
1.153
1.154 - week_start = (year, month, max(first_day, 1))
1.155 - week_end = (year, month, min(first_day + 6, number_of_days))
1.156 + week_start = month.as_date(max(first_day, 1))
1.157 + week_end = month.as_date(min(first_day + 6, number_of_days))
1.158
1.159 week_coverage, week_events = EventAggregatorSupport.getCoverage(
1.160 - week_start, week_end, shown_events.get((year, month), []))
1.161 + week_start, week_end, shown_events.get(month, []))
1.162
1.163 # Output a week, starting with the day numbers.
1.164
1.165 @@ -537,7 +537,7 @@
1.166
1.167 for weekday in range(0, 7):
1.168 day = first_day + weekday
1.169 - date = (year, month, day)
1.170 + date = month.as_date(day)
1.171
1.172 # Output out-of-month days.
1.173
1.174 @@ -559,7 +559,7 @@
1.175 # Output the day number, making a link to a new event
1.176 # action.
1.177
1.178 - output.append(view.writeDayNumberLinked(day, month, year))
1.179 + output.append(view.writeDayNumberLinked(date))
1.180
1.181 # End of day.
1.182
1.183 @@ -576,7 +576,6 @@
1.184
1.185 for weekday in range(0, 7):
1.186 day = first_day + weekday
1.187 - date = (year, month, day)
1.188
1.189 # Output out-of-month days.
1.190
1.191 @@ -606,7 +605,7 @@
1.192
1.193 for weekday in range(0, 7):
1.194 day = first_day + weekday
1.195 - date = (year, month, day)
1.196 + date = month.as_date(day)
1.197
1.198 # Skip out-of-month days.
1.199
1.200 @@ -624,7 +623,9 @@
1.201
1.202 # Get event details for the current day.
1.203
1.204 - for event_page, event_details in events:
1.205 + for event_page in events:
1.206 + event_details = event_page.getEventDetails()
1.207 +
1.208 if not (event_details["start"] <= date <= event_details["end"]):
1.209 continue
1.210
1.211 @@ -632,7 +633,7 @@
1.212
1.213 starts_today = event_details["start"] == date
1.214 ends_today = event_details["end"] == date
1.215 - event_summary = EventAggregatorSupport.getEventSummary(event_page, event_details, parent_name)
1.216 + event_summary = event_page.getEventSummary(parent_name)
1.217
1.218 # Generate a colour for the event.
1.219
1.220 @@ -678,10 +679,10 @@
1.221
1.222 else:
1.223 if event_details["end"] <= week_end:
1.224 - event_length = event_details["end"][2] - day + 1
1.225 + event_length = event_details["end"].day() - day + 1
1.226 colspan = (event_length - 2) * 3 + 4
1.227 else:
1.228 - event_length = week_end[2] - day + 1
1.229 + event_length = week_end.day() - day + 1
1.230 colspan = (event_length - 1) * 3 + 2
1.231
1.232 event_day_type = "event-day-multiple"
1.233 @@ -711,10 +712,10 @@
1.234
1.235 else:
1.236 if event_details["end"] <= week_end:
1.237 - event_length = event_details["end"][2] - day + 1
1.238 + event_length = event_details["end"].day() - day + 1
1.239 colspan = (event_length - 1) * 3 + 2
1.240 else:
1.241 - event_length = week_end[2] - day + 1
1.242 + event_length = week_end.day() - day + 1
1.243 colspan = event_length * 3
1.244
1.245 event_day_type = "event-day-multiple"
1.246 @@ -757,13 +758,13 @@
1.247
1.248 output.append(fmt.div(on=1, css_class="event-summary-box"))
1.249 output.append(fmt.div(on=1, css_class="event-summary", style=style))
1.250 - output.append(linkToPage(request, event_page, event_summary))
1.251 + output.append(event_page.linkToPage(request, event_summary))
1.252 output.append(fmt.div(on=0))
1.253
1.254 # Add a pop-up element for long summaries.
1.255
1.256 output.append(fmt.div(on=1, css_class="event-summary-popup", style=style))
1.257 - output.append(linkToPage(request, event_page, event_summary))
1.258 + output.append(event_page.linkToPage(request, event_summary))
1.259 output.append(fmt.div(on=0))
1.260
1.261 output.append(fmt.div(on=0))
1.262 @@ -824,7 +825,7 @@
1.263 # Either write a month heading or produce links for navigable
1.264 # calendars.
1.265
1.266 - output.append(view.writeMonthHeading(year, month))
1.267 + output.append(view.writeMonthHeading(month))
1.268
1.269 output.append(fmt.div(on=0))
1.270
1.271 @@ -832,30 +833,31 @@
1.272
1.273 # Get the events in order.
1.274
1.275 - ordered_events = EventAggregatorSupport.getOrderedEvents(shown_events.get((year, month), []))
1.276 + ordered_events = EventAggregatorSupport.getOrderedEvents(shown_events.get(month, []))
1.277
1.278 # Show the events in order.
1.279
1.280 - for event_page, event_details in ordered_events:
1.281 - event_summary = EventAggregatorSupport.getEventSummary(event_page, event_details, parent_name)
1.282 + for event_page in ordered_events:
1.283 + event_details = event_page.getEventDetails()
1.284 + event_summary = event_page.getEventSummary(parent_name)
1.285
1.286 output.append(fmt.listitem(on=1, attr={"class" : "event-listing"}))
1.287
1.288 # Link to the page using the summary.
1.289
1.290 output.append(fmt.paragraph(on=1))
1.291 - output.append(linkToPage(request, event_page, event_summary))
1.292 + output.append(event_page.linkToPage(request, event_summary))
1.293 output.append(fmt.paragraph(on=0))
1.294
1.295 # Start and end dates.
1.296
1.297 output.append(fmt.paragraph(on=1))
1.298 output.append(fmt.span(on=1))
1.299 - output.append(fmt.text("%04d-%02d-%02d" % event_details["start"]))
1.300 + output.append(fmt.text(str(event_details["start"])))
1.301 output.append(fmt.span(on=0))
1.302 output.append(fmt.text(" - "))
1.303 output.append(fmt.span(on=1))
1.304 - output.append(fmt.text("%04d-%02d-%02d" % event_details["end"]))
1.305 + output.append(fmt.text(str(event_details["end"])))
1.306 output.append(fmt.span(on=0))
1.307 output.append(fmt.paragraph(on=0))
1.308