kopia lustrzana https://github.com/wagtail/wagtail
Move remaining common context variables into BaseChooser
rodzic
80bcc1b3dd
commit
08d06d623e
|
@ -97,6 +97,8 @@ class BaseChooser(widgets.Input):
|
|||
display_title_key = (
|
||||
"title" # key to use for the display title within the value data dict
|
||||
)
|
||||
icon = None
|
||||
classname = None
|
||||
|
||||
# when looping over form fields, this one should appear in visible_fields, not hidden_fields
|
||||
# despite the underlying input being type="hidden"
|
||||
|
@ -140,6 +142,9 @@ class BaseChooser(widgets.Input):
|
|||
self.get_hidden_input_context(name, value, attrs),
|
||||
)
|
||||
|
||||
def get_chooser_modal_url(self):
|
||||
return reverse(self.chooser_modal_url_name)
|
||||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
original_field_html = self.render_hidden_input(
|
||||
name, value_data.get("id"), attrs
|
||||
|
@ -152,6 +157,10 @@ class BaseChooser(widgets.Input):
|
|||
value_data
|
||||
), # only used by chooser.html to identify blank values
|
||||
"edit_url": value_data.get("edit_url", ""),
|
||||
"display_title": value_data.get(self.display_title_key, ""),
|
||||
"chooser_url": self.get_chooser_modal_url(),
|
||||
"icon": self.icon,
|
||||
"classname": self.classname,
|
||||
}
|
||||
|
||||
def render_html(self, name, value_data, attrs):
|
||||
|
@ -225,6 +234,9 @@ class AdminPageChooser(BaseChooser):
|
|||
choose_another_text = _("Choose another page")
|
||||
link_to_chosen_text = _("Edit this page")
|
||||
display_title_key = "display_title"
|
||||
chooser_modal_url_name = "wagtailadmin_choose_page"
|
||||
icon = "doc-empty-inverse"
|
||||
classname = "page-chooser"
|
||||
|
||||
def __init__(
|
||||
self, target_models=None, can_choose_root=False, user_perms=None, **kwargs
|
||||
|
@ -295,18 +307,6 @@ class AdminPageChooser(BaseChooser):
|
|||
data["parent_id"] = parent_page.pk if parent_page else None
|
||||
return data
|
||||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
context = super().get_context(name, value_data, attrs)
|
||||
context.update(
|
||||
{
|
||||
"display_title": value_data.get("display_title", ""),
|
||||
"icon": "doc-empty-inverse",
|
||||
"classname": "page-chooser",
|
||||
"chooser_url": reverse("wagtailadmin_choose_page"),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
def render_js_init(self, id_, name, value_data):
|
||||
value_data = value_data or {}
|
||||
return "createPageChooser({id}, {parent}, {options});".format(
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import json
|
||||
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
from wagtail.admin.staticfiles import versioned_static
|
||||
|
@ -15,17 +14,8 @@ class AdminTaskChooser(BaseChooser):
|
|||
link_to_chosen_text = _("Edit this task")
|
||||
model = Task
|
||||
template_name = "wagtailadmin/workflows/widgets/task_chooser.html"
|
||||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
context = super().get_context(name, value_data, attrs)
|
||||
context.update(
|
||||
{
|
||||
"display_title": value_data.get("title", ""),
|
||||
"classname": "task-chooser",
|
||||
"chooser_url": reverse("wagtailadmin_workflows:task_chooser"),
|
||||
}
|
||||
)
|
||||
return context
|
||||
chooser_modal_url_name = "wagtailadmin_workflows:task_chooser"
|
||||
classname = "task-chooser"
|
||||
|
||||
def render_js_init(self, id_, name, value_data):
|
||||
return "createTaskChooser({0});".format(json.dumps(id_))
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import json
|
||||
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
@ -16,23 +15,14 @@ class AdminDocumentChooser(BaseChooser):
|
|||
choose_one_text = _("Choose a document")
|
||||
choose_another_text = _("Choose another document")
|
||||
link_to_chosen_text = _("Edit this document")
|
||||
chooser_modal_url_name = "wagtaildocs:chooser"
|
||||
icon = "doc-full-inverse"
|
||||
classname = "document-chooser"
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
self.model = get_document_model()
|
||||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
context = super().get_context(name, value_data, attrs)
|
||||
context.update(
|
||||
{
|
||||
"display_title": value_data.get("title", ""),
|
||||
"icon": "doc-full-inverse",
|
||||
"classname": "document-chooser",
|
||||
"chooser_url": reverse("wagtaildocs:chooser"),
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
def render_js_init(self, id_, name, value_data):
|
||||
return "createDocumentChooser({0});".format(json.dumps(id_))
|
||||
|
||||
|
|
|
@ -5,6 +5,6 @@
|
|||
|
||||
{% block chosen_state_view %}
|
||||
<div class="preview-image">
|
||||
<img alt="{{ title }}" class="show-transparency" height="{{ preview.height }}" src="{{ preview.url }}" title="{{ title }}" width="{{ preview.width }}">
|
||||
<img alt="{{ display_title }}" class="show-transparency" height="{{ preview.height }}" src="{{ preview.url }}" title="{{ display_title }}" width="{{ preview.width }}">
|
||||
</div>
|
||||
{% endblock %}
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
import json
|
||||
|
||||
from django import forms
|
||||
from django.urls import reverse
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
|
||||
|
@ -18,6 +17,9 @@ class AdminImageChooser(BaseChooser):
|
|||
choose_another_text = _("Change image")
|
||||
link_to_chosen_text = _("Edit this image")
|
||||
template_name = "wagtailimages/widgets/image_chooser.html"
|
||||
chooser_modal_url_name = "wagtailimages:chooser"
|
||||
icon = "image"
|
||||
classname = "image-chooser"
|
||||
|
||||
def __init__(self, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
@ -35,15 +37,7 @@ class AdminImageChooser(BaseChooser):
|
|||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
context = super().get_context(name, value_data, attrs)
|
||||
context.update(
|
||||
{
|
||||
"title": value_data.get("title", ""),
|
||||
"preview": value_data.get("preview", {}),
|
||||
"icon": "image",
|
||||
"classname": "image-chooser",
|
||||
"chooser_url": reverse("wagtailimages:chooser"),
|
||||
}
|
||||
)
|
||||
context["preview"] = value_data.get("preview", {})
|
||||
return context
|
||||
|
||||
def render_js_init(self, id_, name, value_data):
|
||||
|
|
|
@ -14,6 +14,8 @@ from wagtail.widget_adapters import WidgetAdapter
|
|||
|
||||
class AdminSnippetChooser(BaseChooser):
|
||||
display_title_key = "string"
|
||||
icon = "snippet"
|
||||
classname = "snippet-chooser"
|
||||
|
||||
def __init__(self, model, **kwargs):
|
||||
self.model = model
|
||||
|
@ -24,10 +26,8 @@ class AdminSnippetChooser(BaseChooser):
|
|||
|
||||
super().__init__(**kwargs)
|
||||
|
||||
def get_context(self, name, value_data, attrs):
|
||||
context = super().get_context(name, value_data, attrs)
|
||||
|
||||
chooser_url = reverse(
|
||||
def get_chooser_modal_url(self):
|
||||
return reverse(
|
||||
"wagtailsnippets:choose",
|
||||
args=[
|
||||
self.model._meta.app_label,
|
||||
|
@ -35,16 +35,6 @@ class AdminSnippetChooser(BaseChooser):
|
|||
],
|
||||
)
|
||||
|
||||
context.update(
|
||||
{
|
||||
"display_title": value_data.get("string", ""),
|
||||
"chooser_url": chooser_url,
|
||||
"icon": "snippet",
|
||||
"classname": "snippet-chooser",
|
||||
}
|
||||
)
|
||||
return context
|
||||
|
||||
def render_js_init(self, id_, name, value_data):
|
||||
return "createSnippetChooser({id});".format(id=json.dumps(id_))
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue