kopia lustrzana https://github.com/wagtail/wagtail
Add table caption property in table class component
Add support for basic rendering of a screen reader (not visible) only caption element Fixes #11493pull/11402/head
rodzic
e1693ee5db
commit
7f1216e225
|
|
@ -49,6 +49,7 @@ Changelog
|
||||||
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
|
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
|
||||||
* Add the accessibility checker within the page and snippets editor (Thibaud Colas)
|
* Add the accessibility checker within the page and snippets editor (Thibaud Colas)
|
||||||
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
|
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
|
||||||
|
* Add support for `caption` on admin UI Table component (Aman Pandey)
|
||||||
* Fix: Update system check for overwriting storage backends to recognise the `STORAGES` setting introduced in Django 4.2 (phijma-leukeleu)
|
* Fix: Update system check for overwriting storage backends to recognise the `STORAGES` setting introduced in Django 4.2 (phijma-leukeleu)
|
||||||
* Fix: Prevent password change form from raising a validation error when browser autocomplete fills in the "Old password" field (Chiemezuo Akujobi)
|
* Fix: Prevent password change form from raising a validation error when browser autocomplete fills in the "Old password" field (Chiemezuo Akujobi)
|
||||||
* Fix: Ensure that the legacy dropdown options, when closed, do not get accidentally clicked by other interactions wide viewports (CheesyPhoenix, Christer Jensen)
|
* Fix: Ensure that the legacy dropdown options, when closed, do not get accidentally clicked by other interactions wide viewports (CheesyPhoenix, Christer Jensen)
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,7 @@ This feature was implemented by Nick Lee, Thibaud Colas, and Sage Abdullah.
|
||||||
* Polish dark theme styles and update color tokens (Thibaud Colas, Rohit Sharma)
|
* Polish dark theme styles and update color tokens (Thibaud Colas, Rohit Sharma)
|
||||||
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
|
* Keep database state of pages and snippets updated while in draft state (Stefan Hammer)
|
||||||
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
|
* Add `DrilldownController` and `w-drilldown` component to support drilldown menus (Thibaud Colas)
|
||||||
|
* Add support for `caption` on admin UI Table component (Aman Pandey)
|
||||||
|
|
||||||
|
|
||||||
### Bug fixes
|
### Bug fixes
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,11 @@
|
||||||
{% load wagtailadmin_tags %}
|
{% load wagtailadmin_tags %}
|
||||||
|
|
||||||
<table{% include "wagtailadmin/shared/attrs.html" with attrs=table.attrs %}>
|
<table{% include "wagtailadmin/shared/attrs.html" with attrs=table.attrs %}>
|
||||||
|
{% with caption=table.get_caption %}
|
||||||
|
{% if caption %}
|
||||||
|
<caption class="w-sr-only">{{ caption }}</caption>
|
||||||
|
{% endif %}
|
||||||
|
{% endwith %}
|
||||||
{% if table.has_column_widths %}
|
{% if table.has_column_widths %}
|
||||||
{% for column in table.columns.values %}
|
{% for column in table.columns.values %}
|
||||||
<col {% if column.width %}width="{{ column.width }}"{% endif %} />
|
<col {% if column.width %}width="{{ column.width }}"{% endif %} />
|
||||||
|
|
|
||||||
|
|
@ -47,6 +47,40 @@ class TestTable(TestCase):
|
||||||
""",
|
""",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test_table_render_with_caption(self):
|
||||||
|
data = [
|
||||||
|
{"first_name": "Paul", "last_name": "Simon"},
|
||||||
|
{"first_name": "Art", "last_name": "Garfunkel"},
|
||||||
|
]
|
||||||
|
|
||||||
|
caption = "Test table"
|
||||||
|
|
||||||
|
table = Table(
|
||||||
|
columns=[
|
||||||
|
Column("first_name"),
|
||||||
|
Column("last_name"),
|
||||||
|
],
|
||||||
|
data=data,
|
||||||
|
caption=caption,
|
||||||
|
)
|
||||||
|
|
||||||
|
html = self.render_component(table)
|
||||||
|
self.assertHTMLEqual(
|
||||||
|
html,
|
||||||
|
"""
|
||||||
|
<table class="listing">
|
||||||
|
<caption class="w-sr-only">Test table</caption>
|
||||||
|
<thead>
|
||||||
|
<tr><th>First name</th><th>Last name</th></tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td>Paul</td><td>Simon</td></tr>
|
||||||
|
<tr><td>Art</td><td>Garfunkel</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
""",
|
||||||
|
)
|
||||||
|
|
||||||
def test_table_render_with_width(self):
|
def test_table_render_with_width(self):
|
||||||
data = [
|
data = [
|
||||||
{"first_name": "Paul", "last_name": "Simon"},
|
{"first_name": "Paul", "last_name": "Simon"},
|
||||||
|
|
|
||||||
|
|
@ -413,8 +413,10 @@ class Table(Component):
|
||||||
ordering=None,
|
ordering=None,
|
||||||
classname=None,
|
classname=None,
|
||||||
attrs=None,
|
attrs=None,
|
||||||
|
caption=None,
|
||||||
):
|
):
|
||||||
self.columns = OrderedDict([(column.name, column) for column in columns])
|
self.columns = OrderedDict([(column.name, column) for column in columns])
|
||||||
|
self.caption = caption
|
||||||
self.data = data
|
self.data = data
|
||||||
if template_name:
|
if template_name:
|
||||||
self.template_name = template_name
|
self.template_name = template_name
|
||||||
|
|
@ -424,6 +426,9 @@ class Table(Component):
|
||||||
self.classname = classname
|
self.classname = classname
|
||||||
self.base_attrs = attrs or {}
|
self.base_attrs = attrs or {}
|
||||||
|
|
||||||
|
def get_caption(self):
|
||||||
|
return self.caption
|
||||||
|
|
||||||
def get_context_data(self, parent_context):
|
def get_context_data(self, parent_context):
|
||||||
context = super().get_context_data(parent_context)
|
context = super().get_context_data(parent_context)
|
||||||
context["table"] = self
|
context["table"] = self
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue