From bc440d56f01a0b66aec3b4d808ce327889b2c8a4 Mon Sep 17 00:00:00 2001 From: Aron Carroll Date: Thu, 14 Jun 2012 16:06:13 +0100 Subject: [PATCH 1/2] [2375] Update the edit dataset form * No longer displays the old ckan templates * Split package form into smaller sections basic & metadata * Created extendible pages shared by new/edit actions * Pass the action into the templates in the package controller --- ckan/controllers/package.py | 4 +- ckan/templates/package/edit.html | 14 +++++ ckan/templates/package/edit_form.html | 0 ckan/templates/package/new_package_form.html | 25 ++++++++- ckan/templates/package/pages/form.html | 32 ++++++++++++ .../snippets/new_package_breadcrumb.html | 1 + .../snippets/package_basic_fields.html | 36 +++++++++++++ .../package/snippets/package_form.html | 52 ------------------- .../snippets/package_metadata_fields.html | 13 +++++ .../snippets/package_metadata_form.html | 12 +---- 10 files changed, 122 insertions(+), 67 deletions(-) create mode 100644 ckan/templates/package/edit.html create mode 100644 ckan/templates/package/edit_form.html create mode 100644 ckan/templates/package/pages/form.html create mode 100644 ckan/templates/package/snippets/package_basic_fields.html delete mode 100644 ckan/templates/package/snippets/package_form.html create mode 100644 ckan/templates/package/snippets/package_metadata_fields.html diff --git a/ckan/controllers/package.py b/ckan/controllers/package.py index 8b2c68cff32..74b3a2e8f13 100644 --- a/ckan/controllers/package.py +++ b/ckan/controllers/package.py @@ -455,7 +455,7 @@ def new(self, data=None, errors=None, error_summary=None): errors = errors or {} error_summary = error_summary or {} - vars = {'data': data, 'errors': errors, 'error_summary': error_summary} + vars = {'data': data, 'errors': errors, 'error_summary': error_summary, 'action': 'new'} c.errors_json = json.dumps(errors) self._setup_template_variables(context, {'id': id}) @@ -512,7 +512,7 @@ def edit(self, id, data=None, errors=None, error_summary=None): abort(401, _('User %r not authorized to edit %s') % (c.user, id)) errors = errors or {} - vars = {'data': data, 'errors': errors, 'error_summary': error_summary} + vars = {'data': data, 'errors': errors, 'error_summary': error_summary, 'action': 'edit'} c.errors_json = json.dumps(errors) self._setup_template_variables(context, {'id': id}, package_type=package_type) diff --git a/ckan/templates/package/edit.html b/ckan/templates/package/edit.html new file mode 100644 index 00000000000..cbf17658dba --- /dev/null +++ b/ckan/templates/package/edit.html @@ -0,0 +1,14 @@ +{% extends 'package/pages/form_page.html' %} + +{% set pkg = c.pkg_dict %} + +{% block breadcrumb %} + +{% endblock %} + +{% block stages %}{% endblock %} diff --git a/ckan/templates/package/edit_form.html b/ckan/templates/package/edit_form.html new file mode 100644 index 00000000000..e69de29bb2d diff --git a/ckan/templates/package/new_package_form.html b/ckan/templates/package/new_package_form.html index 3fb264075b3..4af5e9d1d15 100644 --- a/ckan/templates/package/new_package_form.html +++ b/ckan/templates/package/new_package_form.html @@ -1,2 +1,23 @@ -{# FIXME why is this here? #} -{% include 'package/snippets/package_form.html' %} +{% extends 'package/pages/form.html' %} + +{% block metadata_fields %} + {% if action == 'edit' %}{{ super() }}{% endif %} +{% endblock %} + +{% block disclaimer %} + {% if action != 'edit' %}{{ super() }}{% endif %} +{% endblock %} + +{% block save_button_text %} + {% if action != 'edit' %} + {{ super() }} + {% else %} + Update + {% endif %} +{% endblock %} + +{% block cancel_button %} + {% if action != 'edit' %} + {{ super() }} + {% endif %} +{% endblock %} diff --git a/ckan/templates/package/pages/form.html b/ckan/templates/package/pages/form.html new file mode 100644 index 00000000000..8d6426bb538 --- /dev/null +++ b/ckan/templates/package/pages/form.html @@ -0,0 +1,32 @@ +{% import 'macros/form.html' as form %} + +
+ + {% block errors %}{{ form.errors(error_summary) }}{% endblock %} + + {% block basic_fields %} + {% snippet 'package/snippets/package_basic_fields.html', data=data, errors=errors, licenses=c.licences, groups_available=c.groups_available %} + {% endblock %} + + {% block metadata_fields %} + {% snippet 'package/snippets/package_metadata_fields.html', data=data, errors=errors %} + {% endblock %} + + {% block form_actions %} +
+ {% block disclaimer %} +

+ {%- trans -%} + Important: By submitting content, you + agree to release your contributions under the Open Database + License. + {%- endtrans -%} +

+ {% endblock %} + {% block cancel_button %} + {% block save_button %}{{ _('Cancel') }}{% endblock %} + {% endblock %} + +
+ {% endblock %} +
diff --git a/ckan/templates/package/snippets/new_package_breadcrumb.html b/ckan/templates/package/snippets/new_package_breadcrumb.html index 98f299e3ddb..856c8df81d4 100644 --- a/ckan/templates/package/snippets/new_package_breadcrumb.html +++ b/ckan/templates/package/snippets/new_package_breadcrumb.html @@ -1,4 +1,5 @@ diff --git a/ckan/templates/package/snippets/package_basic_fields.html b/ckan/templates/package/snippets/package_basic_fields.html new file mode 100644 index 00000000000..63f985d9338 --- /dev/null +++ b/ckan/templates/package/snippets/package_basic_fields.html @@ -0,0 +1,36 @@ +{% import 'macros/form.html' as form %} + +{{ form.input('title', id='field-title', label=_('Title'), placeholder=_('A descriptive title'), value=data.title, error=errors.title, classes=['control-full', 'control-large']) }} + +{{ form.input('name', id='field-name', label=_('URL'), placeholder=_('my-dataset'), value=data.title, error=errors.name, classes=['control-full']) }} + +{{ form.markdown('notes', id='field-notes', label=_('Description'), placeholder=_('Some useful notes about the data'), value=data.notes, error=errors.notes) }} + +
+ {% set error = errors.license_id %} + +
+ + {% if error %}{{ error }}{% endif %} + {{ _("Don't worry if you don't know which license the data has been released under") }} +
+
+ +{% if groups_available %} +
+ {% set groups = data.groups or [] %} + +
+ +
+
+{% endif %} diff --git a/ckan/templates/package/snippets/package_form.html b/ckan/templates/package/snippets/package_form.html deleted file mode 100644 index c60c80277a6..00000000000 --- a/ckan/templates/package/snippets/package_form.html +++ /dev/null @@ -1,52 +0,0 @@ -{% import 'macros/form.html' as form %} - -{% set data = data or {} %} -{% set errors = errors or {} %} - -
- - {{ form.errors(error_summary) }} - - {{ form.input('title', id='field-title', label=_('Title'), placeholder=_('A descriptive title'), value=data.title, error=errors.title, classes=['control-full', 'control-large']) }} - - {{ form.input('name', id='field-name', label=_('URL'), placeholder=_('my-dataset'), value=data.title, error=errors.name, classes=['control-full']) }} - - {{ form.markdown('notes', id='field-notes', label=_('Description'), placeholder=_('Some useful notes about the data'), value=data.notes, error=errors.notes) }} - -
- {% set error = errors.license_id %} - -
- - {% if error %}{{ error }}{% endif %} - {{ _("Don't worry if you don't know which license the data has been released under") }} -
-
- - {% if c.groups_available %} -
- {% set groups = data.groups or [] %} - -
- -
-
- {% endif %} - -
-

Important: By submitting content, you - agree to release your contributions under the Open Database - License.

- Cancel - -
-
diff --git a/ckan/templates/package/snippets/package_metadata_fields.html b/ckan/templates/package/snippets/package_metadata_fields.html new file mode 100644 index 00000000000..ec9570a983a --- /dev/null +++ b/ckan/templates/package/snippets/package_metadata_fields.html @@ -0,0 +1,13 @@ +{% import 'macros/form.html' as form %} + +{{ form.input('author', label=_('Author'), id='field-author', placeholder=_('Joe Bloggs'), value=data.author, error=errors.author, classes=['control-medium']) }} + +{{ form.input('author_email', label=_('Author Email'), id='field-author-email', placeholder=_('joe@example.com'), value=data.author_email, error=errors.author_email, classes=['control-medium']) }} + +{{ form.input('maintainer', label=_('Maintainer'), id='field-maintainer', placeholder=_('Joe Bloggs'), value=data.maintainer, error=errors.maintainer, classes=['control-medium']) }} + +{{ form.input('maintainer_email', label=_('Maintainer Email'), id='field-maintainer-email', placeholder=_('joe@example.com'), value=data.maintainer_email, error=errors.maintainer_email, classes=['control-medium']) }} + +{% block custom_fields %} + {% snippet 'snippets/custom_form_fields.html', extras=data.extras, errors=errors, limit=3 %} +{% endblock %} diff --git a/ckan/templates/package/snippets/package_metadata_form.html b/ckan/templates/package/snippets/package_metadata_form.html index 78f9aced906..fe4dca0fb04 100644 --- a/ckan/templates/package/snippets/package_metadata_form.html +++ b/ckan/templates/package/snippets/package_metadata_form.html @@ -6,17 +6,7 @@
{{ form.errors(error_summary) }} - {{ form.input('author', label=_('Author'), id='field-author', placeholder=_('Joe Bloggs'), value=data.author, error=errors.author, classes=['control-medium']) }} - - {{ form.input('author_email', label=_('Author Email'), id='field-author-email', placeholder=_('joe@example.com'), value=data.author_email, error=errors.author_email, classes=['control-medium']) }} - - {{ form.input('maintainer', label=_('Maintainer'), id='field-maintainer', placeholder=_('Joe Bloggs'), value=data.maintainer, error=errors.maintainer, classes=['control-medium']) }} - - {{ form.input('maintainer_email', label=_('Maintainer Email'), id='field-maintainer-email', placeholder=_('joe@example.com'), value=data.maintainer_email, error=errors.maintainer_email, classes=['control-medium']) }} - - {% block custom_fields %} - {% snippet 'snippets/custom_form_fields.html', extras=data.extras, errors=errors, limit=3 %} - {% endblock %} + {% snippet 'package/snippets/package_metadata_fields.html', data=data, errors=errors %}
From 8b80b5dc9a8005013b1ada3feffe48691456ad95 Mon Sep 17 00:00:00 2001 From: Aron Carroll Date: Thu, 14 Jun 2012 16:12:58 +0100 Subject: [PATCH 2/2] [2375] Remove Genshi regression in template --- ckan/templates/package/snippets/package_basic_fields.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ckan/templates/package/snippets/package_basic_fields.html b/ckan/templates/package/snippets/package_basic_fields.html index 63f985d9338..cc9a90bfeab 100644 --- a/ckan/templates/package/snippets/package_basic_fields.html +++ b/ckan/templates/package/snippets/package_basic_fields.html @@ -12,7 +12,7 @@
{% if error %}{{ error }}{% endif %}