From 6e272c51ba41e6aa8a91a7e5eab53119f97939ed Mon Sep 17 00:00:00 2001 From: Aron Carroll Date: Tue, 5 Jun 2012 11:46:35 +0100 Subject: [PATCH] [2474] Add new form "pages" for group forms This makes it easier for the new and edit forms to share the same templates by simply overriding blocks. --- ckan/templates/group/pages/form.html | 80 +++++++++++++++++++++++ ckan/templates/group/pages/form_page.html | 35 ++++++++++ 2 files changed, 115 insertions(+) create mode 100644 ckan/templates/group/pages/form.html create mode 100644 ckan/templates/group/pages/form_page.html diff --git a/ckan/templates/group/pages/form.html b/ckan/templates/group/pages/form.html new file mode 100644 index 00000000000..a86acc50a32 --- /dev/null +++ b/ckan/templates/group/pages/form.html @@ -0,0 +1,80 @@ +{% import 'macros/form.html' as form %} + +
+ {% block error_summary %} + {% if error_summary %} +
+

{{ _('Errors in form') }}

+

{{ _('The form contains invalid entries:') }}

+
    + {% for key, error in error_summary.items() %} +
  • {{ key }} {{ error }}
  • + {% endfor %} +
+
+ {% endif %} + {% endblock %} + + {% block basic_fields %} + {{ form.input('title', label=_('Title'), id='field-title', placeholder=_('My Group'), data=data, errors=errors, classes=['control-full']) }} + {{ form.prepend('name', label=_('URL'), prepend=h.url(controller='group', action='index') ~ '/', id='field-url', placeholder=_('my-group'), data=data, errors=errors) }} + {{ form.markdown('description', label=_('Description'), id='field-description', placeholder=_('A little information about my group...'), data=data, errors=errors) }} + {{ form.input('image_url', label=_('Image URL'), id='field-url', type='url', placeholder=_('http://example.com/my-image.jpg'), data=data, errors=errors, classes=['control-full']) }} + {% if c.is_sysadmin or c.auth_for_change_state %} + {{ form.select('state', label=_('State'), id='field-state', selected=data.state, options={active: _('Active'), deleted: _('Deleted')}, errors=errors) }} + {% endif %} + {% endblock %} + + {% block custom_fields %} + {% for extra in data.extras %} + {% set prefix = 'extras__%d__' % loop.index0 %} + {{ form.keyvalue( + names=(prefix ~ 'key', prefix ~ 'value', prefix ~ 'deleted'), + id='field-extras-%d' % loop.index, + label=_('Custom Field'), + values=(extra.key, extra.value, extra.deleted), + error=errors[prefix ~ 'key'] or errors[prefix ~ 'value'] + ) }} + {% endfor %} + + {# Add a max if 3 empty columns #} + {% for extra in range(data.extras|count, 3) %} + {% set index = (loop.index0 + data.extras|count) %} + {% set prefix = 'extras__%d__' % index %} + {{ form.keyvalue( + names=(prefix ~ 'key', prefix ~ 'value', prefix ~ 'deleted'), + id='field-extras-%d' % index, + label=_('Custom Field'), + values=(extra.key, extra.value, extra.deleted), + error=errors[prefix ~ 'key'] or errors[prefix ~ 'value'] + ) }} + {% endfor %} + {% endblock %} + + {% block dataset_fields %} + {% if data.packages %} +
+ +
+ {% for dataset in data.packages %} + + {% endfor %} +
+
+ {% endif %} + + {% set dataset_name = 'packages__%s__name' % data.packages|length %} + {{ form.input(dataset_name, label=_('Add Dataset'), id="field-dataset", value=data[dataset_name]) }} + {% endblock %} + +
+ {% if action == 'edit' %} + + {% else %} + + {% endif %} +
+
diff --git a/ckan/templates/group/pages/form_page.html b/ckan/templates/group/pages/form_page.html new file mode 100644 index 00000000000..eaa3b0eb206 --- /dev/null +++ b/ckan/templates/group/pages/form_page.html @@ -0,0 +1,35 @@ +{% extends "page.jinja.html" %} + +{% block title %}{{ _('Add a Group') }} - {{ super() }}{% endblock %} + +{% block breadcrumb %} + +{% endblock %} + +{% block primary_content %} +
+
+

{{ _('Add a Group') }}

+ {% block form %} + {{ c.form | safe }} + {% endblock %} +
+
+{% endblock %} + +{% block secondary_content %} +
+

{{ _('What are Groups?') }}

+
+ {% trans %} +

Whilst tags are great at collecting datasets together, there are + occasions when you want to restrict users from editing a collection.

+

A group can be set-up to specify which users have permission to add or + remove datasets from it.

+ {% endtrans %} +
+
+{% endblock %}