1.1 --- a/EventAggregatorSupport.py Tue Mar 31 00:43:20 2009 +0200
1.2 +++ b/EventAggregatorSupport.py Thu Apr 02 00:59:53 2009 +0200
1.3 @@ -92,7 +92,11 @@
1.4
1.5 # From MoinMoin.xmlrpc...
1.6
1.7 - edit_info = page.edit_info()
1.8 + if hasattr(page, "edit_info"):
1.9 + edit_info = page.edit_info()
1.10 + else:
1.11 + edit_info = page.last_edit(page.request) # MoinMoin 1.5.x and 1.6.x
1.12 +
1.13 mtime = wikiutil.version2timestamp(long(edit_info['timestamp'])) # must be long for py 2.2.x
1.14 return tuple(time.gmtime(mtime))
1.15
1.16 @@ -128,14 +132,23 @@
1.17
1.18 return "".join([s for s in verbatim_regexp.split(text) if s is not None])
1.19
1.20 +def getFormat(page):
1.21 +
1.22 + "Get the format used on 'page'."
1.23 +
1.24 + if isMoin15():
1.25 + return "wiki" # page.pi_format
1.26 + else:
1.27 + return page.pi["format"]
1.28 +
1.29 def getEventDetails(page):
1.30
1.31 "Return a dictionary of event details from the given 'page'."
1.32
1.33 event_details = {}
1.34
1.35 - if page.pi["format"] == "wiki":
1.36 - for match in definition_list_regexp.finditer(page.body):
1.37 + if getFormat(page) == "wiki":
1.38 + for match in definition_list_regexp.finditer(page.get_raw_body()):
1.39
1.40 # Permit case-insensitive list terms.
1.41
1.42 @@ -587,7 +600,12 @@
1.43
1.44 "Return a nicely formatted title/name for the given 'page'."
1.45
1.46 - return page.split_title(force=1).replace("_", " ").replace("/", u" » ")
1.47 + if isMoin15():
1.48 + title = page.split_title(page.request, force=1)
1.49 + else:
1.50 + title = page.split_title(force=1)
1.51 +
1.52 + return title.replace("_", " ").replace("/", u" » ")
1.53
1.54 def getMonthLabel(month):
1.55
1.56 @@ -601,4 +619,21 @@
1.57
1.58 return weekday_labels[weekday]
1.59
1.60 +def linkToPage(request, page, text, query_string=None):
1.61 +
1.62 + """
1.63 + Using 'request', return a link to 'page' with the given link 'text' and
1.64 + optional 'query_string'.
1.65 + """
1.66 +
1.67 + text = wikiutil.escape(text)
1.68 +
1.69 + if isMoin15():
1.70 + url = wikiutil.quoteWikinameURL(page.page_name)
1.71 + if query_string is not None:
1.72 + url = "%s?%s" % (url, query_string)
1.73 + return wikiutil.link_tag(request, url, text, getattr(page, "formatter", None))
1.74 + else:
1.75 + return page.link_to_raw(request, text, query_string)
1.76 +
1.77 # vim: tabstop=4 expandtab shiftwidth=4
3.1 --- a/actions/EventAggregatorSummary.py Tue Mar 31 00:43:20 2009 +0200
3.2 +++ b/actions/EventAggregatorSummary.py Thu Apr 02 00:59:53 2009 +0200
3.3 @@ -13,6 +13,7 @@
3.4 from MoinMoin.action import ActionBase
3.5 from MoinMoin import config
3.6 from MoinMoin.Page import Page
3.7 +import MoinMoin.util # for MoinMoin 1.5.x
3.8 import EventAggregatorSupport
3.9
3.10 Dependencies = ['pages']
3.11 @@ -111,11 +112,12 @@
3.12 write_resource(self.request)
3.13 return 1, None
3.14
3.15 - def render_success(self, msg, msgtype):
3.16 + def render_success(self, msg, msgtype=None):
3.17
3.18 """
3.19 Render neither 'msg' nor 'msgtype' since a resource has already been
3.20 produced.
3.21 + NOTE: msgtype is optional because MoinMoin 1.5.x does not support it.
3.22 """
3.23
3.24 pass
3.25 @@ -157,7 +159,12 @@
3.26
3.27 # Output iCalendar data...
3.28
3.29 - request.emit_http_headers(["Content-Type: text/calendar; charset=%s" % config.charset])
3.30 + if EventAggregatorSupport.isMoin15():
3.31 + send_headers = request.http_headers
3.32 + else:
3.33 + send_headers = request.emit_http_headers
3.34 +
3.35 + send_headers(["Content-Type: text/calendar; charset=%s" % config.charset])
3.36
3.37 request.write("BEGIN:VCALENDAR\r\n")
3.38 request.write("PRODID:-//MoinMoin//EventAggregatorSummary\r\n")
3.39 @@ -205,6 +212,9 @@
3.40
3.41 request.write("END:VCALENDAR\r\n")
3.42
3.43 + if EventAggregatorSupport.isMoin15():
3.44 + raise MoinMoin.util.MoinMoinNoFooter
3.45 +
3.46 # Action function.
3.47
3.48 def execute(pagename, request):
4.1 --- a/macros/EventAggregator.py Tue Mar 31 00:43:20 2009 +0200
4.2 +++ b/macros/EventAggregator.py Thu Apr 02 00:59:53 2009 +0200
4.3 @@ -12,6 +12,8 @@
4.4 import EventAggregatorSupport
4.5 import calendar
4.6
4.7 +linkToPage = EventAggregatorSupport.linkToPage
4.8 +
4.9 try:
4.10 set
4.11 except NameError:
4.12 @@ -163,10 +165,10 @@
4.13
4.14 output.append(fmt.div(on=1, css_class="event-controls"))
4.15 output.append(fmt.span(on=1, css_class="event-download-calendar"))
4.16 - output.append(page.link_to_raw(request, wikiutil.escape(_("Download this calendar in iCalendar format")), download_link))
4.17 + output.append(linkToPage(request, page, _("Download this calendar in iCalendar format"), download_link))
4.18 output.append(fmt.span(on=0))
4.19 output.append(fmt.span(on=1, css_class="event-download-all"))
4.20 - output.append(page.link_to_raw(request, wikiutil.escape(_("Download all events in iCalendar format")), download_all_link))
4.21 + output.append(linkToPage(request, page, _("Download all events in iCalendar format"), download_all_link))
4.22 output.append(fmt.span(on=0))
4.23 output.append(fmt.div(on=0))
4.24
4.25 @@ -210,9 +212,9 @@
4.26 )
4.27
4.28 output.append(fmt.span(on=1, css_class="previous-month"))
4.29 - output.append(page.link_to_raw(request, wikiutil.escape("<<"), previous_set_link))
4.30 + output.append(linkToPage(request, page, "<<", previous_set_link))
4.31 output.append(fmt.text(" "))
4.32 - output.append(page.link_to_raw(request, wikiutil.escape("<"), previous_month_link))
4.33 + output.append(linkToPage(request, page, "<", previous_month_link))
4.34 output.append(fmt.span(on=0))
4.35
4.36 # Links to the next set of months and to a calendar shifted
4.37 @@ -228,9 +230,9 @@
4.38 )
4.39
4.40 output.append(fmt.span(on=1, css_class="next-month"))
4.41 - output.append(page.link_to_raw(request, wikiutil.escape(">"), next_month_link))
4.42 + output.append(linkToPage(request, page, ">", next_month_link))
4.43 output.append(fmt.text(" "))
4.44 - output.append(page.link_to_raw(request, wikiutil.escape(">>"), next_set_link))
4.45 + output.append(linkToPage(request, page, ">>", next_set_link))
4.46 output.append(fmt.span(on=0))
4.47
4.48 # A link leading to this month being at the top of the calendar.
4.49 @@ -242,7 +244,7 @@
4.50 getMonthQueryString(calendar_name, "start", (year, month)),
4.51 getMonthQueryString(calendar_name, "end", end_month)
4.52 )
4.53 - output.append(page.link_to_raw(request, wikiutil.escape(full_month_label), month_link))
4.54 + output.append(linkToPage(request, page, full_month_label, month_link))
4.55
4.56 else:
4.57 output.append(fmt.span(on=1))
4.58 @@ -411,7 +413,7 @@
4.59
4.60 if not hide_text:
4.61 output.append(fmt.div(on=1, css_class=(" ".join(css_classes)), style=style))
4.62 - output.append(event_page.link_to_raw(request, wikiutil.escape(event_summary)))
4.63 + output.append(linkToPage(request, event_page, event_summary))
4.64 else:
4.65 output.append(fmt.div(on=1, css_class=(" ".join(css_classes)), style=hidden_style))
4.66 output.append(fmt.text(event_summary))
4.67 @@ -467,7 +469,7 @@
4.68 # Link to the page using the summary.
4.69
4.70 output.append(fmt.paragraph(on=1))
4.71 - output.append(event_page.link_to_raw(request, wikiutil.escape(event_summary)))
4.72 + output.append(linkToPage(request, event_page, event_summary))
4.73 output.append(fmt.paragraph(on=0))
4.74
4.75 # Start and end dates.