[IMP] reference/user_interface: rework kanban documentation
Following the new kanban API with `card` template. Task~3992107 closes odoo/documentation#11081 Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
This commit is contained in:
parent
78225635f4
commit
5765edca11
@ -1306,9 +1306,25 @@ Reference (`reference`)
|
|||||||
- `model_field`: name of an `ir.model` containing the model of the records that can be selected.
|
- `model_field`: name of an `ir.model` containing the model of the records that can be selected.
|
||||||
When this option is set, the select part of the `reference` field isn't displayed.
|
When this option is set, the select part of the `reference` field isn't displayed.
|
||||||
|
|
||||||
|
.. _reference/javascript_reference/view_widgets:
|
||||||
|
|
||||||
Widgets
|
Widgets
|
||||||
-------
|
-------
|
||||||
|
|
||||||
|
Ribbon (`web_ribbon`)
|
||||||
|
This widget displays a ribbon at the top right corner of the kanban card or the form view sheet,
|
||||||
|
for instance, to indicate archived records.
|
||||||
|
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger"/>
|
||||||
|
|
||||||
|
Attributes:
|
||||||
|
|
||||||
|
- `title`: text displayed in the ribbon.
|
||||||
|
- `tooltip`: text displayed in the ribbon's tooltip.
|
||||||
|
- `bg-class`: classname to set on the ribbon, typically to define the ribbon's color.
|
||||||
|
|
||||||
Week Days (`week_days`)
|
Week Days (`week_days`)
|
||||||
This widget displays a list of checkboxes for week days, 1 checkbox for each day
|
This widget displays a list of checkboxes for week days, 1 checkbox for each day
|
||||||
and allow the user to select a subset of the choices.
|
and allow the user to select a subset of the choices.
|
||||||
|
@ -171,8 +171,6 @@ The `field` element can have the following attributes:
|
|||||||
:type: str
|
:type: str
|
||||||
:default: `''`
|
:default: `''`
|
||||||
|
|
||||||
.. include:: view_architectures/field_attribute_widget.rst
|
|
||||||
|
|
||||||
.. attribute:: options
|
.. attribute:: options
|
||||||
:noindex:
|
:noindex:
|
||||||
|
|
||||||
@ -1402,8 +1400,6 @@ The `field` element can have the following attributes:
|
|||||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||||
:default: `False`
|
:default: `False`
|
||||||
|
|
||||||
.. include:: view_architectures/field_attribute_widget.rst
|
|
||||||
|
|
||||||
.. attribute:: sum, avg
|
.. attribute:: sum, avg
|
||||||
:noindex:
|
:noindex:
|
||||||
|
|
||||||
@ -2338,10 +2334,9 @@ A numeric value (between 1 and 99) can be used to define the order of default *g
|
|||||||
Kanban
|
Kanban
|
||||||
======
|
======
|
||||||
|
|
||||||
Kanban views are a used as a `kanban board <https://en.wikipedia.org/wiki/Kanban_board>`_
|
Kanban views are used as a `kanban board <https://en.wikipedia.org/wiki/Kanban_board>`_
|
||||||
visualisation: they display records as "cards", halfway between a :ref:`list
|
visualisation: they display records as "cards", halfway between a :ref:`list
|
||||||
<reference/view_architectures/list>` view and a non-editable :ref:`form
|
<reference/view_architectures/list>` and a :ref:`form <reference/view_architectures/form>` view.
|
||||||
<reference/view_architectures/form>` view.
|
|
||||||
|
|
||||||
Records may be grouped in columns for use in workflow visualisation or manipulation (e.g., tasks or
|
Records may be grouped in columns for use in workflow visualisation or manipulation (e.g., tasks or
|
||||||
work-progress management), or ungrouped (used simply to visualize records).
|
work-progress management), or ungrouped (used simply to visualize records).
|
||||||
@ -2520,53 +2515,295 @@ Optional attributes can be added to the root element `kanban` to customize the v
|
|||||||
Components
|
Components
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Kanban views accept the following children elements: :ref:`field
|
Kanban views accept the following children elements: :ref:`templates
|
||||||
|
<reference/view_architectures/kanban/templates>`, :ref:`field
|
||||||
<reference/view_architectures/kanban/field>`, :ref:`header
|
<reference/view_architectures/kanban/field>`, :ref:`header
|
||||||
<reference/view_architectures/kanban/header>`, :ref:`progressbar
|
<reference/view_architectures/kanban/header>`, :ref:`progressbar
|
||||||
<reference/view_architectures/kanban/progressbar>`, and :ref:`templates
|
<reference/view_architectures/kanban/progressbar>`.
|
||||||
<reference/view_architectures/kanban/templates>`.
|
|
||||||
|
|
||||||
Placeholders are denoted in all caps.
|
.. _reference/view_architectures/kanban/templates:
|
||||||
|
|
||||||
.. _reference/view_architectures/kanban/field:
|
`templates`: define cards structure
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
`field`: display field values
|
The `templates` element is used to define the :ref:`QWeb templates <reference/qweb>` that structure
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
the kanban cards.
|
||||||
|
|
||||||
The `field` element declares fields to use in the :ref:`templates
|
The definition of a card's structure can be split into multiple templates for clarity, but at least
|
||||||
<reference/view_architectures/kanban/templates>`. If the field is simply displayed, it does not need
|
one root `card` template must be defined.
|
||||||
to be pre-declared.
|
|
||||||
|
An additional template can be defined: `menu`. If defined, it is rendered inside a dropdown
|
||||||
|
that can be toggled with a vertical ellipsis (:guilabel:`⋮`) on the top right of the card.
|
||||||
|
|
||||||
|
The templates are written in :ref:`JavaScript QWeb <reference/qweb/javascript>`.
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<kanban>
|
<kanban>
|
||||||
<field name="FIELD_NAME"/>
|
<templates>
|
||||||
...
|
<t t-name="card">
|
||||||
|
<field name="name"/>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
</kanban>
|
</kanban>
|
||||||
|
|
||||||
The `field` element can have the following attributes:
|
.. warning::
|
||||||
|
|
||||||
|
These are QWeb templates, not `Owl <https://github.com/odoo/owl>`_ templates, meaning that
|
||||||
|
directives like `t-on-click` aren't available.
|
||||||
|
|
||||||
|
Fields
|
||||||
|
******
|
||||||
|
|
||||||
|
Inside those templates, the `field` element allows to render a field. It can have the following
|
||||||
|
attributes:
|
||||||
|
|
||||||
.. include:: view_architectures/field_attribute_name.rst
|
.. include:: view_architectures/field_attribute_name.rst
|
||||||
|
|
||||||
.. admonition:: Possible structure and representation of its rendering
|
By default, field nodes are replaced by a `span` containing their formatted value, unless the
|
||||||
|
`widget` attribute is specified, in which case their rendering and behavior depends on the
|
||||||
|
corresponding widget. The `widget` attribute can have different values including:
|
||||||
|
|
||||||
.. list-table::
|
.. attribute:: handle
|
||||||
:class: o-showcase-table
|
:noindex:
|
||||||
|
|
||||||
* - .. image:: view_architectures/kanban_field.svg
|
Allows reordering records with a drag and drop, using the corresponding field as order.
|
||||||
:align: center
|
|
||||||
|
|
||||||
* - .. code-block:: xml
|
.. attribute:: kanban_color_picker
|
||||||
|
:noindex:
|
||||||
|
|
||||||
<kanban>
|
Allows editing a color (integer) field. Combined with the root attribute `highlight_color`,
|
||||||
<templates>
|
allows editing the color of the cards.
|
||||||
<t t-name="kanban-box">
|
|
||||||
<div>
|
See the :ref:`Field section <reference/js/widgets>` to discover
|
||||||
<field name="name"/>
|
various widgets and their options.
|
||||||
</div>
|
|
||||||
</t>
|
Rendering Context
|
||||||
</templates>
|
*****************
|
||||||
</kanban>
|
|
||||||
|
Kanban templates being rendered with the :ref:`QWeb engine <reference/qweb/javascript>`, they have
|
||||||
|
a *rendering context*, a set of variables available in the templates, containing useful information
|
||||||
|
and tools. Here're the available variables:
|
||||||
|
|
||||||
|
.. attribute:: record
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
An object with all the fields defined in the view. Each field has two attributes: `value`
|
||||||
|
and `raw_value`. The former is formatted according to current user parameters, while the latter
|
||||||
|
is the raw value (e.g. the `id` for a many2one field). This object is useful for instance, for
|
||||||
|
using field values inside `t-if` conditions. For display purposes, we recommend using the
|
||||||
|
`<field>` tag.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<field name="is_company"/>
|
||||||
|
<t t-name="card">
|
||||||
|
<field name="name"/>
|
||||||
|
<field t-if="!record.is_company.raw_value" name="parent_id">
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
.. attribute:: widget
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
An object with 2 keys defining the available actions for the user:
|
||||||
|
|
||||||
|
- `editable`: true if the user can edit records, false otherwise;
|
||||||
|
- `deletable`: true if the user can delete records, false otherwise.
|
||||||
|
|
||||||
|
This is useful to conditionally display elements requiring specific access rights.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<t t-name="card">
|
||||||
|
<field name="name"/>
|
||||||
|
</t>
|
||||||
|
<t t-name="menu">
|
||||||
|
<a t-if="widget.deletable" role="menuitem" type="delete" class="dropdown-item">Delete</a>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
.. attribute:: context
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
The current context propagated from either the action that opens the kanban view, or the one2many
|
||||||
|
or many2many field that embeds the kanban view in a form view.
|
||||||
|
|
||||||
|
.. attribute:: read_only_mode
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Indicates that the view is readonly.
|
||||||
|
|
||||||
|
:type: bool
|
||||||
|
|
||||||
|
.. attribute:: selection_mode
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Whether the kanban view is opened when selecting a many2one or many2many field (in mobile
|
||||||
|
environment).
|
||||||
|
|
||||||
|
:type: bool
|
||||||
|
|
||||||
|
.. attribute:: luxon
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
The `luxon <https://moment.github.io/luxon/api-docs/index.html>`_ object, allowing to
|
||||||
|
manipulate date and datetime field values.
|
||||||
|
|
||||||
|
.. attribute:: JSON
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
The Javascript `JSON <https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/JSON>`_
|
||||||
|
namespace object containing a `parse` method allowing to parse json field values into Javascript
|
||||||
|
Objects.
|
||||||
|
|
||||||
|
Buttons and links
|
||||||
|
*****************
|
||||||
|
|
||||||
|
While most of the kanban templates are standard :ref:`QWeb templates <reference/qweb>`, the kanban
|
||||||
|
view processes `button` and `a` elements is a special way. Buttons and links with a `type` attribute
|
||||||
|
perform different operations than their standard HTML function. The `type` attribute can have the
|
||||||
|
values `action` and `object` of :ref:`regular buttons <reference/view_architectures/list/button>`,
|
||||||
|
or the following values:
|
||||||
|
|
||||||
|
.. attribute:: open
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Clicking the element opens the card's record in form view.
|
||||||
|
|
||||||
|
.. attribute:: delete
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Clicking the element deletes the card's record and removes the card.
|
||||||
|
|
||||||
|
.. attribute:: archive
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Clicking the element archives the card's record and removes the card.
|
||||||
|
|
||||||
|
.. attribute:: unarchive
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Clicking the element unarchives the card's record and removes the card.
|
||||||
|
|
||||||
|
.. attribute:: set_cover
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
Clicking the element allows to select an image to set as cover image of the record.
|
||||||
|
|
||||||
|
Widgets
|
||||||
|
*******
|
||||||
|
|
||||||
|
The `widget` element allows to insert dynamically generated (in Javascript) html inside the cards. It
|
||||||
|
has a mandatory `name` attribute, referring to a Javascript implementation (an Owl component)
|
||||||
|
registered to the `view_widgets` registry.
|
||||||
|
|
||||||
|
.. todo: document view_widgets registry and standard widgets
|
||||||
|
|
||||||
|
See the :ref:`Widget section <reference/javascript_reference/view_widgets>` to discover various
|
||||||
|
widgets and their options.
|
||||||
|
|
||||||
|
Layouts
|
||||||
|
*******
|
||||||
|
|
||||||
|
Several card layouts can be easily obtained using standard html elements and `Bootstrap utility
|
||||||
|
classes <https://getbootstrap.com/docs/5.0/utilities/api/>`_. By default, the card is a `flexbox
|
||||||
|
container <https://developer.mozilla.org/en-US/docs/Web/CSS/CSS_flexible_box_layout/Basic_concepts_of_flexbox>`_
|
||||||
|
with `column` direction.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<t t-name="card">
|
||||||
|
<field class="fw-bold fs-5" name="display_name"/>
|
||||||
|
<field class="text-muted" name="parent_id"/>
|
||||||
|
<field name="tag_ids" widget="many2many_tags"/>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
The `footer` html element is styled to stick to the bottom of the card, and is as a flexbox
|
||||||
|
container with `row` direction, allowing to easily display several fields on the same line.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<t t-name="card">
|
||||||
|
<field class="fw-bold fs-5" name="display_name"/>
|
||||||
|
<field class="text-muted" name="parent_id"/>
|
||||||
|
<field name="tag_ids" widget="many2many_tags"/>
|
||||||
|
<footer>
|
||||||
|
<field name="priority" widget="priority"/> <!-- bottom left corner -->
|
||||||
|
<field class="ms-auto" name="activity_ids" widget="kanban_activity"/> <!-- bottom right corner -->
|
||||||
|
</footer>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
To display some content, like an image, on the side of the card, one can use `aside` and `main` html
|
||||||
|
elements, with the `flex-row` classname on the card. The `main` node is a flexbox container like the
|
||||||
|
card is when there's no `aside`.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<t t-name="card" class="flex-row">
|
||||||
|
<aside>
|
||||||
|
<field name="avatar_128" widget="image" alt="Avatar"/>
|
||||||
|
</aside>
|
||||||
|
<main class="ms-2">
|
||||||
|
<field class="fw-bold fs-5" name="display_name"/>
|
||||||
|
<field class="text-muted" name="parent_id"/>
|
||||||
|
<field name="tag_ids" widget="many2many_tags"/>
|
||||||
|
<footer>
|
||||||
|
<field name="priority" widget="priority"/>
|
||||||
|
<field class="ms-auto" name="activity_ids" widget="kanban_activity"/>
|
||||||
|
</footer>
|
||||||
|
</main>
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
|
.. tip::
|
||||||
|
The classname `o_kanban_aside_full` set on the `aside` element removes the padding so that the
|
||||||
|
image spreads to the borders of the card.
|
||||||
|
|
||||||
|
.. _reference/view_architectures/kanban/field:
|
||||||
|
|
||||||
|
`field`: declare more fields to fetch
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
The `field` element can also be used *outside* the kanban :ref:`templates
|
||||||
|
<reference/view_architectures/kanban/templates>`. In that case, it allows to declare fields that are
|
||||||
|
not displayed in the card, but still need to be fetched, for instance because their value is used
|
||||||
|
in a `t-if` condition.
|
||||||
|
|
||||||
|
.. example::
|
||||||
|
.. code-block:: xml
|
||||||
|
|
||||||
|
<kanban>
|
||||||
|
<templates>
|
||||||
|
<field name="is_company"/>
|
||||||
|
<t t-name="card">
|
||||||
|
<field name="name"/>
|
||||||
|
<field t-if="!record.is_company.raw_value" name="parent_id">
|
||||||
|
</t>
|
||||||
|
</templates>
|
||||||
|
</kanban>
|
||||||
|
|
||||||
.. _reference/view_architectures/kanban/header:
|
.. _reference/view_architectures/kanban/header:
|
||||||
|
|
||||||
@ -2578,10 +2815,10 @@ The `header` element is used to insert custom buttons in the control panel.
|
|||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<kanban>
|
<kanban>
|
||||||
<header>
|
<header>
|
||||||
<BUTTONS/>
|
...
|
||||||
</header>
|
</header>
|
||||||
...
|
...
|
||||||
</kanban>
|
</kanban>
|
||||||
|
|
||||||
The `header` element accepts only `button` children elements, similar to :ref:`list views' button
|
The `header` element accepts only `button` children elements, similar to :ref:`list views' button
|
||||||
@ -2628,7 +2865,8 @@ additional attributes:
|
|||||||
`progressbar`: show progress bars on top of columns
|
`progressbar`: show progress bars on top of columns
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
The `progressbar` element is used to define a progress bar to display on top of kanban columns.
|
The `progressbar` element is used to define a progress bar to display on top of kanban columns in
|
||||||
|
grouped kanban views.
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
@ -2687,111 +2925,6 @@ The `progressbar` element can have the following attributes:
|
|||||||
</templates>
|
</templates>
|
||||||
</kanban>
|
</kanban>
|
||||||
|
|
||||||
.. _reference/view_architectures/kanban/templates:
|
|
||||||
|
|
||||||
`templates`: define cards structure
|
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
The `templates` elements is used to define the :ref:`QWeb templates <reference/qweb>` that structure
|
|
||||||
the kanban cards.
|
|
||||||
|
|
||||||
Cards structure definition can be split into multiple templates for clarity, but at least one root
|
|
||||||
template `kanban-box` must be defined.
|
|
||||||
|
|
||||||
An additional template can be defined: `kanban-menu`. If defined, it is rendered inside a dropdown
|
|
||||||
that can be toggled with a vertical ellipsis (:guilabel:`⋮`) on the top right of the card.
|
|
||||||
|
|
||||||
The templates are written in :ref:`JavaScript QWeb <reference/qweb/javascript>`
|
|
||||||
|
|
||||||
.. code-block:: xml
|
|
||||||
|
|
||||||
<kanban>
|
|
||||||
...
|
|
||||||
<templates>
|
|
||||||
<t t-name="kanban-box">
|
|
||||||
<div>
|
|
||||||
<field name="name"/>
|
|
||||||
</div>
|
|
||||||
</t>
|
|
||||||
</templates>
|
|
||||||
</kanban>
|
|
||||||
|
|
||||||
The following variables are available in the rendering context:
|
|
||||||
|
|
||||||
.. attribute:: widget
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
The current :js:class:`KanbanRecord`. It can be used to fetch some meta-information. The methods
|
|
||||||
are also available directly in the template context and don't need to be accessed via `widget`.
|
|
||||||
|
|
||||||
:type: str
|
|
||||||
|
|
||||||
.. attribute:: record
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
An object with all the requested fields as its attributes. Each field has two attributes: `value`
|
|
||||||
and `raw_value`. The former is formatted according to current user parameters while the latter is
|
|
||||||
the raw value from a :meth:`~odoo.models.Model.read` (except for the `date` and `datetime` fields
|
|
||||||
that are `formatted according to the user locale <https://github.com/odoo/odoo/blob/a678bd4e
|
|
||||||
/addons/web_kanban/static/src/js/kanban_record.js#L102>`_).
|
|
||||||
|
|
||||||
:type: str
|
|
||||||
|
|
||||||
.. attribute:: context
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
The current context propagated from either the action that opens the kanban view, or the one2many
|
|
||||||
or many2many field that embeds the kanban view in a form view.
|
|
||||||
|
|
||||||
:type: str
|
|
||||||
|
|
||||||
.. attribute:: read_only_mode
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
:type: str
|
|
||||||
|
|
||||||
.. attribute:: selection_mode
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
Whether the kanban view is opened when selecting a many2one or many2many field in mobile
|
|
||||||
environment.
|
|
||||||
|
|
||||||
:type: bool
|
|
||||||
|
|
||||||
While most of the kanban templates are standard :ref:`QWeb templates <reference/qweb>`, the kanban
|
|
||||||
view processes `field`, `button` and `a` elements is a special way:
|
|
||||||
|
|
||||||
- By default, fields are replaced by their formatted value, unless the `widget` attribute is
|
|
||||||
specified, in which case their rendering and behavior depends on the corresponding widget. The
|
|
||||||
`widget` attribute can have different values including:
|
|
||||||
|
|
||||||
.. attribute:: handle
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
Allow reordering records with a drag and drop when their are sorted based on `sequence` (or
|
|
||||||
`integer`) fields.
|
|
||||||
|
|
||||||
.. todo:: list all widgets and move the attribute definition in the <field> section
|
|
||||||
|
|
||||||
- Buttons and links with a `type` attribute perform different operations than their standard HTML
|
|
||||||
function. The `type` attribute can have the values `action` and `object` of :ref:`regular buttons
|
|
||||||
<reference/view_architectures/list/button>`, or the following values:
|
|
||||||
|
|
||||||
.. attribute:: open
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
Clicking the element opens the card's record in form view in read-only mode.
|
|
||||||
|
|
||||||
.. attribute:: edit
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
Clicking the element opens the card's record in form view in editable mode.
|
|
||||||
|
|
||||||
.. attribute:: delete
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
Clicking the element deletes the card's record and removes the card.
|
|
||||||
|
|
||||||
.. todo::
|
.. todo::
|
||||||
- kanban-specific CSS
|
- kanban-specific CSS
|
||||||
- kanban structures/widgets (vignette, details, ...)
|
- kanban structures/widgets (vignette, details, ...)
|
||||||
|
@ -5,3 +5,13 @@
|
|||||||
|
|
||||||
:requirement: Mandatory
|
:requirement: Mandatory
|
||||||
:type: str
|
:type: str
|
||||||
|
|
||||||
|
.. attribute:: widget
|
||||||
|
:noindex:
|
||||||
|
|
||||||
|
The widget used to represent the field. The selected widget can change the way the field is
|
||||||
|
rendered and/or the way it can be edited. It refers to a Javascript implementation (an Owl
|
||||||
|
component) registered to the `fields` registry.
|
||||||
|
|
||||||
|
:requirement: Optional
|
||||||
|
:type: str
|
||||||
|
@ -1,21 +0,0 @@
|
|||||||
.. attribute:: widget
|
|
||||||
:noindex:
|
|
||||||
|
|
||||||
The rendering method and context to use in place of the default one assigned to the field's type
|
|
||||||
(e.g., :class:`~odoo.fields.Char`, :class:`~odoo.fields.Many2one`). See
|
|
||||||
:ref:`reference/js/widgets`.
|
|
||||||
|
|
||||||
.. example::
|
|
||||||
.. code-block:: xml
|
|
||||||
|
|
||||||
<form>
|
|
||||||
<field name="tag_ids" widget="many2many_tags"/>
|
|
||||||
</form>
|
|
||||||
<list>
|
|
||||||
<field name="sequence" widget="handle"/>
|
|
||||||
<field name="level_progress" widget="progressbar"/>
|
|
||||||
</list>
|
|
||||||
|
|
||||||
:requirement: Optional
|
|
||||||
:type: str
|
|
||||||
:default: `''`
|
|
Loading…
Reference in New Issue
Block a user