1.1 --- a/actions/EventAggregatorNewEvent.py Sun Jun 07 00:14:21 2009 +0200
1.2 +++ b/actions/EventAggregatorNewEvent.py Mon Jun 08 23:37:36 2009 +0200
1.3 @@ -40,7 +40,6 @@
1.4 form = request.form
1.5
1.6 category_list = []
1.7 -
1.8 category_pagenames = form.get("category", [])
1.9
1.10 for category_name, category_pagename in \
1.11 @@ -70,20 +69,28 @@
1.12 selected = self._get_selected(month, end_month)
1.13 end_month_list.append('<option value="%02d" %s>%s</option>' % (month, selected, month_label))
1.14
1.15 + # Permitting configuration of the template name.
1.16 +
1.17 + template_default = getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate")
1.18 +
1.19 d = {
1.20 - "buttons_html" : buttons_html,
1.21 - "category_label" : _("Categories"),
1.22 - "category_list" : "\n".join(category_list),
1.23 - "start_month_list" : "\n".join(start_month_list),
1.24 - "end_month_list" : "\n".join(end_month_list),
1.25 - "start_label" : _("Start date (day, month, year)"),
1.26 - "start_day_default" : form.get("start-day", [""])[0],
1.27 - "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(),
1.28 - "end_label" : _("End date (day, month, year)"),
1.29 - "end_day_default" : form.get("end-day", [""])[0],
1.30 - "end_year_default" : form.get("end-year", [""])[0],
1.31 - "title_label" : _("Event title/summary"),
1.32 - "title_default" : form.get("title", [""])[0],
1.33 + "buttons_html" : buttons_html,
1.34 + "category_label" : _("Categories"),
1.35 + "category_list" : "\n".join(category_list),
1.36 + "start_month_list" : "\n".join(start_month_list),
1.37 + "end_month_list" : "\n".join(end_month_list),
1.38 + "start_label" : _("Start date (day, month, year)"),
1.39 + "start_day_default" : form.get("start-day", [""])[0],
1.40 + "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(),
1.41 + "end_label" : _("End date (day, month, year)"),
1.42 + "end_day_default" : form.get("end-day", [""])[0],
1.43 + "end_year_default" : form.get("end-year", [""])[0],
1.44 + "title_label" : _("Event title/summary"),
1.45 + "title_default" : form.get("title", [""])[0],
1.46 + "description_label" : _("Event description"),
1.47 + "description_default" : form.get("description", [""])[0],
1.48 + "template_label" : _("Event template"),
1.49 + "template_default" : form.get("template", [""])[0] or template_default,
1.50 }
1.51
1.52 return '''
1.53 @@ -123,6 +130,18 @@
1.54 </td>
1.55 </tr>
1.56 <tr>
1.57 + <td class="label"><label>%(description_label)s</label></td>
1.58 + <td>
1.59 + <input name="description" type="text" size="40" value="%(description_default)s" />
1.60 + </td>
1.61 + </tr>
1.62 + <tr>
1.63 + <td class="label"><label>%(template_label)s</label></td>
1.64 + <td>
1.65 + <input name="template" type="text" size="40" value="%(template_default)s" />
1.66 + </td>
1.67 + </tr>
1.68 + <tr>
1.69 <td></td>
1.70 <td class="buttons">
1.71 %(buttons_html)s
1.72 @@ -141,10 +160,14 @@
1.73 # If no title exists in the request, an error message is returned.
1.74
1.75 title = form.get("title", [None])[0]
1.76 + template = form.get("template", [None])[0]
1.77
1.78 if not title:
1.79 return 0, _("No event title specified.")
1.80
1.81 + if not template:
1.82 + return 0, _("No page template specified.")
1.83 +
1.84 return self.create_event(self.request)
1.85
1.86 def render_success(self, msg, msgtype=None):
1.87 @@ -165,9 +188,12 @@
1.88 form = request.form
1.89
1.90 category_pagenames = form.get("category", [])
1.91 - title = form.get("title", [None])[0]
1.92 + description = form.get("description", [None])[0]
1.93
1.94 try:
1.95 + title = form["title"][0]
1.96 + template = form["template"][0]
1.97 +
1.98 start_day = self._get_input(form, "start-day", 0)
1.99 start_month = self._get_input(form, "start-month", 0)
1.100 start_year = self._get_input(form, "start-year", 0)
1.101 @@ -181,13 +207,19 @@
1.102 except (TypeError, ValueError):
1.103 return 0, _("Days and years must be numbers yielding a valid date!")
1.104
1.105 + except (KeyError, IndexError):
1.106 + return 0, _("Event title or template missing.")
1.107 +
1.108 start_date = self.make_date_string(start_year, start_month, start_day)
1.109 end_date = self.make_date_string(end_year, end_month, end_day)
1.110
1.111 # Copy the template.
1.112 - # Permitting configuration of the template name.
1.113 +
1.114 + page = PageEditor(request, template)
1.115
1.116 - page = PageEditor(request, getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate"))
1.117 + if not page.exists():
1.118 + return 0, _("Event template not available.")
1.119 +
1.120 body = page.get_raw_body()
1.121
1.122 # Load the new page and replace the event details in the body.
1.123 @@ -198,7 +230,7 @@
1.124 return 0, _("The specified page already exists. Please choose another name.")
1.125
1.126 if EventAggregatorSupport.getFormat(page) == "wiki":
1.127 - event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title}
1.128 + event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title, "description" : description}
1.129 body = EventAggregatorSupport.setEventDetails(body, event_details)
1.130 body = EventAggregatorSupport.setCategoryMembership(body, category_pagenames)
1.131 new_page.saveText(body, 0)