Include media declarations from panels on templates

pull/8294/head
Matt Westcott 2022-03-21 15:17:20 +00:00
rodzic 1b73b033a7
commit 3716e5280b
15 zmienionych plików z 52 dodań i 39 usunięć

Wyświetl plik

@ -9,6 +9,7 @@ from django.contrib.auth import get_user_model
from django.core.exceptions import FieldDoesNotExist, ImproperlyConfigured
from django.core.signals import setting_changed
from django.dispatch import receiver
from django.forms import Media
from django.forms.formsets import DELETION_FIELD_NAME, ORDERING_FIELD_NAME
from django.forms.models import fields_for_model
from django.template.loader import render_to_string
@ -421,6 +422,13 @@ class PanelGroup(Panel):
def is_shown(self):
return any(child.is_shown() for child in self.children)
@property
def media(self):
media = Media()
for item in self.visible_children:
media += item.media
return media
def html_declarations(self):
return mark_safe("".join([c.html_declarations() for c in self.children]))

Wyświetl plik

@ -89,8 +89,7 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ action_menu.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
@ -100,8 +99,7 @@
{% comment %}
Additional js from widgets media. Allows for custom widgets in admin panel.
{% endcomment %}
{{ edit_handler.form.media.js }}
{{ action_menu.media.js }}
{{ media.js }}
{% comment %}
Additional HTML code that edit handlers define through 'html_declarations'. (Technically this isn't JavaScript, but it will generally be data that exists for JavaScript to work with...)

Wyświetl plik

@ -111,8 +111,7 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ action_menu.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
@ -122,8 +121,7 @@
{% comment %}
Additional js from widgets media. Allows for custom widgets in admin panel.
{% endcomment %}
{{ edit_handler.form.media.js }}
{{ action_menu.media.js }}
{{ media.js }}
{% comment %}
Additional HTML code that edit handlers define through 'html_declarations'. (Technically this isn't JavaScript, but it will generally be data that exists for JavaScript to work with...)

Wyświetl plik

@ -7,8 +7,7 @@
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
<link rel="stylesheet" href="{% versioned_static 'wagtailadmin/css/layouts/workflow-edit.css' %}" type="text/css" />
{{ edit_handler.form.media.css }}
{{ pages_formset.media.css }}
{{ media.css }}
{{ view.media.css }}
{% endblock %}
@ -16,8 +15,7 @@
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ pages_formset.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
{{ view.media.js }}

Wyświetl plik

@ -6,8 +6,7 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ pages_formset.media.css }}
{{ media.css }}
{{ view.media.css }}
<link rel="stylesheet" href="{% versioned_static 'wagtailadmin/css/layouts/workflow-edit.css' %}" type="text/css" />
@ -16,8 +15,7 @@
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ pages_formset.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
{{ view.media.js }}

Wyświetl plik

@ -326,21 +326,24 @@ class CreateView(TemplateResponseMixin, ContextMixin, HookResponseMixin, View):
bound_panel = self.edit_handler.get_bound_panel(
request=self.request, instance=self.page, form=self.form
)
action_menu = PageActionMenu(
self.request, view="create", parent_page=self.parent_page
)
context.update(
{
"content_type": self.page_content_type,
"page_class": self.page_class,
"parent_page": self.parent_page,
"edit_handler": bound_panel,
"action_menu": PageActionMenu(
self.request, view="create", parent_page=self.parent_page
),
"action_menu": action_menu,
"preview_modes": self.page.preview_modes,
"form": self.form,
"next": self.next_url,
"has_unsaved_changes": self.has_unsaved_changes,
"locale": None,
"translations": [],
"media": bound_panel.media + self.form.media + action_menu.media,
}
)

Wyświetl plik

@ -866,6 +866,7 @@ class EditView(TemplateResponseMixin, ContextMixin, HookResponseMixin, View):
bound_panel = self.edit_handler.get_bound_panel(
instance=self.page, request=self.request, form=self.form
)
action_menu = PageActionMenu(self.request, view="edit", page=self.page)
context.update(
{
"page": self.page,
@ -873,9 +874,7 @@ class EditView(TemplateResponseMixin, ContextMixin, HookResponseMixin, View):
"content_type": self.page_content_type,
"edit_handler": bound_panel,
"errors_debug": self.errors_debug,
"action_menu": PageActionMenu(
self.request, view="edit", page=self.page
),
"action_menu": action_menu,
"preview_modes": self.page.preview_modes,
"form": self.form,
"next": self.next_url,
@ -889,6 +888,7 @@ class EditView(TemplateResponseMixin, ContextMixin, HookResponseMixin, View):
and getattr(settings, "WAGTAIL_WORKFLOW_CANCEL_ON_PUBLISH", True),
"locale": None,
"translations": [],
"media": bound_panel.media + self.form.media + action_menu.media,
}
)

Wyświetl plik

@ -100,8 +100,11 @@ class Create(CreateView):
bound_panel = self.edit_handler.get_bound_panel(
form=form, instance=form.instance, request=self.request
)
pages_formset = self.get_pages_formset()
context["edit_handler"] = bound_panel
context["pages_formset"] = self.get_pages_formset()
context["pages_formset"] = pages_formset
context["media"] = form.media + bound_panel.media + pages_formset.media
return context
def form_valid(self, form):
@ -181,9 +184,10 @@ class Edit(EditView):
bound_panel = self.edit_handler.get_bound_panel(
form=form, instance=form.instance, request=self.request
)
pages_formset = self.get_pages_formset()
context["edit_handler"] = bound_panel
context["pages"] = self.get_paginated_pages()
context["pages_formset"] = self.get_pages_formset()
context["pages_formset"] = pages_formset
context["can_disable"] = (
self.permission_policy is None
or self.permission_policy.user_has_permission(self.request.user, "delete")
@ -192,6 +196,7 @@ class Edit(EditView):
self.permission_policy is None
or self.permission_policy.user_has_permission(self.request.user, "create")
) and not self.object.active
context["media"] = bound_panel.media + form.media + pages_formset.media
return context
@property

Wyświetl plik

@ -7,19 +7,16 @@
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ view.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
{{ view.media.js }}
{% prepopulated_slugs %}
<script>

Wyświetl plik

@ -212,6 +212,7 @@ class ModelFormView(WMABaseView, FormView):
"edit_handler": bound_panel,
"form": form,
"prepopulated_fields": prepopulated_fields,
"media": self.media + bound_panel.media + form.media,
}
context.update(kwargs)
return super().get_context_data(**context)

Wyświetl plik

@ -50,13 +50,11 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ site_switcher.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
{{ site_switcher.media.js }}
{% endblock %}

Wyświetl plik

@ -96,10 +96,13 @@ def edit(request, app_name, model_name, site_pk):
instance=instance, request=request, form=form
)
media = form.media + edit_handler.media
# Show a site switcher form if there are multiple sites
site_switcher = None
if Site.objects.count() > 1:
site_switcher = SiteSwitchForm(site, model)
media += site_switcher.media
return TemplateResponse(
request,
@ -113,5 +116,6 @@ def edit(request, app_name, model_name, site_pk):
"site": site,
"site_switcher": site_switcher,
"tabbed": isinstance(edit_handler.panel, TabbedInterface),
"media": media,
},
)

Wyświetl plik

@ -27,12 +27,12 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
<script>

Wyświetl plik

@ -44,12 +44,12 @@
{% block extra_css %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_css.html" %}
{{ edit_handler.form.media.css }}
{{ media.css }}
{% endblock %}
{% block extra_js %}
{{ block.super }}
{% include "wagtailadmin/pages/_editor_js.html" %}
{{ edit_handler.form.media.js }}
{{ media.js }}
{{ edit_handler.html_declarations }}
<script>

Wyświetl plik

@ -294,13 +294,16 @@ def create(request, app_label, model_name):
request=request, instance=instance, form=form
)
action_menu = SnippetActionMenu(request, view="create", model=model)
context = {
"model_opts": model._meta,
"edit_handler": edit_handler,
"form": form,
"action_menu": SnippetActionMenu(request, view="create", model=model),
"action_menu": action_menu,
"locale": None,
"translations": [],
"media": edit_handler.media + form.media + action_menu.media,
}
if getattr(settings, "WAGTAIL_I18N_ENABLED", False) and issubclass(
@ -388,16 +391,18 @@ def edit(request, app_label, model_name, pk):
instance=instance, request=request, form=form
)
latest_log_entry = log_registry.get_logs_for_instance(instance).first()
action_menu = SnippetActionMenu(request, view="edit", instance=instance)
context = {
"model_opts": model._meta,
"instance": instance,
"edit_handler": edit_handler,
"form": form,
"action_menu": SnippetActionMenu(request, view="edit", instance=instance),
"action_menu": action_menu,
"locale": None,
"translations": [],
"latest_log_entry": latest_log_entry,
"media": edit_handler.media + form.media + action_menu.media,
}
if getattr(settings, "WAGTAIL_I18N_ENABLED", False) and issubclass(