[IMP] all: replace <tree> in <list>
Remove historical error from semantically incorrect <tree>. Viewtiverse task-3599136 task-27709 task-3414068 closes odoo/documentation#8446 Related: odoo/odoo#159909 Related: odoo/enterprise#59787 Related: odoo/upgrade#5884 Signed-off-by: Christophe Matthieu (chm) <chm@odoo.com>
This commit is contained in:
parent
ea7fd9b847
commit
f8a114b334
@ -263,10 +263,10 @@ To declare a record in XML, the **record** notation (using *<record>*) is recomm
|
|||||||
<field name="model">object_name</field>
|
<field name="model">object_name</field>
|
||||||
<field name="priority" eval="16"/>
|
<field name="priority" eval="16"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree>
|
<list>
|
||||||
<field name="my_field_1"/>
|
<field name="my_field_1"/>
|
||||||
<field name="my_field_2" string="My Label" widget="statusbar" statusbar_visible="draft,sent,progress,done" />
|
<field name="my_field_2" string="My Label" widget="statusbar" statusbar_visible="draft,sent,progress,done" />
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ Use the following pattern :
|
|||||||
|
|
||||||
* For a menu: :samp:`{<model_name>}_menu`, or :samp:`{<model_name>}_menu_{do_stuff}` for submenus.
|
* For a menu: :samp:`{<model_name>}_menu`, or :samp:`{<model_name>}_menu_{do_stuff}` for submenus.
|
||||||
* For a view: :samp:`{<model_name>}_view_{<view_type>}`, where *view_type* is
|
* For a view: :samp:`{<model_name>}_view_{<view_type>}`, where *view_type* is
|
||||||
``kanban``, ``form``, ``tree``, ``search``, ...
|
``kanban``, ``form``, ``list``, ``search``, ...
|
||||||
* For an action: the main action respects :samp:`{<model_name>}_action`.
|
* For an action: the main action respects :samp:`{<model_name>}_action`.
|
||||||
Others are suffixed with :samp:`_{<detail>}`, where *detail* is a
|
Others are suffixed with :samp:`_{<detail>}`, where *detail* is a
|
||||||
lowercase string briefly explaining the action. This is used only if
|
lowercase string briefly explaining the action. This is used only if
|
||||||
|
@ -72,7 +72,7 @@ Its fields are:
|
|||||||
model to present views for
|
model to present views for
|
||||||
``views``
|
``views``
|
||||||
a list of ``(view_id, view_type)`` pairs. The second element of each pair
|
a list of ``(view_id, view_type)`` pairs. The second element of each pair
|
||||||
is the category of the view (tree, form, graph, ...) and the first is
|
is the category of the view (list, form, graph, ...) and the first is
|
||||||
an optional database id (or ``False``). If no id is provided, the client
|
an optional database id (or ``False``). If no id is provided, the client
|
||||||
should fetch the default view of the specified type for the requested
|
should fetch the default view of the specified type for the requested
|
||||||
model (this is automatically done by
|
model (this is automatically done by
|
||||||
@ -105,7 +105,7 @@ list and form views::
|
|||||||
{
|
{
|
||||||
"type": "ir.actions.act_window",
|
"type": "ir.actions.act_window",
|
||||||
"res_model": "res.partner",
|
"res_model": "res.partner",
|
||||||
"views": [[False, "tree"], [False, "form"]],
|
"views": [[False, "list"], [False, "form"]],
|
||||||
"domain": [["customer", "=", true]],
|
"domain": [["customer", "=", true]],
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -123,7 +123,7 @@ dialog::
|
|||||||
In-database window actions have a few different fields which should be ignored
|
In-database window actions have a few different fields which should be ignored
|
||||||
by clients, mostly to use in composing the ``views`` list:
|
by clients, mostly to use in composing the ``views`` list:
|
||||||
|
|
||||||
``view_mode`` (default= ``tree,form`` )
|
``view_mode`` (default= ``list,form`` )
|
||||||
comma-separated list of view types as a string (/!\\ No spaces /!\\). All of these types will be
|
comma-separated list of view types as a string (/!\\ No spaces /!\\). All of these types will be
|
||||||
present in the generated ``views`` list (with at least a ``False`` view_id)
|
present in the generated ``views`` list (with at least a ``False`` view_id)
|
||||||
``view_ids``
|
``view_ids``
|
||||||
@ -139,7 +139,7 @@ by clients, mostly to use in composing the ``views`` list:
|
|||||||
|
|
||||||
<record model="ir.actions.act_window.view" id="test_action_tree">
|
<record model="ir.actions.act_window.view" id="test_action_tree">
|
||||||
<field name="sequence" eval="1"/>
|
<field name="sequence" eval="1"/>
|
||||||
<field name="view_mode">tree</field>
|
<field name="view_mode">list</field>
|
||||||
<field name="view_id" ref="view_test_tree"/>
|
<field name="view_id" ref="view_test_tree"/>
|
||||||
<field name="act_window_id" ref="test_action"/>
|
<field name="act_window_id" ref="test_action"/>
|
||||||
</record>
|
</record>
|
||||||
|
@ -265,11 +265,11 @@ The `field` element can have the following attributes:
|
|||||||
:noindex:
|
:noindex:
|
||||||
|
|
||||||
The comma-separated list of display modes (view types) to use for the field's linked records.
|
The comma-separated list of display modes (view types) to use for the field's linked records.
|
||||||
Allowed modes are: `tree`, `form`, `kanban`, and `graph`.
|
Allowed modes are: `list`, `form`, `kanban`, and `graph`.
|
||||||
|
|
||||||
:requirement: Optional
|
:requirement: Optional
|
||||||
:type: str
|
:type: str
|
||||||
:default: `tree`
|
:default: `list`
|
||||||
:scope: :class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` fields
|
:scope: :class:`~odoo.fields.One2many` and :class:`~odoo.fields.Many2many` fields
|
||||||
|
|
||||||
.. include:: view_architectures/generic_attribute_class.rst
|
.. include:: view_architectures/generic_attribute_class.rst
|
||||||
@ -321,9 +321,9 @@ The `field` element can have the following attributes:
|
|||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<field name="children_ids">
|
<field name="children_ids">
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
</tree>
|
</list>
|
||||||
<form>
|
<form>
|
||||||
<field name="id"/>
|
<field name="id"/>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
@ -1154,7 +1154,7 @@ The `<setting>` element can have the following attributes:
|
|||||||
List
|
List
|
||||||
====
|
====
|
||||||
|
|
||||||
The root element of list views is `tree`\ [#treehistory]_.
|
The root element of list views is `list` (the previous name was `tree`).
|
||||||
|
|
||||||
.. admonition:: Possible structure and representation of its rendering
|
.. admonition:: Possible structure and representation of its rendering
|
||||||
|
|
||||||
@ -1166,16 +1166,16 @@ The root element of list views is `tree`\ [#treehistory]_.
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
...
|
...
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. _reference/view_architectures/list/root:
|
.. _reference/view_architectures/list/root:
|
||||||
|
|
||||||
Root attributes
|
Root attributes
|
||||||
---------------
|
---------------
|
||||||
|
|
||||||
Optional attributes can be added to the root element `tree` to customize the view.
|
Optional attributes can be added to the root element `list` to customize the view.
|
||||||
|
|
||||||
.. include:: view_architectures/root_attribute_string.rst
|
.. include:: view_architectures/root_attribute_string.rst
|
||||||
|
|
||||||
@ -1269,9 +1269,9 @@ Optional attributes can be added to the root element `tree` to customize the vie
|
|||||||
.. example::
|
.. example::
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree decoration-danger="field_qty > field_limit">
|
<list decoration-danger="field_qty > field_limit">
|
||||||
...
|
...
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
:requirement: Optional
|
:requirement: Optional
|
||||||
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
:type: :ref:`Python expression <reference/view_architectures/python_expression>`
|
||||||
@ -1336,9 +1336,9 @@ Using the same field multiple times in a list view is not supported
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<field name="FIELD_NAME"/>
|
<field name="FIELD_NAME"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The `field` element can have the following attributes:
|
The `field` element can have the following attributes:
|
||||||
|
|
||||||
@ -1466,12 +1466,12 @@ The `field` element can have the following attributes:
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<field name="name" string="My Custom Name"/>
|
<field name="name" string="My Custom Name"/>
|
||||||
<field name="amount" sum="Total"/>
|
<field name="amount" sum="Total"/>
|
||||||
<field name="currency_id"/>
|
<field name="currency_id"/>
|
||||||
<field name="tax_id"/>
|
<field name="tax_id"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. _reference/view_architectures/list/button:
|
.. _reference/view_architectures/list/button:
|
||||||
|
|
||||||
@ -1480,10 +1480,10 @@ The `field` element can have the following attributes:
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<button type="object" name="ACTION" string="LABEL"/>
|
<button type="object" name="ACTION" string="LABEL"/>
|
||||||
<button type="object" name="ACTION" icon="FONT_AWESOME"/>
|
<button type="object" name="ACTION" icon="FONT_AWESOME"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The `button` element can have the following attributes:
|
The `button` element can have the following attributes:
|
||||||
|
|
||||||
@ -1517,14 +1517,14 @@ The `button` element can have the following attributes:
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<button type="edit" name="edit" icon="fa-edit" title="Edit"/>
|
<button type="edit" name="edit" icon="fa-edit" title="Edit"/>
|
||||||
<button type="object" name="my_method" string="Button1" column_invisible="context.get('hide_button')" invisible="amount > 3"/>
|
<button type="object" name="my_method" string="Button1" column_invisible="context.get('hide_button')" invisible="amount > 3"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="currency_id"/>
|
<field name="currency_id"/>
|
||||||
<field name="tax_id"/>
|
<field name="tax_id"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. _reference/view_architectures/list/groupby:
|
.. _reference/view_architectures/list/groupby:
|
||||||
|
|
||||||
@ -1539,13 +1539,13 @@ thus belong on the Many2one co-model. These extra fields are fetched in batch.
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
...
|
...
|
||||||
<groupby name="FIELD_NAME">
|
<groupby name="FIELD_NAME">
|
||||||
<BUTTONS/>
|
<BUTTONS/>
|
||||||
<FIELDS/>
|
<FIELDS/>
|
||||||
</groupby>
|
</groupby>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The `groupby` element can have the following attributes:
|
The `groupby` element can have the following attributes:
|
||||||
|
|
||||||
@ -1570,7 +1570,7 @@ The `groupby` element can have the following attributes:
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="currency"/>
|
<field name="currency"/>
|
||||||
@ -1581,7 +1581,7 @@ The `groupby` element can have the following attributes:
|
|||||||
<field name="email"/>
|
<field name="email"/>
|
||||||
<button type="object" name="my_method" string="Button1" invisible="email == 'jhon@conor.com'"/>
|
<button type="object" name="my_method" string="Button1" invisible="email == 'jhon@conor.com'"/>
|
||||||
</groupby>
|
</groupby>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Fields inside the `groupby` element are used only to fetch and store the value, but they are
|
Fields inside the `groupby` element are used only to fetch and store the value, but they are
|
||||||
@ -1594,12 +1594,12 @@ The `groupby` element can have the following attributes:
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<header>
|
<header>
|
||||||
<BUTTONS/>
|
<BUTTONS/>
|
||||||
</header>
|
</header>
|
||||||
...
|
...
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The `header` element accepts the following children elements:
|
The `header` element accepts the following children elements:
|
||||||
|
|
||||||
@ -1640,7 +1640,7 @@ The `header` element accepts the following children elements:
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<header>
|
<header>
|
||||||
<button type="object" name="to_draft" string="Button1" invisible="context.get('hide_button')"/>
|
<button type="object" name="to_draft" string="Button1" invisible="context.get('hide_button')"/>
|
||||||
</header>
|
</header>
|
||||||
@ -1648,7 +1648,7 @@ The `header` element accepts the following children elements:
|
|||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="currency"/>
|
<field name="currency"/>
|
||||||
<field name="tax_id"/>
|
<field name="tax_id"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. _reference/view_architectures/list/control:
|
.. _reference/view_architectures/list/control:
|
||||||
|
|
||||||
@ -1660,13 +1660,13 @@ defined through a `create` element.
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<control>
|
<control>
|
||||||
<create string="LABEL"/>
|
<create string="LABEL"/>
|
||||||
<BUTTONS/>
|
<BUTTONS/>
|
||||||
</control>
|
</control>
|
||||||
...
|
...
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The `control` element takes no attributes.
|
The `control` element takes no attributes.
|
||||||
|
|
||||||
@ -1700,7 +1700,7 @@ The `create` element can have the following attributes:
|
|||||||
|
|
||||||
* - .. code-block:: xml
|
* - .. code-block:: xml
|
||||||
|
|
||||||
<tree>
|
<list>
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="amount"/>
|
<field name="amount"/>
|
||||||
<field name="currency"/>
|
<field name="currency"/>
|
||||||
@ -1710,16 +1710,13 @@ The `create` element can have the following attributes:
|
|||||||
<create string="Add a section" context="{'default_type': 'section'}"/>
|
<create string="Add a section" context="{'default_type': 'section'}"/>
|
||||||
<create string="Add a note" context="{'default_type': 'note'}"/>
|
<create string="Add a note" context="{'default_type': 'note'}"/>
|
||||||
</control>
|
</control>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. note::
|
.. note::
|
||||||
Using the `control` element makes sense only if the list view is inside a
|
Using the `control` element makes sense only if the list view is inside a
|
||||||
:class:`~odoo.fields.One2many` or :class:`~odoo.fields.Many2many` field. If any `create` element
|
:class:`~odoo.fields.One2many` or :class:`~odoo.fields.Many2many` field. If any `create` element
|
||||||
is defined, it overwrites the default :guilabel:`add a line` button.
|
is defined, it overwrites the default :guilabel:`add a line` button.
|
||||||
|
|
||||||
.. [#treehistory] For historical reasons, it has its origin in tree-type views later repurposed to a
|
|
||||||
more table/list-type display
|
|
||||||
|
|
||||||
.. _reference/view_architectures/search:
|
.. _reference/view_architectures/search:
|
||||||
|
|
||||||
Search
|
Search
|
||||||
|
@ -11,10 +11,10 @@
|
|||||||
<form>
|
<form>
|
||||||
<field name="tag_ids" widget="many2many_tags"/>
|
<field name="tag_ids" widget="many2many_tags"/>
|
||||||
</form>
|
</form>
|
||||||
<tree>
|
<list>
|
||||||
<field name="sequence" widget="handle"/>
|
<field name="sequence" widget="handle"/>
|
||||||
<field name="level_progress" widget="progressbar"/>
|
<field name="level_progress" widget="progressbar"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
:requirement: Optional
|
:requirement: Optional
|
||||||
:type: str
|
:type: str
|
||||||
|
@ -9,9 +9,9 @@
|
|||||||
.. example::
|
.. example::
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree default_order="sequence,name desc">
|
<list default_order="sequence,name desc">
|
||||||
...
|
...
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
:requirement: Optional
|
:requirement: Optional
|
||||||
:type: str
|
:type: str
|
||||||
|
@ -273,7 +273,7 @@ action more easily.
|
|||||||
<record model="ir.actions.act_window" id="action_list_ideas">
|
<record model="ir.actions.act_window" id="action_list_ideas">
|
||||||
<field name="name">Ideas</field>
|
<field name="name">Ideas</field>
|
||||||
<field name="res_model">idea.idea</field>
|
<field name="res_model">idea.idea</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
<menuitem id="menu_ideas" parent="menu_root" name="Ideas" sequence="10"
|
<menuitem id="menu_ideas" parent="menu_root" name="Ideas" sequence="10"
|
||||||
action="action_list_ideas"/>
|
action="action_list_ideas"/>
|
||||||
@ -321,7 +321,7 @@ is implied by the root element of the ``arch`` field:
|
|||||||
<field name="model">object_name</field>
|
<field name="model">object_name</field>
|
||||||
<field name="priority" eval="16"/>
|
<field name="priority" eval="16"/>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<!-- view content: <form>, <tree>, <graph>, ... -->
|
<!-- view content: <form>, <list>, <graph>, ... -->
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
@ -330,20 +330,20 @@ is implied by the root element of the ``arch`` field:
|
|||||||
|
|
||||||
The ``arch`` field must thus be declared as ``type="xml"`` to be parsed correctly.
|
The ``arch`` field must thus be declared as ``type="xml"`` to be parsed correctly.
|
||||||
|
|
||||||
Tree views
|
list views
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Tree views, also called list views, display records in a tabular form.
|
list views, also called list views, display records in a tabular form.
|
||||||
|
|
||||||
Their root element is ``<tree>``. The simplest form of the tree view simply
|
Their root element is ``<list>``. The simplest form of the list view simply
|
||||||
lists all the fields to display in the table (each field as a column):
|
lists all the fields to display in the table (each field as a column):
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree string="Idea list">
|
<list string="Idea list">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="inventor_id"/>
|
<field name="inventor_id"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
.. _howtos/module/views/form:
|
.. _howtos/module/views/form:
|
||||||
|
|
||||||
@ -716,7 +716,7 @@ field whenever some of its dependencies have been modified::
|
|||||||
.. exercise:: Computed fields
|
.. exercise:: Computed fields
|
||||||
|
|
||||||
* Add the percentage of taken seats to the *Session* model
|
* Add the percentage of taken seats to the *Session* model
|
||||||
* Display that field in the tree and form views
|
* Display that field in the list and form views
|
||||||
* Display the field as a progress bar
|
* Display the field as a progress bar
|
||||||
|
|
||||||
Default values
|
Default values
|
||||||
@ -845,10 +845,10 @@ and ``message`` is the error message.
|
|||||||
Advanced Views
|
Advanced Views
|
||||||
==============
|
==============
|
||||||
|
|
||||||
Tree views
|
list views
|
||||||
----------
|
----------
|
||||||
|
|
||||||
Tree views can take supplementary attributes to further customize their
|
list views can take supplementary attributes to further customize their
|
||||||
behavior:
|
behavior:
|
||||||
|
|
||||||
``decoration-{$name}``
|
``decoration-{$name}``
|
||||||
@ -872,20 +872,20 @@ behavior:
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree string="Idea Categories" decoration-info="state=='draft'"
|
<list string="Idea Categories" decoration-info="state=='draft'"
|
||||||
decoration-danger="state=='trashed'">
|
decoration-danger="state=='trashed'">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="state"/>
|
<field name="state"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
``editable``
|
``editable``
|
||||||
Either ``"top"`` or ``"bottom"``. Makes the tree view editable in-place
|
Either ``"top"`` or ``"bottom"``. Makes the list view editable in-place
|
||||||
(rather than having to go through the form view), the value is the
|
(rather than having to go through the form view), the value is the
|
||||||
position where new rows appear.
|
position where new rows appear.
|
||||||
|
|
||||||
.. exercise:: List coloring
|
.. exercise:: List coloring
|
||||||
|
|
||||||
Modify the Session tree view in such a way that sessions lasting less than
|
Modify the Session list view in such a way that sessions lasting less than
|
||||||
5 days are colored blue, and the ones lasting more than 15 days are
|
5 days are colored blue, and the ones lasting more than 15 days are
|
||||||
colored red.
|
colored red.
|
||||||
|
|
||||||
@ -1173,7 +1173,7 @@ action may be triggered via a menu item, but is more generally triggered by a
|
|||||||
button.
|
button.
|
||||||
|
|
||||||
An other way to launch wizards is through the :menuselection:`Action` menu of
|
An other way to launch wizards is through the :menuselection:`Action` menu of
|
||||||
a tree or form view. This is done through the ``binding_model_id`` field of the
|
a list or form view. This is done through the ``binding_model_id`` field of the
|
||||||
action. Setting this field will make the action appear on the views of the model
|
action. Setting this field will make the action appear on the views of the model
|
||||||
the action is "bound" to.
|
the action is "bound" to.
|
||||||
|
|
||||||
@ -1282,7 +1282,7 @@ A report is a combination two elements:
|
|||||||
|
|
||||||
Because it largerly a standard action, as with :ref:`howto/module/wizard`
|
Because it largerly a standard action, as with :ref:`howto/module/wizard`
|
||||||
it is generally useful to add the report as a *contextual item* on the
|
it is generally useful to add the report as a *contextual item* on the
|
||||||
tree and / or form views of the model being reported on via the
|
list and / or form views of the model being reported on via the
|
||||||
``binding_model_id`` field.
|
``binding_model_id`` field.
|
||||||
|
|
||||||
Here we are also using ``binding_type`` in order for the report to be in
|
Here we are also using ``binding_type`` in order for the report to be in
|
||||||
|
@ -75,7 +75,7 @@ A basic action for our `test_model` is:
|
|||||||
<record id="test_model_action" model="ir.actions.act_window">
|
<record id="test_model_action" model="ir.actions.act_window">
|
||||||
<field name="name">Test action</field>
|
<field name="name">Test action</field>
|
||||||
<field name="res_model">test_model</field>
|
<field name="res_model">test_model</field>
|
||||||
<field name="view_mode">tree,form</field>
|
<field name="view_mode">list,form</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
- ``id`` is an :term:`external identifier`. It can be used to refer to the record
|
- ``id`` is an :term:`external identifier`. It can be used to refer to the record
|
||||||
@ -83,7 +83,7 @@ A basic action for our `test_model` is:
|
|||||||
- ``model`` has a fixed value of ``ir.actions.act_window`` (:ref:`reference/actions/window`).
|
- ``model`` has a fixed value of ``ir.actions.act_window`` (:ref:`reference/actions/window`).
|
||||||
- ``name`` is the name of the action.
|
- ``name`` is the name of the action.
|
||||||
- ``res_model`` is the model which the action applies to.
|
- ``res_model`` is the model which the action applies to.
|
||||||
- ``view_mode`` are the views that will be available; in this case they are the list (tree) and form views.
|
- ``view_mode`` are the views that will be available; in this case they are the list and form views.
|
||||||
We'll see :doc:`later <14_qwebintro>` that there can be other view modes.
|
We'll see :doc:`later <14_qwebintro>` that there can be other view modes.
|
||||||
|
|
||||||
Examples can be found everywhere in Odoo, but
|
Examples can be found everywhere in Odoo, but
|
||||||
|
@ -12,7 +12,7 @@ Views are defined in XML files with actions and menus. They are instances of the
|
|||||||
|
|
||||||
In our real estate module, we need to organize the fields in a logical way:
|
In our real estate module, we need to organize the fields in a logical way:
|
||||||
|
|
||||||
- in the list (tree) view, we want to display more than just the name.
|
- in the list view, we want to display more than just the name.
|
||||||
- in the form view, the fields should be grouped.
|
- in the form view, the fields should be grouped.
|
||||||
- in the search view, we must be able to search on more than just the name. Specifically, we want a
|
- in the search view, we must be able to search on more than just the name. Specifically, we want a
|
||||||
filter for the 'Available' properties and a shortcut to group by postcode.
|
filter for the 'Available' properties and a shortcut to group by postcode.
|
||||||
@ -31,17 +31,17 @@ List
|
|||||||
:align: center
|
:align: center
|
||||||
:alt: List view
|
:alt: List view
|
||||||
|
|
||||||
List views, also called tree views, display records in a tabular form.
|
List views, also called list views, display records in a tabular form.
|
||||||
|
|
||||||
Their root element is ``<tree>``. The most basic version of this view simply
|
Their root element is ``<list>``. The most basic version of this view simply
|
||||||
lists all the fields to display in the table (where each field is a column):
|
lists all the fields to display in the table (where each field is a column):
|
||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree string="Tests">
|
<list string="Tests">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="last_seen"/>
|
<field name="last_seen"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
A simple example can be found
|
A simple example can be found
|
||||||
`here <https://github.com/odoo/odoo/blob/6da14a3aadeb3efc40f145f6c11fc33314b2f15e/addons/crm/views/crm_lost_reason_views.xml#L46-L54>`__.
|
`here <https://github.com/odoo/odoo/blob/6da14a3aadeb3efc40f145f6c11fc33314b2f15e/addons/crm/views/crm_lost_reason_views.xml#L46-L54>`__.
|
||||||
|
@ -72,7 +72,7 @@ In practice a many2one can be seen as a dropdown list in a form view.
|
|||||||
========================= ========================= =========================
|
========================= ========================= =========================
|
||||||
|
|
||||||
- Add the menus as displayed in this section's **Goal**
|
- Add the menus as displayed in this section's **Goal**
|
||||||
- Add the field ``property_type_id`` into your ``estate.property`` model and its form, tree
|
- Add the field ``property_type_id`` into your ``estate.property`` model and its form, list
|
||||||
and search views
|
and search views
|
||||||
|
|
||||||
This exercise is a good recap of the previous chapters: you need to create a
|
This exercise is a good recap of the previous chapters: you need to create a
|
||||||
@ -179,7 +179,7 @@ operations like ``recs1 | recs2``.
|
|||||||
========================= ========================= =========================
|
========================= ========================= =========================
|
||||||
|
|
||||||
- Add the menus as displayed in this section's **Goal**
|
- Add the menus as displayed in this section's **Goal**
|
||||||
- Add the field ``tag_ids`` to your ``estate.property`` model and in its form and tree views
|
- Add the field ``tag_ids`` to your ``estate.property`` model and in its form and list views
|
||||||
|
|
||||||
Tip: in the view, use the ``widget="many2many_tags"`` attribute as demonstrated
|
Tip: in the view, use the ``widget="many2many_tags"`` attribute as demonstrated
|
||||||
`here <https://github.com/odoo/odoo/blob/5bb8b927524d062be32f92eb326ef64091301de1/addons/crm_iap_lead_website/views/crm_reveal_views.xml#L36>`__.
|
`here <https://github.com/odoo/odoo/blob/5bb8b927524d062be32f92eb326ef64091301de1/addons/crm_iap_lead_website/views/crm_reveal_views.xml#L36>`__.
|
||||||
@ -196,7 +196,7 @@ One2many
|
|||||||
|
|
||||||
**Goal**: at the end of this section:
|
**Goal**: at the end of this section:
|
||||||
|
|
||||||
- a new ``estate.property.offer`` model should be created with the corresponding form and tree view.
|
- a new ``estate.property.offer`` model should be created with the corresponding form and list view.
|
||||||
- offers should be added to the ``estate.property`` model:
|
- offers should be added to the ``estate.property`` model:
|
||||||
|
|
||||||
.. image:: 07_relations/property_offer.png
|
.. image:: 07_relations/property_offer.png
|
||||||
@ -244,7 +244,7 @@ that accessing the data must be done in a loop::
|
|||||||
property_id Many2one (``estate.property``) required
|
property_id Many2one (``estate.property``) required
|
||||||
========================= ================================ ============= =================
|
========================= ================================ ============= =================
|
||||||
|
|
||||||
- Create a tree view and a form view with the ``price``, ``partner_id`` and ``status`` fields. No
|
- Create a list view and a form view with the ``price``, ``partner_id`` and ``status`` fields. No
|
||||||
need to create an action or a menu.
|
need to create an action or a menu.
|
||||||
- Add the field ``offer_ids`` to your ``estate.property`` model and in its form view as
|
- Add the field ``offer_ids`` to your ``estate.property`` model and in its form view as
|
||||||
depicted in this section's **Goal**.
|
depicted in this section's **Goal**.
|
||||||
|
@ -70,10 +70,10 @@ a form view. For example:
|
|||||||
<form>
|
<form>
|
||||||
<field name="description"/>
|
<field name="description"/>
|
||||||
<field name="line_ids">
|
<field name="line_ids">
|
||||||
<tree>
|
<list>
|
||||||
<field name="field_1"/>
|
<field name="field_1"/>
|
||||||
<field name="field_2"/>
|
<field name="field_2"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</form>
|
</form>
|
||||||
|
|
||||||
@ -352,9 +352,9 @@ complete list):
|
|||||||
|
|
||||||
.. code-block:: xml
|
.. code-block:: xml
|
||||||
|
|
||||||
<tree decoration-success="is_partner==True">
|
<list decoration-success="is_partner==True">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
</tree>
|
</list>
|
||||||
|
|
||||||
The records where ``is_partner`` is ``True`` will be displayed in green.
|
The records where ``is_partner`` is ``True`` will be displayed in green.
|
||||||
|
|
||||||
|
@ -698,10 +698,10 @@ let's also add views so we can see and edit a course's teacher:
|
|||||||
<field name="name">Academy courses: list</field>
|
<field name="name">Academy courses: list</field>
|
||||||
<field name="model">academy.courses</field>
|
<field name="model">academy.courses</field>
|
||||||
<field name="arch" type="xml">
|
<field name="arch" type="xml">
|
||||||
<tree string="Courses">
|
<list string="Courses">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="teacher_id"/>
|
<field name="teacher_id"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
<record id="academy_course_form" model="ir.ui.view">
|
<record id="academy_course_form" model="ir.ui.view">
|
||||||
@ -761,9 +761,9 @@ model:
|
|||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
<field name="biography"/>
|
<field name="biography"/>
|
||||||
<field name="course_ids">
|
<field name="course_ids">
|
||||||
<tree Sstring="Courses" editable="bottom">
|
<list string="Courses" editable="bottom">
|
||||||
<field name="name"/>
|
<field name="name"/>
|
||||||
</tree>
|
</list>
|
||||||
</field>
|
</field>
|
||||||
</sheet>
|
</sheet>
|
||||||
</form>
|
</form>
|
||||||
|
Loading…
Reference in New Issue
Block a user