From 932f532b80cab6f125b102a72128b46706242299 Mon Sep 17 00:00:00 2001 From: Matt Westcott Date: Fri, 6 Feb 2015 14:43:54 +0000 Subject: [PATCH] Set choose_one_text, choose_another_text and clear_choice_text as overrideable properties on AdminChooser so that we don't have to do template inheritance gymnastics to pass them around --- .../templates/wagtailstyleguide/base.html | 6 +++--- wagtail/wagtailadmin/edit_handlers.py | 10 +--------- .../edit_handlers/chooser_panel.html | 6 +++--- .../edit_handlers/page_chooser_panel.html | 3 --- .../templates/wagtailadmin/pages/copy.html | 4 +--- wagtail/wagtailadmin/widgets.py | 16 ++++++++++++++++ .../edit_handlers/document_chooser_panel.html | 4 ---- wagtail/wagtaildocs/widgets.py | 5 +++++ .../edit_handlers/image_chooser_panel.html | 4 ---- wagtail/wagtailimages/widgets.py | 6 ++++++ .../editorspicks/includes/editorspicks_form.html | 6 ++---- wagtail/wagtailsites/forms.py | 5 ++++- .../templates/wagtailsites/create.html | 6 ++---- .../templates/wagtailsites/edit.html | 7 ++----- wagtail/wagtailsnippets/edit_handlers.py | 2 +- .../edit_handlers/snippet_chooser_panel.html | 3 --- wagtail/wagtailsnippets/widgets.py | 7 +++++++ .../groups/includes/page_permissions_form.html | 7 ++----- 18 files changed, 55 insertions(+), 52 deletions(-) diff --git a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html index 89f6704c4..de0019f84 100644 --- a/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html +++ b/wagtail/contrib/wagtailstyleguide/templates/wagtailstyleguide/base.html @@ -348,11 +348,11 @@ {% if field.name == 'file' %} {% include "wagtailimages/images/_file_field.html" %} {% elif field.name == 'page_chooser' %} -
  • {% include "wagtailadmin/edit_handlers/page_chooser_panel.html" with field=field choose_one_text_str="Choose a page" choose_another_text_str="Choose another page" only %}
  • +
  • {% include "wagtailadmin/edit_handlers/page_chooser_panel.html" with field=field only %}
  • {% elif field.name == 'image_chooser' %} -
  • {% include "wagtailimages/edit_handlers/image_chooser_panel.html" with field=field choose_one_text_str="Choose an image" choose_another_text_str="Choose another image" only %}
  • +
  • {% include "wagtailimages/edit_handlers/image_chooser_panel.html" with field=field only %}
  • {% elif field.name == 'document_chooser' %} -
  • {% include "wagtaildocs/edit_handlers/document_chooser_panel.html" with field=field choose_one_text_str="Choose a document" choose_another_text_str="Choose another document" only %}
  • +
  • {% include "wagtaildocs/edit_handlers/document_chooser_panel.html" with field=field only %}
  • {% else %} {% include "wagtailadmin/shared/field_as_li.html" %} {% endif %} diff --git a/wagtail/wagtailadmin/edit_handlers.py b/wagtail/wagtailadmin/edit_handlers.py index 5e490dd9a..8aa047fc5 100644 --- a/wagtail/wagtailadmin/edit_handlers.py +++ b/wagtail/wagtailadmin/edit_handlers.py @@ -494,14 +494,13 @@ class BaseChooserPanel(BaseFieldPanel): # like every other unpopulated field type. Yay consistency! return None - def render_as_field(self, extra_context={}): + def render_as_field(self): instance_obj = self.get_chosen_item() context = { 'field': self.bound_field, self.object_type_name: instance_obj, 'is_chosen': bool(instance_obj), } - context.update(extra_context) return mark_safe(render_to_string(self.field_template, context)) @@ -536,13 +535,6 @@ class BasePageChooserPanel(BaseChooserPanel): return cls._target_content_type - def render_as_field(self): - context = { - 'choose_another_text_str': ugettext_lazy("Choose another page"), - 'choose_one_text_str': ugettext_lazy("Choose a page"), - } - return super(BasePageChooserPanel, self).render_as_field(extra_context=context) - class PageChooserPanel(object): def __init__(self, field_name, page_type=None): diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/chooser_panel.html b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/chooser_panel.html index bf583c1dd..65a627479 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/chooser_panel.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/chooser_panel.html @@ -17,14 +17,14 @@
    {% if not field.field.required %} - + {% endif %} - +
    - +
    diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/page_chooser_panel.html b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/page_chooser_panel.html index fbca951ca..800d40e65 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/page_chooser_panel.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/edit_handlers/page_chooser_panel.html @@ -3,6 +3,3 @@ {% block chosen_state_view %} {{ page.title }} {% endblock %} - -{% block choose_another_button_label %}{{ choose_another_text_str }}{% endblock %} -{% block choose_button_label %}{{ choose_one_text_str }}{% endblock %} diff --git a/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html b/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html index ef155ef9a..26f3196cb 100644 --- a/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html +++ b/wagtail/wagtailadmin/templates/wagtailadmin/pages/copy.html @@ -15,9 +15,7 @@ {% include "wagtailadmin/shared/field_as_li.html" with field=form.new_slug %}
  • - {% trans "Change page" as choose_another_text_str %} - {% trans "Choose page" as choose_one_text_str %} - {% include "wagtailadmin/edit_handlers/page_chooser_panel.html" with field=form.new_parent_page page=parent_page is_chosen=True choose_one_text_str=choose_one_text_str choose_another_text_str=choose_another_text_str only %} + {% include "wagtailadmin/edit_handlers/page_chooser_panel.html" with field=form.new_parent_page page=parent_page is_chosen=True only %}
  • {% if form.copy_subpages %} diff --git a/wagtail/wagtailadmin/widgets.py b/wagtail/wagtailadmin/widgets.py index 3b12b95d2..7bf92a7cd 100644 --- a/wagtail/wagtailadmin/widgets.py +++ b/wagtail/wagtailadmin/widgets.py @@ -5,6 +5,7 @@ import json from django.core.urlresolvers import reverse from django.forms import widgets from django.contrib.contenttypes.models import ContentType +from django.utils.translation import ugettext_lazy as _ from wagtail.utils.widgets import WidgetWithScript from wagtail.wagtailcore.models import Page @@ -36,10 +37,25 @@ class AdminTagWidget(WidgetWithScript, TagWidget): class AdminChooser(WidgetWithScript, widgets.Input): input_type = 'hidden' + choose_one_text = _("Choose an item") + choose_another_text = _("Choose another item") + clear_choice_text = _("Clear choice") + + def __init__(self, **kwargs): + # allow choose_one_text / choose_another_text to be overridden per-instance + if 'choose_one_text' in kwargs: + self.choose_one_text = kwargs.pop('choose_one_text') + if 'choose_another_text' in kwargs: + self.choose_another_text = kwargs.pop('choose_another_text') + if 'clear_choice_text' in kwargs: + self.clear_choice_text = kwargs.pop('clear_choice_text') + super(AdminChooser, self).__init__(**kwargs) class AdminPageChooser(AdminChooser): target_content_type = None + choose_one_text = _('Choose a page') + choose_another_text = _('Choose another page') def __init__(self, content_type=None, **kwargs): super(AdminPageChooser, self).__init__(**kwargs) diff --git a/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html b/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html index cc3f679cc..59dc2ed2a 100644 --- a/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html +++ b/wagtail/wagtaildocs/templates/wagtaildocs/edit_handlers/document_chooser_panel.html @@ -5,7 +5,3 @@ {% block chosen_state_view %} {{ document.title }} {% endblock %} - -{% block clear_button_label %}{% trans "Clear choice" %}{% endblock %} -{% block choose_another_button_label %}{% trans "Choose another document" %}{% endblock %} -{% block choose_button_label %}{% trans "Choose a document" %}{% endblock %} diff --git a/wagtail/wagtaildocs/widgets.py b/wagtail/wagtaildocs/widgets.py index 643cfae66..e5d490f51 100644 --- a/wagtail/wagtaildocs/widgets.py +++ b/wagtail/wagtaildocs/widgets.py @@ -2,9 +2,14 @@ from __future__ import absolute_import, unicode_literals import json +from django.utils.translation import ugettext_lazy as _ + from wagtail.wagtailadmin.widgets import AdminChooser class AdminDocumentChooser(AdminChooser): + choose_one_text = _('Choose a document') + choose_another_text = _('Choose another document') + def render_js_init(self, id_, name, value): return "createDocumentChooser({0});".format(json.dumps(id_)) diff --git a/wagtail/wagtailimages/templates/wagtailimages/edit_handlers/image_chooser_panel.html b/wagtail/wagtailimages/templates/wagtailimages/edit_handlers/image_chooser_panel.html index abae4c905..38df1be80 100644 --- a/wagtail/wagtailimages/templates/wagtailimages/edit_handlers/image_chooser_panel.html +++ b/wagtail/wagtailimages/templates/wagtailimages/edit_handlers/image_chooser_panel.html @@ -13,7 +13,3 @@ {% endif %} {% endblock %} - -{% block clear_button_label %}{% trans "Clear image" %}{% endblock %} -{% block choose_another_button_label %}{% trans "Choose another image" %}{% endblock %} -{% block choose_button_label %}{% trans "Choose an image" %}{% endblock %} diff --git a/wagtail/wagtailimages/widgets.py b/wagtail/wagtailimages/widgets.py index 82b278dc1..4bce83505 100644 --- a/wagtail/wagtailimages/widgets.py +++ b/wagtail/wagtailimages/widgets.py @@ -2,9 +2,15 @@ from __future__ import absolute_import, unicode_literals import json +from django.utils.translation import ugettext_lazy as _ + from wagtail.wagtailadmin.widgets import AdminChooser class AdminImageChooser(AdminChooser): + choose_one_text = _('Choose an image') + choose_another_text = _('Choose another image') + clear_choice_text = _('Clear image') + def render_js_init(self, id_, name, value): return "createImageChooser({0});".format(json.dumps(id_)) diff --git a/wagtail/wagtailsearch/templates/wagtailsearch/editorspicks/includes/editorspicks_form.html b/wagtail/wagtailsearch/templates/wagtailsearch/editorspicks/includes/editorspicks_form.html index aae5fdabe..64fbbd724 100644 --- a/wagtail/wagtailsearch/templates/wagtailsearch/editorspicks/includes/editorspicks_form.html +++ b/wagtail/wagtailsearch/templates/wagtailsearch/editorspicks/includes/editorspicks_form.html @@ -10,12 +10,10 @@ {% trans "Promoted search result" %}