2.1 --- a/actions/EventAggregatorNewEvent.py Sun Jun 07 00:14:21 2009 +0200
2.2 +++ b/actions/EventAggregatorNewEvent.py Mon Jun 08 23:37:36 2009 +0200
2.3 @@ -40,7 +40,6 @@
2.4 form = request.form
2.5
2.6 category_list = []
2.7 -
2.8 category_pagenames = form.get("category", [])
2.9
2.10 for category_name, category_pagename in \
2.11 @@ -70,20 +69,28 @@
2.12 selected = self._get_selected(month, end_month)
2.13 end_month_list.append('<option value="%02d" %s>%s</option>' % (month, selected, month_label))
2.14
2.15 + # Permitting configuration of the template name.
2.16 +
2.17 + template_default = getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate")
2.18 +
2.19 d = {
2.20 - "buttons_html" : buttons_html,
2.21 - "category_label" : _("Categories"),
2.22 - "category_list" : "\n".join(category_list),
2.23 - "start_month_list" : "\n".join(start_month_list),
2.24 - "end_month_list" : "\n".join(end_month_list),
2.25 - "start_label" : _("Start date (day, month, year)"),
2.26 - "start_day_default" : form.get("start-day", [""])[0],
2.27 - "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(),
2.28 - "end_label" : _("End date (day, month, year)"),
2.29 - "end_day_default" : form.get("end-day", [""])[0],
2.30 - "end_year_default" : form.get("end-year", [""])[0],
2.31 - "title_label" : _("Event title/summary"),
2.32 - "title_default" : form.get("title", [""])[0],
2.33 + "buttons_html" : buttons_html,
2.34 + "category_label" : _("Categories"),
2.35 + "category_list" : "\n".join(category_list),
2.36 + "start_month_list" : "\n".join(start_month_list),
2.37 + "end_month_list" : "\n".join(end_month_list),
2.38 + "start_label" : _("Start date (day, month, year)"),
2.39 + "start_day_default" : form.get("start-day", [""])[0],
2.40 + "start_year_default" : form.get("start-year", [""])[0] or EventAggregatorSupport.getCurrentYear(),
2.41 + "end_label" : _("End date (day, month, year)"),
2.42 + "end_day_default" : form.get("end-day", [""])[0],
2.43 + "end_year_default" : form.get("end-year", [""])[0],
2.44 + "title_label" : _("Event title/summary"),
2.45 + "title_default" : form.get("title", [""])[0],
2.46 + "description_label" : _("Event description"),
2.47 + "description_default" : form.get("description", [""])[0],
2.48 + "template_label" : _("Event template"),
2.49 + "template_default" : form.get("template", [""])[0] or template_default,
2.50 }
2.51
2.52 return '''
2.53 @@ -123,6 +130,18 @@
2.54 </td>
2.55 </tr>
2.56 <tr>
2.57 + <td class="label"><label>%(description_label)s</label></td>
2.58 + <td>
2.59 + <input name="description" type="text" size="40" value="%(description_default)s" />
2.60 + </td>
2.61 + </tr>
2.62 + <tr>
2.63 + <td class="label"><label>%(template_label)s</label></td>
2.64 + <td>
2.65 + <input name="template" type="text" size="40" value="%(template_default)s" />
2.66 + </td>
2.67 + </tr>
2.68 + <tr>
2.69 <td></td>
2.70 <td class="buttons">
2.71 %(buttons_html)s
2.72 @@ -141,10 +160,14 @@
2.73 # If no title exists in the request, an error message is returned.
2.74
2.75 title = form.get("title", [None])[0]
2.76 + template = form.get("template", [None])[0]
2.77
2.78 if not title:
2.79 return 0, _("No event title specified.")
2.80
2.81 + if not template:
2.82 + return 0, _("No page template specified.")
2.83 +
2.84 return self.create_event(self.request)
2.85
2.86 def render_success(self, msg, msgtype=None):
2.87 @@ -165,9 +188,12 @@
2.88 form = request.form
2.89
2.90 category_pagenames = form.get("category", [])
2.91 - title = form.get("title", [None])[0]
2.92 + description = form.get("description", [None])[0]
2.93
2.94 try:
2.95 + title = form["title"][0]
2.96 + template = form["template"][0]
2.97 +
2.98 start_day = self._get_input(form, "start-day", 0)
2.99 start_month = self._get_input(form, "start-month", 0)
2.100 start_year = self._get_input(form, "start-year", 0)
2.101 @@ -181,13 +207,19 @@
2.102 except (TypeError, ValueError):
2.103 return 0, _("Days and years must be numbers yielding a valid date!")
2.104
2.105 + except (KeyError, IndexError):
2.106 + return 0, _("Event title or template missing.")
2.107 +
2.108 start_date = self.make_date_string(start_year, start_month, start_day)
2.109 end_date = self.make_date_string(end_year, end_month, end_day)
2.110
2.111 # Copy the template.
2.112 - # Permitting configuration of the template name.
2.113 +
2.114 + page = PageEditor(request, template)
2.115
2.116 - page = PageEditor(request, getattr(request.cfg, "event_aggregator_new_event_template", "EventTemplate"))
2.117 + if not page.exists():
2.118 + return 0, _("Event template not available.")
2.119 +
2.120 body = page.get_raw_body()
2.121
2.122 # Load the new page and replace the event details in the body.
2.123 @@ -198,7 +230,7 @@
2.124 return 0, _("The specified page already exists. Please choose another name.")
2.125
2.126 if EventAggregatorSupport.getFormat(page) == "wiki":
2.127 - event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title}
2.128 + event_details = {"start" : start_date, "end" : end_date, "title" : title, "summary" : title, "description" : description}
2.129 body = EventAggregatorSupport.setEventDetails(body, event_details)
2.130 body = EventAggregatorSupport.setCategoryMembership(body, category_pagenames)
2.131 new_page.saveText(body, 0)