# HG changeset patch # User Paul Boddie # Date 1244497056 -7200 # Node ID f1f552421d5e3d23b6fe2d53625d264cfe1d182c # Parent 8d69ccf101db25c245946be1b0df3c54182cad40 Added template and description fields to the action form. Made description substitution use the raw text from the form. Added a description item to the event template page. Added checks for page titles and existing templates in the action. diff -r 8d69ccf101db -r f1f552421d5e EventAggregatorSupport.py --- a/EventAggregatorSupport.py Sun Jun 07 00:14:21 2009 +0200 +++ b/EventAggregatorSupport.py Mon Jun 08 23:37:36 2009 +0200 @@ -249,9 +249,14 @@ # Labels which may well be quoted. - elif term in ("title", "summary", "description"): + elif term in ("title", "summary"): desc = getEncodedWikiText(event_details[term]) + # Text which need not be quoted, but it will be Wiki text. + + elif term in ("description",): + desc = event_details[term] + new_body_parts.append(desc) else: diff -r 8d69ccf101db -r f1f552421d5e actions/EventAggregatorNewEvent.py --- a/actions/EventAggregatorNewEvent.py Sun Jun 07 00:14:21 2009 +0200 +++ b/actions/EventAggregatorNewEvent.py Mon Jun 08 23:37:36 2009 +0200 @@ -40,7 +40,6 @@ form = request.form category_list = [] - category_pagenames = form.get("category", []) for category_name, category_pagename in \ @@ -70,20 +69,28 @@ selected = self._get_selected(month, end_month) end_month_list.append('' % (month, selected, month_label)) + # Permitting configuration of the template name. + + template_default = getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate") + d = { - "buttons_html" : buttons_html, - "category_label" : _("Categories"), - "category_list" : "\n".join(category_list), - "start_month_list" : "\n".join(start_month_list), - "end_month_list" : "\n".join(end_month_list), - "start_label" : _("Start date (day, month, year)"), - "start_day_default" : form.get("start-day", [""])[0], - "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(), - "end_label" : _("End date (day, month, year)"), - "end_day_default" : form.get("end-day", [""])[0], - "end_year_default" : form.get("end-year", [""])[0], - "title_label" : _("Event title/summary"), - "title_default" : form.get("title", [""])[0], + "buttons_html" : buttons_html, + "category_label" : _("Categories"), + "category_list" : "\n".join(category_list), + "start_month_list" : "\n".join(start_month_list), + "end_month_list" : "\n".join(end_month_list), + "start_label" : _("Start date (day, month, year)"), + "start_day_default" : form.get("start-day", [""])[0], + "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(), + "end_label" : _("End date (day, month, year)"), + "end_day_default" : form.get("end-day", [""])[0], + "end_year_default" : form.get("end-year", [""])[0], + "title_label" : _("Event title/summary"), + "title_default" : form.get("title", [""])[0], + "description_label" : _("Event description"), + "description_default" : form.get("description", [""])[0], + "template_label" : _("Event template"), + "template_default" : form.get("template", [""])[0] or template_default, } return ''' @@ -123,6 +130,18 @@ + + + + + + + + + + + + %(buttons_html)s @@ -141,10 +160,14 @@ # If no title exists in the request, an error message is returned. title = form.get("title", [None])[0] + template = form.get("template", [None])[0] if not title: return 0, _("No event title specified.") + if not template: + return 0, _("No page template specified.") + return self.create_event(self.request) def render_success(self, msg, msgtype=None): @@ -165,9 +188,12 @@ form = request.form category_pagenames = form.get("category", []) - title = form.get("title", [None])[0] + description = form.get("description", [None])[0] try: + title = form["title"][0] + template = form["template"][0] + start_day = self._get_input(form, "start-day", 0) start_month = self._get_input(form, "start-month", 0) start_year = self._get_input(form, "start-year", 0) @@ -181,13 +207,19 @@ except (TypeError, ValueError): return 0, _("Days and years must be numbers yielding a valid date!") + except (KeyError, IndexError): + return 0, _("Event title or template missing.") + start_date = self.make_date_string(start_year, start_month, start_day) end_date = self.make_date_string(end_year, end_month, end_day) # Copy the template. - # Permitting configuration of the template name. + + page = PageEditor(request, template) - page = PageEditor(request, getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate")) + if not page.exists(): + return 0, _("Event template not available.") + body = page.get_raw_body() # Load the new page and replace the event details in the body. @@ -198,7 +230,7 @@ return 0, _("The specified page already exists. Please choose another name.") if EventAggregatorSupport.getFormat(page) == "wiki": - event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title} + event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title, "description" : description} body = EventAggregatorSupport.setEventDetails(body, event_details) body = EventAggregatorSupport.setCategoryMembership(body, category_pagenames) new_page.saveText(body, 0) diff -r 8d69ccf101db -r f1f552421d5e pages/EventTemplate --- a/pages/EventTemplate Sun Jun 07 00:14:21 2009 +0200 +++ b/pages/EventTemplate Mon Jun 08 23:37:36 2009 +0200 @@ -1,6 +1,7 @@ Start:: YYYY-MM-DD End:: YYYY-MM-DD Topics:: topics + Description:: a brief description of the event for the RSS feed ## Summary:: summary/title ## To choose a title or summary different to the page name, or to ## provide a specific form of the page name, uncomment the above entry