[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
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>`.
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>`.
.. example::
Adding a property to a *task* inserts a field in *all tasks* within the *same
project* while other projects' tasks remain unaffected.
.. example::
Adding a property to a *task* inserts a field in *all tasks* within the *same
project* while other projects' tasks remain unaffected.
.. _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:
.. list-table::
:header-rows: 1
:widths: 15 30 55
:header-rows: 1
:widths: 20 30 50
* - Field type
- Use
- Options
* - :ref:`Text <studio/fields/simple-fields-text>`
- Short text on a single line
- Enter a :guilabel:`Default Value` if desired.
* - :guilabel:`Multiline Text`
- Full text on multiple lines
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`HTML <text-editor>`
- HTML field
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Checkbox <studio/fields/simple-fields-checkbox>`
- Checked or unchecked status
- Choose the :guilabel:`Default State`.
* - :ref:`Integer <studio/fields/simple-fields-integer>`
- Integer numbers (:dfn:`positive, negative, or zero, without a decimal`)
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Decimal <studio/fields/simple-fields-decimal>`
- Decimal numbers (:dfn:`positive, negative, or zero, with a decimal`)
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Date <studio/fields/simple-fields-date>`
- Selection of a date on a calendar
- Select a :guilabel:`Default Value` if desired.
* - :ref:`Date & Time <studio/fields/simple-fields-date-time>`
- Selection of a date on a calendar and a time on a clock
- Select a :guilabel:`Default Value` if desired.
* - :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`.
* - Field type
- Use
- Options
* - :ref:`Text <studio/fields/simple-fields-text>`
- Short text on a single line
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Multiline Text <studio/fields/simple-fields-multiline-text>`
- Full text on multiple lines
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`HTML <studio/fields/simple-fields-html>`
- HTML field
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Checkbox <studio/fields/simple-fields-checkbox>`
- Checked or unchecked status
- Choose the :guilabel:`Default State`.
* - :ref:`Integer <studio/fields/simple-fields-integer>`
- Integer numbers (:dfn:`positive, negative, or zero, without a decimal`)
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Decimal <studio/fields/simple-fields-decimal>`
- Decimal numbers (:dfn:`positive, negative, or zero, with a decimal`)
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Monetary <studio/fields/simple-fields-monetary>`
- Selection of a (cost) currency
- Enter a :guilabel:`Default Value` if desired.
* - :ref:`Date <studio/fields/simple-fields-date>`
- Selection of a date on a calendar
- Select a :guilabel:`Default Value` if desired.
* - :ref:`Date & Time <studio/fields/simple-fields-date-time>`
- Selection of a date on a calendar and a time on a clock
- Select a :guilabel:`Default Value` if desired.
* - :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`
(:guilabel:`Select Default`) button.
If desired, set an option as default by clicking the :icon:`fa-star-o`
(:guilabel:`Select Default`) button.
Reorder the options by dragging and dropping them using the :icon:`oi-draggable`
(:guilabel:`drag handle`) button.
Reorder the options by dragging and dropping them using the :icon:`oi-draggable`
(:guilabel:`drag handle`) button.
Delete an option by clicking the :icon:`fa-trash-o` (:guilabel:`Remove Property`) button.
* - :ref:`Tags <studio/fields/relational-fields-tags>`
- Selection of multiple values in the form of tags
- Enter a :guilabel:`Tag` name and press `Enter` to save it.
Delete an option by clicking the :icon:`fa-trash-o` (:guilabel:`Remove Property`) button.
* - :ref:`Tags <studio/fields/relational-fields-tags>`
- Selection of multiple values in the form of tags
- Enter a :guilabel:`Tag` name and press `Enter` to save it.
Change a tag's color by clicking it and selecting another one.
* - :ref:`Many2one <studio/fields/relational-fields-many2one>`
- Selection of a single record from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed.
Change a tag's color by clicking it and selecting another one.
* - :ref:`Many2one <studio/fields/relational-fields-many2one>`
- Selection of a single record from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed.
Select a :guilabel:`Default Value` if desired.
* - :ref:`Many2many <studio/fields/relational-fields-many2many>`
- Selection of multiple records from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed.
Select a :guilabel:`Default Value` if desired.
* - :ref:`Many2many <studio/fields/relational-fields-many2many>`
- Selection of multiple records from another model
- Enter the :guilabel:`Model` name. Configure its :ref:`Domain <search/custom-filters>` to
filter records if needed.
Select a :guilabel:`Default Value` if desired.
* - :guilabel:`Separator`
- Group several properties under a foldable label
-
Click outside the popover to save the added property.
Select a :guilabel:`Default Value` if desired.
* - :guilabel:`Separator`
- Group several properties under a foldable label
-
.. note::
- Select whether to display the property in the Kanban, List, or Calendar views cards for every
field with the :guilabel:`Display in Cards` option.
- Enter a :guilabel:`Suffix` to add a contextual description after a field's value. For example,
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
form while.
form.
.. 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
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.
- Click :icon:`fa-trash` :guilabel:`Delete`, then :guilabel:`Delete` to delete it. Deleting
a property is permanent.
- Use the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to drag and drop the property to
reorder or regroup.
- 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`
(down) chevron to move a property upwards or downwards.
- Click :icon:`fa-trash` :guilabel:`Delete`, then :guilabel:`Delete` to permanently remove it.
- Use the :icon:`oi-draggable` (:guilabel:`drag handle`) icon to drag and drop the property to
reorder or regroup.
- Click outside the popover to save the added property.
.. _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
models. Once set, the property is shared by all records that are linked to the same *parent*.
.. list-table::
:widths: 20 40 40
:header-rows: 1
:stub-columns: 1
.. list-table::
:widths: 20 40 40
:header-rows: 1
:stub-columns: 1
* - App
- Model
- Parent
* - :guilabel:`Accounting`
- :ref:`Asset/Revenue Recognition <create-assets-entry>`
* - App
- Model
- Parent
* - :guilabel:`Accounting`
- :ref:`Asset/Revenue Recognition <create-assets-entry>`
:doc:`Loan </applications/finance/accounting/bank/loans>`
- :ref:`Asset model <assets/asset-model>`
:doc:`Loan </applications/finance/accounting/bank/loans>`
- :ref:`Asset model <assets/asset-model>`
:ref:`Journal <cheat_sheet/journals>`
* - :guilabel:`Appraisals`
- :ref:`Employee Appraisal <appraisals/manual>`
- :ref:`Department <employee/create-departments>`
* - :guilabel:`Approvals`
- Approval Request
- Category
* - :guilabel:`CRM`
- :doc:`Lead/Opportunity </applications/sales/crm/acquire_leads/email_manual>`
- :ref:`Sales team <crm/sales-team-dashboard>`
* - :guilabel:`Employees`
- :ref:`Employee <employees/general-info>`
- :ref:`Company <employees/general-info>`
* - :guilabel:`Events`
- :doc:`Event Registration </applications/marketing/events/registration_desk>`
- :ref:`Event <events/new-event>`
* - :guilabel:`Fleet`
- :doc:`Vehicle </applications/hr/fleet/new_vehicle>`
- :ref:`Vehicle model <fleet/add-model>`
* - :guilabel:`Frontdesk`
- :ref:`Frontdesk Visitors <frontdesk/list>`
- :ref:`Station <frontdesk/stations>`
* - :guilabel:`Helpdesk`
- :ref:`Ticket <helpdesk/follow>`
- :ref:`Helpdesk team <helpdesk/create-team>`
* - :guilabel:`Inventory`
- :ref:`Lot/Serial <inventory/product_management/edit-lot>`
:ref:`Journal <cheat_sheet/journals>`
* - :guilabel:`Appraisals`
- :ref:`Employee Appraisal <appraisals/manual>`
- :ref:`Department <employee/create-departments>`
* - :guilabel:`Approvals`
- Approval Request
- Category
* - :guilabel:`CRM`
- :doc:`Lead/Opportunity </applications/sales/crm/acquire_leads/email_manual>`
- :ref:`Sales team <crm/sales-team-dashboard>`
* - :guilabel:`Employees`
- :ref:`Employee <employees/general-info>`
- :ref:`Company <employees/general-info>`
* - :guilabel:`Events`
- :doc:`Event Registration </applications/marketing/events/registration_desk>`
- :ref:`Event <events/new-event>`
* - :guilabel:`Fleet`
- :doc:`Vehicle </applications/hr/fleet/new_vehicle>`
- :ref:`Vehicle model <fleet/add-model>`
* - :guilabel:`Frontdesk`
- :ref:`Frontdesk Visitors <frontdesk/list>`
- :ref:`Station <frontdesk/stations>`
* - :guilabel:`Helpdesk`
- :ref:`Ticket <helpdesk/follow>`
- :ref:`Helpdesk team <helpdesk/create-team>`
* - :guilabel:`Inventory`
- :ref:`Lot/Serial <inventory/product_management/edit-lot>`
:doc:`Transfer
</applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave>`
:doc:`Transfer
</applications/inventory_and_mrp/inventory/shipping_receiving/picking_methods/wave>`
:ref:`Batch Transfer <inventory/misc/batch_picking>`
- :ref:`Product variant <product-variants/add-product-variants>`
:ref:`Batch Transfer <inventory/misc/batch_picking>`
- :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>`
* - :guilabel:`Knowledge`
- :ref:`Knowledge Article <knowledge/articles_editing/create-article>`
- :ref:`Parent article <knowledge/articles_editing/create-article>`
* - :guilabel:`Maintenance`
- :ref:`Maintenance Equipment <maintenance/equipment_management/add_new_equipment>`
- :ref:`Equipment category <maintenance/equipment_management/add_new_equipment>`
* - :guilabel:`Meeting Rooms`
- Room
- Office
* - :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:`Operation type <inventory/product_management/operation-type-setting>`
* - :guilabel:`Knowledge`
- :ref:`Knowledge Article <knowledge/articles_editing/create-article>`
- :ref:`Parent article <knowledge/articles_editing/create-article>`
* - :guilabel:`Maintenance`
- :ref:`Maintenance Equipment <maintenance/equipment_management/add_new_equipment>`
- :ref:`Equipment category <maintenance/equipment_management/add_new_equipment>`
* - :guilabel:`Meeting Rooms`
- Room
- Office
* - :guilabel:`Payroll`
- :ref:`Employee <employees/general-info>`
:ref:`Job Position <recruitment/new_job_position/edit>`
:ref:`Payslip <payroll/new-payslip>`
- :ref:`Company <employees/general-info>`
Candidate
- :ref:`Job position <job-position/create-job-position>`
:ref:`Structure <payroll/structure-types>`
* - :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>`
* - :guilabel:`Repairs`
- :ref:`Repair order <repairs/repair_orders/repair>`
- :ref:`Company <general/companies/company>`
* - :guilabel:`Sales` / etc.
- Product
- Category
Candidate
- :ref:`Job position <job-position/create-job-position>`
:ref:`Company <general/companies/company>`
:ref:`Company <general/companies/company>`
* - :guilabel:`Repairs`
- :ref:`Repair order <repairs/repair_orders/repair>`
- :ref:`Company <general/companies/company>`
* - :guilabel:`Sales` / etc.
- Product
- Category
.. 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
- :ref:`Mailing List Contacts <marketing/mailing-list/contacts>` in the :guilabel:`Email
Marketing` app
- :doc:`Contact Form <../../../applications/essentials/contacts>` in the :guilabel:`Contacts` app
- :ref:`Mailing List Contacts <marketing/mailing-list/contacts>` in the :guilabel:`Email
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
:alt: A warning message indicating the AI was unable to complete the request.
.. _ai/add-a-new-field/properties:
Add via edit properties
-----------------------