1.1 --- a/actions/EventAggregatorNewEvent.py Wed Feb 03 20:52:46 2010 +0100
1.2 +++ b/actions/EventAggregatorNewEvent.py Wed Feb 03 20:54:14 2010 +0100
1.3 @@ -39,6 +39,12 @@
1.4 request = self.request
1.5 form = request.form
1.6
1.7 + # Handle advanced and basic forms.
1.8 +
1.9 + show_advanced = form.get("advanced") and not form.get("basic")
1.10 +
1.11 + # Prepare the category list.
1.12 +
1.13 category_list = []
1.14 category_pagenames = form.get("category", [])
1.15
1.16 @@ -48,7 +54,16 @@
1.17 request):
1.18
1.19 selected = self._get_selected_for_list(category_pagename, category_pagenames)
1.20 - category_list.append('<option value="%s" %s>%s</option>' % (category_pagename, selected, category_name))
1.21 +
1.22 + # In the advanced view, populate a menu.
1.23 +
1.24 + if show_advanced:
1.25 + category_list.append('<option value="%s" %s>%s</option>' % (category_pagename, selected, category_name))
1.26 +
1.27 + # In the basic view, use hidden fields.
1.28 +
1.29 + elif selected:
1.30 + category_list.append('<input value="%s" name="category" type="hidden" />' % category_pagename)
1.31
1.32 # Initialise month lists.
1.33
1.34 @@ -93,9 +108,13 @@
1.35 "template_default" : form.get("template", [""])[0] or template_default,
1.36 "parent_label" : _("Parent page"),
1.37 "parent_default" : form.get("parent", [""])[0],
1.38 + "advanced_label" : _("Show advanced options"),
1.39 + "basic_label" : _("Show basic options"),
1.40 }
1.41
1.42 - return '''
1.43 + # Prepare the output HTML.
1.44 +
1.45 + html = '''
1.46 <table>
1.47 <tr>
1.48 <td class="label"><label>%(title_label)s</label></td>
1.49 @@ -104,14 +123,6 @@
1.50 </td>
1.51 </tr>
1.52 <tr>
1.53 - <td class="label"><label>%(category_label)s</label></td>
1.54 - <td class="content">
1.55 - <select multiple="multiple" name="category">
1.56 - %(category_list)s
1.57 - </select>
1.58 - </td>
1.59 - </tr>
1.60 - <tr>
1.61 <td class="label"><label>%(start_label)s</label></td>
1.62 <td>
1.63 <input name="start-day" type="text" value="%(start_day_default)s" size="2" />
1.64 @@ -136,6 +147,24 @@
1.65 <td>
1.66 <input name="description" type="text" size="40" value="%(description_default)s" />
1.67 </td>
1.68 + </tr>''' % d
1.69 +
1.70 + if show_advanced:
1.71 + html += '''
1.72 + <tr>
1.73 + <td></td>
1.74 + <td>
1.75 + <input name="basic" type="submit" value="%(basic_label)s" />
1.76 + <input name="advanced" type="hidden" value="true" />
1.77 + </td>
1.78 + </tr>
1.79 + <tr>
1.80 + <td class="label"><label>%(category_label)s</label></td>
1.81 + <td class="content">
1.82 + <select multiple="multiple" name="category">
1.83 + %(category_list)s
1.84 + </select>
1.85 + </td>
1.86 </tr>
1.87 <tr>
1.88 <td class="label"><label>%(template_label)s</label></td>
1.89 @@ -155,8 +184,27 @@
1.90 %(buttons_html)s
1.91 </td>
1.92 </tr>
1.93 -</table>
1.94 -''' % d
1.95 +</table>''' % d
1.96 + else:
1.97 + html += '''
1.98 + <tr>
1.99 + <td></td>
1.100 + <td>
1.101 + <input name="advanced" type="submit" value="%(advanced_label)s" />
1.102 + %(category_list)s
1.103 + <input name="parent" type="hidden" value="%(parent_default)s" />
1.104 + <input name="template" type="hidden" value="%(template_default)s" />
1.105 + </td>
1.106 + </tr>
1.107 + <tr>
1.108 + <td></td>
1.109 + <td class="buttons">
1.110 + %(buttons_html)s
1.111 + </td>
1.112 + </tr>
1.113 +</table>''' % d
1.114 +
1.115 + return html
1.116
1.117 def do_action(self):
1.118