Блок таблицы
Модуль TableBlock предоставляет тип блока HTML-таблицы для StreamField. Этот модуль использует handsontable 6.2.2 для предоставления пользователям возможности создания и редактирования HTML-таблиц в Wagtail. Блоки таблиц предоставляют поле подписи для обеспечения доступности.
Установка
Добавьте "wagtail.contrib.table_block" в ваш INSTALLED_APPS:
INSTALLED_APPS = [ ... "wagtail.contrib.table_block", ]
Базовое использование
После установки модуль TableBlock может использоваться аналогично другим блокам StreamField в ядре Wagtail.
Импортируйте блок TableBlock from wagtail.contrib.table_block.blocks import TableBlock и добавьте его в объявление вашего StreamField.
class DemoStreamBlock(StreamBlock):
...
table = TableBlock()
Затем, в шаблоне вашей страницы, тег {% include_block %} (вызываемый либо на отдельном блоке, либо на значении StreamField в целом) будет отображать все встречающиеся блоки таблиц в виде HTML-элемента <table>:
{% load wagtailcore_tags %}
{% include_block page.body %}
Или:
{% load wagtailcore_tags %}
{% for block in page.body %}
{% if block.block_type == 'table' %}
{% include_block block %}
{% else %}
{# rendering for other block types #}
{% endif %}
{% endfor %}
Расширенное использование
Настройка по умолчанию
При определении блока TableBlock Wagtail предоставляет возможность передать необязательный table_options словарь. Словарь TableBlock по умолчанию выглядит следующим образом:
default_table_options = {
'minSpareRows': 0,
'startRows': 3,
'startCols': 3,
'colHeaders': False,
'rowHeaders': False,
'contextMenu': [
'row_above',
'row_below',
'---------',
'col_left',
'col_right',
'---------',
'remove_row',
'remove_col',
'---------',
'undo',
'redo'
],
'editor': 'text',
'stretchH': 'all',
'height': 108,
'language': language,
'renderer': 'text',
'autoColumnSize': False,
}
Параметры настройки
Каждый ключ в table_options словаре соответствует опции handsontable. Эти параметры могут быть изменены для изменения поведения таблиц в Wagtail. Доступны следующие параметры:
- minSpareRows - Количество строк, добавляемых в конец пустой сетки. Значение по умолчанию равно 0.
- startRows - Стандартное количество строк для новой таблицы.
- startCols - Стандартное количество столбцов для новых таблиц.
-
colHeaders - Может быть установлен в
TrueилиFalse. Этот параметр определяет, должны ли новые таблицы создаваться со столбцами заголовков. Примечание: это только устанавливает поведение для вновь созданных таблиц. Редакторы страниц могут переопределить это, установив флажок «Заголовок столбца» в редакторе таблицы в административной панели Wagtail. -
rowHeaders - Действует аналогично
colHeadersдля определения, должны ли новые таблицы создаваться с первым столбцом в качестве заголовка строки. Также, как иcolHeaders, этот параметр может быть переопределен редактором страницы в административной панели Wagtail. -
contextMenu - Включает или отключает контекстное меню Handsontable. По умолчанию установлен в
True. В качестве альтернативы, можно предоставить список или словарь со [специфическими параметрами](https://handsontable.com/docs/6.2.2/demo-context-menu.html#page-specific). - editor - Определяет редактор, используемый для ячеек таблицы. Значение по умолчанию — текст.
- stretchH - Устанавливает стандартное горизонтальное изменение размера таблиц. Доступны значения «none», «last» и «all». По умолчанию TableBlock использует «all» для равномерного изменения размера столбцов.
-
height - Стандартная высота сетки. По умолчанию TableBlock устанавливает высоту в
108для оптимального отображения новых таблиц в редакторе. Это оптимизировано для таблиц сstartRowsустановленным в3. Если вы измените количествоstartRowsв настройках, возможно, вам потребуется изменить значениеheightдля улучшения стандартного отображения в редакторе. -
language - Стандартное значение языка. По умолчанию TableBlock пытается получить язык из
django.utils.translation.get_language. При необходимости это значение можно переопределить здесь. - renderer - Стандартное значение, используемое Handsontable для отображения содержимого ячеек таблицы.
-
autoColumnSize - Включает или выключает плагин
autoColumnSize. Значение по умолчанию в TableBlock —False.
Полный список параметров handsontable можно найти на сайте Handsontable.
Изменение параметров таблицы по умолчанию
Чтобы изменить параметры таблицы по умолчанию, просто передайте новый словарь table_options при объявлении нового TableBlock.
new_table_options = {
'minSpareRows': 0,
'startRows': 6,
'startCols': 4,
'colHeaders': False,
'rowHeaders': False,
'contextMenu': True,
'editor': 'text',
'stretchH': 'all',
'height': 216,
'language': 'en',
'renderer': 'text',
'autoColumnSize': False,
}
class DemoStreamBlock(StreamBlock):
...
table = TableBlock(table_options=new_table_options)
Поддержка выравнивания ячеек
Вы можете активировать параметр alignment , установив пользовательский contextMenu, который позволяет задать выравнивание при выборе ячейки. HTML-классы, установленные handsontable, будут сохранены в отрисованном блоке. Тогда вы сможете применять свои собственные пользовательские правила CSS для сохранения стиля. Эти имена классов:
- Горизонтальное:
htLeft,htCenter,htRight,htJustify - Вертикальное:
htTop,htMiddle,htBottom
new_table_options = {
'contextMenu': [
'row_above',
'row_below',
'---------',
'col_left',
'col_right',
'---------',
'remove_row',
'remove_col',
'---------',
'undo',
'redo',
'---------',
'copy',
'cut'
'---------',
'alignment',
],
}
class DemoStreamBlock(StreamBlock):
...
table = TableBlock(table_options=new_table_options)
© 2014-present Torchbox Ltd and individual contributors.
All rights are reserved.
Licensed under the BSD License.
https://docs.wagtail.org/en/v3.0.3/reference/contrib/table_block.html