[IMP] essentials/properties: update Property fields doc 19

task-5173906

closes odoo/documentation#15326

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
This commit is contained in:
emmi-odoo
2025-11-14 10:13:58 +01:00
parent 2e38bc90f2
commit a890a58e04
2 changed files with 166 additions and 149 deletions

View File

@@ -8,12 +8,12 @@ fields allow information storage and management by adding values.
.. admonition:: Property vs. regular fields .. admonition:: Property vs. regular fields
Properties act as pseudo-fields; they behave like regular fields but are not saved as columns in Properties act as pseudo-fields; they behave like regular fields but are not saved as columns in
the database. They also rely on a defined :ref:`parent record <property-fields/properties-apps>`. the database. They also rely on a defined :ref:`parent record <property-fields/properties-apps>`.
.. example:: .. example::
Adding a property to a *task* inserts a field in *all tasks* within the *same Adding a property to a *task* inserts a field in *all tasks* within the *same
project* while other projects' tasks remain unaffected. project* while other projects' tasks remain unaffected.
.. _property_field/add: .. _property_field/add:
@@ -27,87 +27,95 @@ In the popover, enter the property's :guilabel:`Label`, choose a :guilabel:`Fiel
configure the field based on the selected type: configure the field based on the selected type:
.. list-table:: .. list-table::
:header-rows: 1 :header-rows: 1
:widths: 15 30 55 :widths: 20 30 50
* - Field type * - Field type
- Use - Use
- Options - Options
* - :ref:`Text <studio/fields/simple-fields-text>` * - :ref:`Text <studio/fields/simple-fields-text>`
- Short text on a single line - Short text on a single line
- Enter a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :guilabel:`Multiline Text` * - :ref:`Multiline Text <studio/fields/simple-fields-multiline-text>`
- Full text on multiple lines - Full text on multiple lines
- Enter a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :ref:`HTML <text-editor>` * - :ref:`HTML <studio/fields/simple-fields-html>`
- HTML field - HTML field
- Enter a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :ref:`Checkbox <studio/fields/simple-fields-checkbox>` * - :ref:`Checkbox <studio/fields/simple-fields-checkbox>`
- Checked or unchecked status - Checked or unchecked status
- Choose the :guilabel:`Default State`. - Choose the :guilabel:`Default State`.
* - :ref:`Integer <studio/fields/simple-fields-integer>` * - :ref:`Integer <studio/fields/simple-fields-integer>`
- Integer numbers (:dfn:`positive, negative, or zero, without a decimal`) - Integer numbers (:dfn:`positive, negative, or zero, without a decimal`)
- Enter a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :ref:`Decimal <studio/fields/simple-fields-decimal>` * - :ref:`Decimal <studio/fields/simple-fields-decimal>`
- Decimal numbers (:dfn:`positive, negative, or zero, with a decimal`) - Decimal numbers (:dfn:`positive, negative, or zero, with a decimal`)
- Enter a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :ref:`Date <studio/fields/simple-fields-date>` * - :ref:`Monetary <studio/fields/simple-fields-monetary>`
- Selection of a date on a calendar - Selection of a (cost) currency
- Select a :guilabel:`Default Value` if desired. - Enter a :guilabel:`Default Value` if desired.
* - :ref:`Date & Time <studio/fields/simple-fields-date-time>` * - :ref:`Date <studio/fields/simple-fields-date>`
- Selection of a date on a calendar and a time on a clock - Selection of a date on a calendar
- Select a :guilabel:`Default Value` if desired. - Select a :guilabel:`Default Value` if desired.
* - :ref:`Selection <studio/fields/simple-fields-selection>` * - :ref:`Date & Time <studio/fields/simple-fields-date-time>`
- Selection of a value from a group of predefined values - Selection of a date on a calendar and a time on a clock
- Add a selectable option by clicking :icon:`fa-plus` :guilabel:`Add a Value` and entering the - Select a :guilabel:`Default Value` if desired.
:guilabel:`Option Name`. * - :ref:`Selection <studio/fields/simple-fields-selection>`
- Selection of a value from a group of predefined values
- Add a selectable option by clicking :icon:`fa-plus` :guilabel:`Add a Value` and entering the
:guilabel:`Option Name`.
If desired, set an option as default by clicking the :icon:`fa-star-o` If desired, set an option as default by clicking the :icon:`fa-star-o`
(:guilabel:`Select Default`) button. (:guilabel:`Select Default`) button.
Reorder the options by dragging and dropping them using the :icon:`oi-draggable` Reorder the options by dragging and dropping them using the :icon:`oi-draggable`
(:guilabel:`drag handle`) button. (:guilabel:`drag handle`) button.
Delete an option by clicking the :icon:`fa-trash-o` (:guilabel:`Remove Property`) button. Delete an option by clicking the :icon:`fa-trash-o` (:guilabel:`Remove Property`) button.
* - :ref:`Tags <studio/fields/relational-fields-tags>` * - :ref:`Tags <studio/fields/relational-fields-tags>`
- Selection of multiple values in the form of tags - Selection of multiple values in the form of tags
- Enter a :guilabel:`Tag` name and press `Enter` to save it. - Enter a :guilabel:`Tag` name and press `Enter` to save it.
Change a tag's color by clicking it and selecting another one. Change a tag's color by clicking it and selecting another one.
* - :ref:`Many2one <studio/fields/relational-fields-many2one>` * - :ref:`Many2one <studio/fields/relational-fields-many2one>`
- Selection of a single record from another model - Selection of a single record from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to - Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed. filter records if needed.
Select a :guilabel:`Default Value` if desired. Select a :guilabel:`Default Value` if desired.
* - :ref:`Many2many <studio/fields/relational-fields-many2many>` * - :ref:`Many2many <studio/fields/relational-fields-many2many>`
- Selection of multiple records from another model - Selection of multiple records from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to - Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed. filter records if needed.
Select a :guilabel:`Default Value` if desired. Select a :guilabel:`Default Value` if desired.
* - :guilabel:`Separator` * - :guilabel:`Separator`
- Group several properties under a foldable label - Group several properties under a foldable label
- -
Click outside the popover to save the added property.
.. note:: .. note::
- Select whether to display the property in the Kanban, List, or Calendar views cards for every - Enter a :guilabel:`Suffix` to add a contextual description after a field's value. For example,
field with the :guilabel:`Display in Cards` option. to indicate the cost per kilometer, use the :guilabel:`Monetary` field and name it **Cost**,
then enter **per km** as the :guilabel:`Suffix` field. The property then displays the
following: **Cost** [added value] **per km**.
- Enable :guilabel:`Display in Cards` to select whether to display the property in the Kanban,
List, or Calendar views' cards for every field.
- Enable :guilabel:`AI` to add :ref:`AI fields <ai/add-a-new-field/properties>` to the property.
Write a :guilabel:`Prompt` and/or type `/field` to insert dynamic values.
- To add another property, click :icon:`fa-plus` :guilabel:`Add a Property` at the bottom of the - To add another property, click :icon:`fa-plus` :guilabel:`Add a Property` at the bottom of the
form while. form.
.. tip:: .. tip::
To edit an existing property, hover the cursor over the property: - To edit an existing property, hover the cursor over the property:
- Click the :icon:`fa-pencil` (:guilabel:`pencil`) button to open a popover and modify the - Click the :icon:`fa-pencil` (:guilabel:`pencil`) button to open a popover and modify the
property. In the popover, click the :icon:`fa-chevron-up` (up) or :icon:`fa-chevron-down` property. In the popover, click the :icon:`fa-chevron-up` (up) or :icon:`fa-chevron-down`
(down) chevron to move a property upwards or downwards. (down) chevron to move a property upwards or downwards.
- Click :icon:`fa-trash` :guilabel:`Delete`, then :guilabel:`Delete` to delete it. Deleting - Click :icon:`fa-trash` :guilabel:`Delete`, then :guilabel:`Delete` to permanently remove it.
a property is permanent. - Use the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to drag and drop the property to
- Use the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to drag and drop the property to reorder or regroup.
reorder or regroup.
- Click outside the popover to save the added property.
.. _property-fields/properties-apps: .. _property-fields/properties-apps:
@@ -117,93 +125,100 @@ Properties across apps
Property fields can be defined in the :ref:`form view <studio/views/general/form>` of multiple Property fields can be defined in the :ref:`form view <studio/views/general/form>` of multiple
models. Once set, the property is shared by all records that are linked to the same *parent*. models. Once set, the property is shared by all records that are linked to the same *parent*.
.. list-table:: .. list-table::
:widths: 20 40 40 :widths: 20 40 40
:header-rows: 1 :header-rows: 1
:stub-columns: 1 :stub-columns: 1
* - App * - App
- Model - Model
- Parent - Parent
* - :guilabel:`Accounting` * - :guilabel:`Accounting`
- :ref:`Asset/Revenue Recognition <create-assets-entry>` - :ref:`Asset/Revenue Recognition <create-assets-entry>`
:doc:`Loan </applications/finance/accounting/bank/loans>` :doc:`Loan </applications/finance/accounting/bank/loans>`
- :ref:`Asset model <assets/asset-model>` - :ref:`Asset model <assets/asset-model>`
:ref:`Journal <cheat_sheet/journals>` :ref:`Journal <cheat_sheet/journals>`
* - :guilabel:`Appraisals` * - :guilabel:`Appraisals`
- :ref:`Employee Appraisal <appraisals/manual>` - :ref:`Employee Appraisal <appraisals/manual>`
- :ref:`Department <employee/create-departments>` - :ref:`Department <employee/create-departments>`
* - :guilabel:`Approvals` * - :guilabel:`Approvals`
- Approval Request - Approval Request
- Category - Category
* - :guilabel:`CRM` * - :guilabel:`CRM`
- :doc:`Lead/Opportunity </applications/sales/crm/acquire_leads/email_manual>` - :doc:`Lead/Opportunity </applications/sales/crm/acquire_leads/email_manual>`
- :ref:`Sales team <crm/sales-team-dashboard>` - :ref:`Sales team <crm/sales-team-dashboard>`
* - :guilabel:`Employees` * - :guilabel:`Employees`
- :ref:`Employee <employees/general-info>` - :ref:`Employee <employees/general-info>`
- :ref:`Company <employees/general-info>` - :ref:`Company <employees/general-info>`
* - :guilabel:`Events` * - :guilabel:`Events`
- :doc:`Event Registration </applications/marketing/events/registration_desk>` - :doc:`Event Registration </applications/marketing/events/registration_desk>`
- :ref:`Event <events/new-event>` - :ref:`Event <events/new-event>`
* - :guilabel:`Fleet` * - :guilabel:`Fleet`
- :doc:`Vehicle </applications/hr/fleet/new_vehicle>` - :doc:`Vehicle </applications/hr/fleet/new_vehicle>`
- :ref:`Vehicle model <fleet/add-model>` - :ref:`Vehicle model <fleet/add-model>`
* - :guilabel:`Frontdesk` * - :guilabel:`Frontdesk`
- :ref:`Frontdesk Visitors <frontdesk/list>` - :ref:`Frontdesk Visitors <frontdesk/list>`
- :ref:`Station <frontdesk/stations>` - :ref:`Station <frontdesk/stations>`
* - :guilabel:`Helpdesk` * - :guilabel:`Helpdesk`
- :ref:`Ticket <helpdesk/follow>` - :ref:`Ticket <helpdesk/follow>`
- :ref:`Helpdesk team <helpdesk/create-team>` - :ref:`Helpdesk team <helpdesk/create-team>`
* - :guilabel:`Inventory` * - :guilabel:`Inventory`
- :ref:`Lot/Serial <inventory/product_management/edit-lot>` - :ref:`Lot/Serial <inventory/product_management/edit-lot>`
:doc:`Transfer :doc:`Transfer
</applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave>` </applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave>`
:ref:`Batch Transfer <inventory/misc/batch_picking>` :ref:`Batch Transfer <inventory/misc/batch_picking>`
- :ref:`Product variant <product-variants/add-product-variants>` - :ref:`Product variant <product-variants/add-product-variants>`
:ref:`Operation type <inventory/product_management/operation-type-setting>` :ref:`Operation type <inventory/product_management/operation-type-setting>`
:ref:`Operation type <inventory/product_management/operation-type-setting>` :ref:`Operation type <inventory/product_management/operation-type-setting>`
* - :guilabel:`Knowledge` * - :guilabel:`Knowledge`
- :ref:`Knowledge Article <knowledge/articles_editing/create-article>` - :ref:`Knowledge Article <knowledge/articles_editing/create-article>`
- :ref:`Parent article <knowledge/articles_editing/create-article>` - :ref:`Parent article <knowledge/articles_editing/create-article>`
* - :guilabel:`Maintenance` * - :guilabel:`Maintenance`
- :ref:`Maintenance Equipment <maintenance/equipment_management/add_new_equipment>` - :ref:`Maintenance Equipment <maintenance/equipment_management/add_new_equipment>`
- :ref:`Equipment category <maintenance/equipment_management/add_new_equipment>` - :ref:`Equipment category <maintenance/equipment_management/add_new_equipment>`
* - :guilabel:`Meeting Rooms` * - :guilabel:`Meeting Rooms`
- Room - Room
- Office - Office
* - :guilabel:`Planning` * - :guilabel:`Payroll`
- :ref:`Shift <planning/roles>` - :ref:`Employee <employees/general-info>`
- :ref:`Role <planning/roles>`
* - :guilabel:`Project` / :guilabel:`Field Service`
- :ref:`Task <task_creation/task-configuration>`
- :ref:`Project <project_management/configuration>`
* - :guilabel:`Recruitment`
- :ref:`Applicant <recruitment/quick-add-applicant>`
:ref:`Job Position <recruitment/new_job_position/edit>` :ref:`Payslip <payroll/new-payslip>`
- :ref:`Company <employees/general-info>`
Candidate :ref:`Structure <payroll/structure-types>`
- :ref:`Job position <job-position/create-job-position>` * - :guilabel:`Planning`
- :ref:`Shift <planning/roles>`
- :ref:`Role <planning/roles>`
* - :guilabel:`Project` / :guilabel:`Field Service`
- :ref:`Task <task_creation/task-configuration>`
- :ref:`Project <project_management/configuration>`
* - :guilabel:`Recruitment`
- :ref:`Applicant <recruitment/quick-add-applicant>`
:ref:`Company <general/companies/company>` :ref:`Job Position <recruitment/new_job_position/edit>`
:ref:`Company <general/companies/company>` Candidate
* - :guilabel:`Repairs` - :ref:`Job position <job-position/create-job-position>`
- :ref:`Repair order <repairs/repair_orders/repair>`
- :ref:`Company <general/companies/company>` :ref:`Company <general/companies/company>`
* - :guilabel:`Sales` / etc.
- Product :ref:`Company <general/companies/company>`
- Category * - :guilabel:`Repairs`
- :ref:`Repair order <repairs/repair_orders/repair>`
- :ref:`Company <general/companies/company>`
* - :guilabel:`Sales` / etc.
- Product
- Category
.. note:: .. note::
The following models do not depend on any *parent* and apply to all records: The following models do not depend on any *parent* and apply to all records:
- :doc:`Contact Form <../../../applications/essentials/contacts>` in the :guilabel:`Contacts` app - :doc:`Contact Form <../../../applications/essentials/contacts>` in the :guilabel:`Contacts` app
- :ref:`Mailing List Contacts <marketing/mailing-list/contacts>` in the :guilabel:`Email - :ref:`Mailing List Contacts <marketing/mailing-list/contacts>` in the :guilabel:`Email
Marketing` app Marketing` app

View File

@@ -73,6 +73,8 @@ After the field is added, click the |AI| icon to refresh the field value.
.. image:: fields/warning.png .. image:: fields/warning.png
:alt: A warning message indicating the AI was unable to complete the request. :alt: A warning message indicating the AI was unable to complete the request.
.. _ai/add-a-new-field/properties:
Add via edit properties Add via edit properties
----------------------- -----------------------