diff --git a/wagtail/contrib/table_block/blocks.py b/wagtail/contrib/table_block/blocks.py index 7bda55e3b..5a5d426d5 100644 --- a/wagtail/contrib/table_block/blocks.py +++ b/wagtail/contrib/table_block/blocks.py @@ -6,7 +6,6 @@ from django.utils import translation from django.utils.functional import cached_property from wagtail.core.blocks import FieldBlock -from wagtail.utils.widgets import WidgetWithScript DEFAULT_TABLE_OPTIONS = { 'minSpareRows': 0, @@ -35,22 +34,17 @@ DEFAULT_TABLE_OPTIONS = { } -class TableInput(WidgetWithScript, forms.HiddenInput): +class TableInput(forms.HiddenInput): + template_name = "table_block/widgets/table.html" def __init__(self, table_options=None, attrs=None): self.table_options = table_options super().__init__(attrs=attrs) - def render(self, name, value, attrs=None): - original_field_html = super().render(name, value, attrs) - return render_to_string("table_block/widgets/table.html", { - 'original_field_html': original_field_html, - 'attrs': attrs, - 'value': value, - }) - - def render_js_init(self, id_, name, value): - return "initTable({0}, {1});".format(json.dumps(id_), json.dumps(self.table_options)) + def get_context(self, name, value, attrs=None): + context = super().get_context(name, value, attrs) + context['widget']['table_options_json'] = json.dumps(self.table_options) + return context class TableBlock(FieldBlock): diff --git a/wagtail/contrib/table_block/templates/table_block/widgets/table.html b/wagtail/contrib/table_block/templates/table_block/widgets/table.html index 96b59905e..63eb9ebfc 100644 --- a/wagtail/contrib/table_block/templates/table_block/widgets/table.html +++ b/wagtail/contrib/table_block/templates/table_block/widgets/table.html @@ -1,23 +1,24 @@ {% load i18n %}
- +
- +

{% trans 'Display the first row as a header.' %}


- +
- +

{% trans 'Display the first column as a header.' %}


-
-{{ original_field_html }} +
+{% include 'django/forms/widgets/hidden.html' %} + diff --git a/wagtail/contrib/table_block/tests.py b/wagtail/contrib/table_block/tests.py index b699a943b..62aab13af 100644 --- a/wagtail/contrib/table_block/tests.py +++ b/wagtail/contrib/table_block/tests.py @@ -354,6 +354,6 @@ class TestTableBlockPageEdit(TestCase, WagtailTestUtils): self.assertContains(response, 'Battlestar') self.assertContains(response, 'Galactica') # check init - self.assertContains(response, 'initTable("table-0-value"') + self.assertContains(response, 'initTable("table\\u002D0\\u002Dvalue"') self.assertContains(response, 'minSpareRows') self.assertContains(response, 'startRows')