Insert chooser widget telepath definition onto template

pull/9445/head
Matt Westcott 2023-01-12 01:56:04 +00:00
rodzic 49c2c70a22
commit a7318bf70b
2 zmienionych plików z 17 dodań i 0 usunięć

Wyświetl plik

@ -1,5 +1,7 @@
from django.core.exceptions import ImproperlyConfigured
from wagtail.telepath import JSContext
from .inline_panel import InlinePanel
@ -26,8 +28,19 @@ class MultipleChooserPanel(InlinePanel):
self.chooser_widget = self.formset.empty_form.fields[
self.panel.chooser_field_name
].widget
self.js_context = JSContext()
self.chooser_widget_telepath_definition = self.js_context.pack(
self.chooser_widget
)
def get_context_data(self, parent_context=None):
context = super().get_context_data(parent_context)
context["chooser_field_name"] = self.panel.chooser_field_name
context[
"chooser_widget_definition"
] = self.chooser_widget_telepath_definition
return context
@property
def media(self):
return super().media + self.js_context.media

Wyświetl plik

@ -8,6 +8,10 @@
{% endblock %}
{% block js_init %}
{% with script_id="id_"|add:self.formset.prefix|add:"-CHOOSER_WIDGET" %}
{{ chooser_widget_definition|json_script:script_id }}
{% endwith %}
<script>
(function() {
var panel = new InlinePanel({