Таблица блока
Модуль 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 admin. -
rowHeaders - Работает аналогично
colHeaders, чтобы указать, должны ли создаваться новые таблицы с первым столбцом в качестве заголовка строки. Как иcolHeaders, этот параметр может быть переопределён редактором страницы в Wagtail admin. -
contextMenu - Включает или отключает контекстное меню Handsontable. По умолчанию установлено на
True. В качестве альтернативы можно указать список или словарь со конкретными параметрами. - 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/stable/reference/contrib/table_block.html