Spec-Zone.ru › Wagtail 2

Блок таблицы

Модуль TableBlock предоставляет тип блока HTML-таблицы для StreamField. Этот модуль использует handsontable 6.2.2, чтобы предоставить пользователям возможность создавать и редактировать HTML-таблицы в Wagtail. Блоки таблиц предоставляют поле для подписи для обеспечения доступности.

../../_images/screen40_table_block.png

Установка

Добавьте "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/v2.16.3/reference/contrib/table_block.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API