documentation/studio/use_cases/models_fields.rst
2020-06-11 17:33:48 +02:00

140 lines
6.2 KiB
ReStructuredText
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

=====================================================
Advanced Use Cases: Creating Models and Adding Fields
=====================================================
- **Case scenario 1: on the leads form, if the chosen country is France, show a field
'Pay by check?'**
| On your leads form, add a *Related Field* to *Country > Country Name*.
| Now, add a *Checkbox* field and define its invisibility options as *Country* (carefully select
the one just created) *> is not = > France.*
| You can now hide the related field created (*Country*) if you wish.
.. image:: media/models_fields/invisible_domain.png
:align: center
:alt: View of the invisibility domain of a field being set in Odoo Studio
| Another approach is to use the countrys ID. To do so, go to
:menuselection:`Contacts --> Configuration --> Countries`, select France (for example), and on the
URL check its *ID*.
| The related field invisibility path should now be *Country* (carefully select the one just
created) *> is not = > 75*.
| Again, hide the related field with the countrys ID if you prefer.
.. image:: media/models_fields/url_id.png
:align: center
:alt: View of an URL emphasizing where a countrys ID can be found for Odoo Studio
- **Case scenario 2: create a model called 'Properties' and add fields called: company, value, name,
address, active, image.**
From the dashboard, (optionally) start a new module. Then, click on *Edit Menu* and start a
*New Menu* (model). Set your menu name and *Confirm*. Now, on its form, drag & drop the necessary
fields.
.. image:: media/models_fields/new_menu.png
:align: center
:alt: View of the recommended fields for an object in Odoo Studio
- **Case scenario 2.a: now, you would like to have a model called 'Regions' to which each property
must be linked. And, on 'Regions', you would like to see the properties for each region.**
| Go to *Edit Menu > New Menu* and create your menu, calling it *Regions*. Add the necessary fields
on its form by dragging & dropping them.
| Now, in the form view of *Properties*, add a *Many2one* field with a relation to your model
*Region*.
.. tip::
The *Existing Fields* are the ones that are on the current model but not yet in the view.
.. image:: media/models_fields/new_existing_fields.png
:align: center
:height: 420
:alt: Form view and a Many2one field being dropped in Odoo Studio
.. image:: media/models_fields/real_estate_many2one.png
:align: center
:alt: Form view and a Many2one field being dropped in Odoo Studio
| Now, go to the model *Regions*, select the form view, and add a status button selecting *Regions
(Properties)* as your relational field.
| *Status buttons* are computed fields, meaning that they count the numbers of records on the
related model, and allow you to access them.
.. image:: media/models_fields/add_button.png
:align: center
:alt: Form view and the status button window being shown in Odoo Studio
.. tip::
When searching for relations, click on *Search more* and filter it by *Custom*. This way you
avoid creating duplicates.
.. image:: media/models_fields/search_model_custom.png
:align: center
:alt: View of the search model window in Odoo Studio
- **Case scenario 2.b: in the model 'Properties', show all the tags as checkboxes instead of tags.**
Once the field *Tags* is added to the form, select it and, under its *Properties > Widgets*, choose
*Checkboxes*.
.. image:: media/models_fields/widget.png
:align: center
:alt: Form view showing the widgets available in Odoo Studio
- **Case scenario 3: on the leads form, add a selection field with the values:'Tags' & 'List' &
'Checkboxes'. According to the value of the field, show tags as many2many_tags, many2many_radio,
or many2many(_list).**
In your form view, add a *Tags* field and relate it to *Partners Tag*. Under *Properties*, define
its *Widget* as *Many2many*. Do the same process another 2 times for *Checkboxes* and *Tags*.
.. image:: media/models_fields/widget_checkboxes.png
:align: center
:alt: Form view emphasizing the widget property in Odoo Studio
| Now, add a *Selection* field and the necessary values.
| Continue by selecting your *Tags* fields, one by one, to set their *Invisible* options according
to their *Widget*. In the example below, the invisibility rule for the *Partner Tags* is set as:
*Select Tag type > is not = > Tags.*
.. image:: media/models_fields/domain_select_tag_type.png
:align: center
:alt: Form view emphasizing a field added and its invisibility properties in Odoo Studio
- **Case scenario 4: on a quotations form, add a selection field called 'Manager Validation' with
the values: Accepted and Refused. Only a sales manager can see it, and the field should be
set as mandatory if the untaxed amount is higher than 500€.**
On your quotation form, add a *Selection* field with the values *Accepted* and *Refused*. Set its
*Required* condition as *Untaxed Amount > 500* and the *Limit visibility to groups* as *Sales /
Administrator* or managers.
.. image:: media/models_fields/domain_higher_500.png
:align: center
:alt: Form view of a required domain being set in Odoo Studio
- **Case scenario 5: change the tooltip of a field for all views.**
| Activate the :doc:`Developer mode <../../general/developer_mode/activate>` and open Studio.
| Select the necessary field and, under *Properties*, click on *More* to write your tooltip message
on *Field Help*. The tooltip message is the explanatory message shown when the user hovers the
field. The message here written is displayed on all views forms where the field is added.
.. image:: media/models_fields/field_help.png
:align: center
:alt: Form view showing more property options and emphasizing the help feature in Odoo Studio
.. note::
The *Field Help* message can only be applied to *new* fields. If you would like to change/apply a
tooltip for a specific field, use the *Help Tooltip* option under *Properties*.
.. image:: media/models_fields/help_tooltip.png
:align: center
:height: 350
:alt: View of the properties emphasizing the help tooltip option in Odoo Studio
.. seealso::
- :doc:`../concepts/understanding_general`