
Implementation of inline-table-editing blueprint: - Design from jcoufal is implemented with Bootstrap elements. - Inline edit mode implemented, Django Form Field connected to table logic, using Django Form Widget to render. Table Cell can be updated and refreshed. - Allowed method implemented for checking of cell edit permissions - Validation process is taken from Django Form Field logic, so validation is defined as part of Django Form Field defined in table Column. - Update method of the cell is defined as Table Action. For obtaining row data, UpdateRow functionality is used. - Horizon Tests for inline editing implemented. - Selenium Tests for inline editing of tenants implemented - Documentation written in both ref and topics Change-Id: Ib29b58da71d3a8abc9688bc942fe49917161e97a Implements: blueprint inline-table-editing
1.8 KiB
Horizon DataTables
horizon.tables
Horizon includes a componentized API for programmatically creating tables in the UI. Why would you want this? It means that every table renders correctly and consistently, table- and row-level actions all have a consistent API and appearance, and generally you don't have to reinvent the wheel or copy-and-paste every time you need a new table!
For usage information, tips & tricks and more examples check out the
DataTables Topic Guide </topics/tables>
.
DataTable
The core class which defines the high-level structure of the table being represented. Example:
class MyTable(DataTable):
name = Column('name')
email = Column('email')
class Meta:
name = "my_table"
table_actions = (MyAction, MyOtherAction)
row_actions - (MyAction)
A full reference is included below:
DataTable
DataTable Options
The following options can be defined in a Meta
class
inside a .DataTable
class. Example:
class MyTable(DataTable):
class Meta:
name = "my_table"
verbose_name = "My Table"
horizon.tables.base.DataTableOptions
Table Components
Column
Row
Actions
Action
LinkAction
FilterAction
BatchAction
DeleteAction
UpdateAction
Class-Based Views
Several class-based views are provided to make working with DataTables easier in your UI.
DataTableView
MultiTableView