411 lines
15 KiB
Markdown
411 lines
15 KiB
Markdown
# Views
|
|
|
|
Views are the interface that allows displaying the data contained in a {doc}`model
|
|
<models_modules_apps>`. One model can have several views, which are simply different ways to show
|
|
the same data. In Studio, views are organized into four categories: {ref}`general
|
|
<studio/views/general>`, {ref}`multiple records <studio/views/multiple-records>`, {ref}`timeline
|
|
<studio/views/timeline>`, and {ref}`reporting <studio/views/reporting>`.
|
|
|
|
::::{tip}
|
|
- To change the default view of a model, {ref}`access Studio <studio/access>`, go to
|
|
{guilabel}`Views`, click the {icon}`fa-ellipsis-v` ({guilabel}`ellipsis`) icon next to the
|
|
desired view, and click {guilabel}`Set as Default`.
|
|
|
|
- You can modify views using the built-in XML editor: Activate the {ref}`Developer mode
|
|
<developer-mode>`, go to the view you want to edit, select the {guilabel}`View` tab, and
|
|
click {guilabel}`</> XML`.
|
|
|
|
:::{important}
|
|
If you are editing a view using the XML editor, avoid making changes directly to standard
|
|
and inherited views, as these would be reset and lost during updates or module upgrades.
|
|
Always make sure you select the right Studio inherited views: When you modify a
|
|
view in Studio by dragging and dropping a new field, for example, a specific Studio
|
|
inherited view and its corresponding XPath, which defines the modified part of the view, are
|
|
automatically generated.
|
|
:::
|
|
::::
|
|
|
|
(studio-views-general)=
|
|
|
|
## General views
|
|
|
|
:::{note}
|
|
The settings described below are found under the view's {guilabel}`View` tab unless specified
|
|
otherwise.
|
|
:::
|
|
|
|
(studio-views-general-form)=
|
|
|
|
### Form
|
|
|
|
The {guilabel}`Form` {icon}`fa-address-card` view is used when creating and editing records, such as
|
|
contacts, sales orders, products, etc.
|
|
|
|
- To structure a form, drag and drop the {guilabel}`Tabs and Columns` element found under the
|
|
{guilabel}`+ Add` tab.
|
|
|
|
- To prevent users from creating, editing, or deleting records, untick {guilabel}`Can Create`,
|
|
{guilabel}`Can Edit`, or {guilabel}`Can Delete`.
|
|
|
|
- To add a button, click {guilabel}`Add a button` at the top of the form, enter a {guilabel}`Label`,
|
|
and select the button's action:
|
|
|
|
- {guilabel}`Run a Server Action`: select the {ref}`server action <reference/actions/server>` to
|
|
be executed from the dropdown list;
|
|
- {guilabel}`Call a method`: specify an existing Python method already defined in Odoo.
|
|
|
|
- To change a button's label or style, click the button and edit its {guilabel}`Label` or
|
|
{guilabel}`Class` (either `btn-primary` or `btn-secondary`) in the {guilabel}`Properties` tab.
|
|
|
|
- To add a smart button, click the {icon}`fa-plus-square` ({guilabel}`plus`) icon in the top-right
|
|
corner of the form. Enter a {guilabel}`Label`, choose an {guilabel}`Icon`, and select a
|
|
{ref}`related field <studio/fields/relational-fields/related-field>`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/form-sales-order.png
|
|
:alt: Sales order model's Form view
|
|
```
|
|
|
|
(studio-views-general-activity)=
|
|
|
|
### Activity
|
|
|
|
The {guilabel}`Activity` {icon}`fa-clock-o` view is used to schedule and have an overview of
|
|
activities (emails, calls, etc.) linked to records.
|
|
|
|
:::{note}
|
|
This view can only be modified within Studio by editing the XML code.
|
|
:::
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/activity-lead-opportunity.png
|
|
:alt: Lead/Opportunity model's Activity view
|
|
```
|
|
|
|
(studio-views-general-search)=
|
|
|
|
### Search
|
|
|
|
The {guilabel}`Search` {icon}`oi-search` view is added on top of other views to filter, group, and
|
|
search records.
|
|
|
|
- To add custom {guilabel}`Filters` and structure them using {guilabel}`Separators`, go to the
|
|
{guilabel}`+ Add` tab and drag and drop them under {guilabel}`Filters`.
|
|
- To add an existing field under the search dropdown menu, go to the {guilabel}`+ Add` tab and
|
|
drag and drop it under {guilabel}`Autocompletion Fields`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/search-project-kanban.png
|
|
:alt: Project model's Search view on the Kanban view
|
|
```
|
|
|
|
(studio-views-multiple-records)=
|
|
|
|
## Multiple records views
|
|
|
|
:::{note}
|
|
The settings described below are found under the view's {guilabel}`View` tab unless specified
|
|
otherwise.
|
|
:::
|
|
|
|
(studio-views-multiple-records-kanban)=
|
|
|
|
### Kanban
|
|
|
|
The {guilabel}`Kanban` {icon}`oi-view-kanban` view is often used to support business flows by moving
|
|
records across stages or as an alternative way to display records inside *cards*.
|
|
|
|
:::{note}
|
|
If the {guilabel}`Kanban` view exists, it is used by default to display data on mobile devices
|
|
instead of the {ref}`List view <studio/views/multiple-records/list>`.
|
|
:::
|
|
|
|
- To prevent users from creating new records, untick {guilabel}`Can Create`.
|
|
- To create records directly within the view, in a minimalistic form, enable {guilabel}`Quick
|
|
Create`.
|
|
- To set a default grouping for records, select a field under {guilabel}`Default Group By`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/kanban-project.png
|
|
:alt: Project model's Kanban view
|
|
```
|
|
|
|
(studio-views-multiple-records-list)=
|
|
|
|
### List
|
|
|
|
The {guilabel}`List` {icon}`oi-view-list` view is used to overview many records at once, look for
|
|
records, and edit simple records.
|
|
|
|
- To prevent users from creating, editing, or deleting records, untick {guilabel}`Can Create`,
|
|
{guilabel}`Can Edit`, or {guilabel}`Can Delete`.
|
|
|
|
- To create and edit records directly within the view, select either {guilabel}`Add record at the
|
|
bottom`, {guilabel}`Add record on top` or {guilabel}`Open form view` under
|
|
{guilabel}`When Creating Record`.
|
|
|
|
:::{note}
|
|
This prevents users from opening records in {ref}`Form view <studio/views/general/form>` from the
|
|
{guilabel}`List` view.
|
|
:::
|
|
|
|
- To edit several records at once, tick {guilabel}`Enable Mass Editing`.
|
|
|
|
- To change the way records are sorted by default, select a field under {guilabel}`Sort By`.
|
|
|
|
- To set a default grouping for records, select a field under {guilabel}`Default Group By`.
|
|
|
|
- To add a button, click {guilabel}`Add a button` at the top of the list, enter a {guilabel}`Label`,
|
|
and select the button's action:
|
|
|
|
- {guilabel}`Run a Server Action`: select the {ref}`server action <reference/actions/server>` to
|
|
be executed from the dropdown list;
|
|
- {guilabel}`Call a method`: specify an existing Python method already defined in Odoo.
|
|
|
|
:::{tip}
|
|
To add a {icon}`oi-draggable` ({guilabel}`drag handle`) icon to reorder records manually, add an
|
|
{ref}`Integer field <studio/fields/simple-fields/integer>` with the {guilabel}`Handle` widget.
|
|
|
|
```{image} views/list-drag-handle.png
|
|
:alt: Drag handle icon enabling to sort records manually in List view
|
|
```
|
|
:::
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/list-sales-order.png
|
|
:alt: Sales order model's List view
|
|
```
|
|
|
|
(studio-views-multiple-records-map)=
|
|
|
|
### Map
|
|
|
|
The {guilabel}`Map` {icon}`fa-map-marker` view is used to display records on a map. For example, it
|
|
is used in the Field Service app to plan an itinerary between different tasks.
|
|
|
|
:::{note}
|
|
A {ref}`Many2One field <studio/fields/relational-fields/many2one>` linked to the *Contact* model
|
|
is required to activate the view, as the contact address is used to position records on the map.
|
|
:::
|
|
|
|
- To select which kind of contact should be used on the map, select it under {guilabel}`Contact
|
|
Field`.
|
|
- To hide the name or the address of the record, tick {guilabel}`Hide Name` or {guilabel}`Hide
|
|
Address`.
|
|
- To add information from other fields, select them under {guilabel}`Additional Fields`.
|
|
- To have a route suggested between the different records, tick {guilabel}`Enable Routing` and
|
|
select which field should be used to sort records for the routing.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/map-task.png
|
|
:alt: Task model's Map view
|
|
```
|
|
|
|
(studio-views-timeline)=
|
|
|
|
## Timeline views
|
|
|
|
:::{note}
|
|
- When you first activate one of the timeline views, you need to select which {ref}`Date
|
|
<studio/fields/simple-fields/date>` or {ref}`Date & Time
|
|
<studio/fields/simple-fields/date-time>` fields on your model should be used to define when the
|
|
records start and stop in order to display them on the view. You can modify the
|
|
{guilabel}`Start Date Field` and {guilabel}`Stop Date Field` after activating the view.
|
|
- The settings described below are found under the view's {guilabel}`View` tab unless specified
|
|
otherwise.
|
|
:::
|
|
|
|
(studio-views-timeline-calendar)=
|
|
|
|
### Calendar
|
|
|
|
The {guilabel}`Calendar` {icon}`fa-calendar` view is used to overview and manage records inside a
|
|
calendar.
|
|
|
|
- To create records directly within the view instead of opening the {ref}`Form view
|
|
<studio/views/general/form>`, enable {guilabel}`Quick Create`.
|
|
|
|
:::{note}
|
|
This only works on specific models that can be *quick-created* using only a *name*. However,
|
|
most models do not support quick creation and open the {guilabel}`Form` view to fill in the
|
|
required fields.
|
|
:::
|
|
|
|
- To color records on the calendar, select a field under {guilabel}`Color`. All the records sharing
|
|
the same value for that field are displayed using the same color.
|
|
|
|
:::{note}
|
|
As the number of colors is limited, the same color can end up being assigned to different
|
|
values.
|
|
:::
|
|
|
|
- To display events lasting the whole day at the top of the calendar, select a {ref}`Checkbox field
|
|
<studio/fields/simple-fields/checkbox>` that specifies if the event lasts the whole day.
|
|
|
|
- To choose the default time scale used to display events, select {guilabel}`Day`, {guilabel}`Week`,
|
|
{guilabel}`Month`, or {guilabel}`Year` under {guilabel}`Default Display Mode`.
|
|
|
|
:::{note}
|
|
You can also use a {guilabel}`Delay Field` to display the duration of the event in hours by
|
|
selecting a {ref}`Decimal <studio/fields/simple-fields/decimal>` or {ref}`Integer
|
|
<studio/fields/simple-fields/integer>` field on the model which specifies the duration of the
|
|
event. However, if you set an {guilabel}`End Date Field`, the {guilabel}`Delay Field` will not be
|
|
taken into account.
|
|
:::
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/calendar-event.png
|
|
:alt: Calendar Event model's Calendar view
|
|
```
|
|
|
|
(studio-views-timeline-cohort)=
|
|
|
|
### Cohort
|
|
|
|
The {guilabel}`Cohort` {icon}`oi-view-cohort` view is used to examine the life cycle of records over
|
|
a time period. For example, it is used in the Subscriptions app to view the subscriptions' retention
|
|
rate.
|
|
|
|
- To display a measure (i.e., the aggregated value of a given field) by default on the view, select
|
|
a {guilabel}`Measure Field`.
|
|
- To choose which time interval is used by default to group results, select {guilabel}`Day`,
|
|
{guilabel}`Week`, {guilabel}`Month`, or {guilabel}`Year` under {guilabel}`Interval`.
|
|
- To change the cohort {guilabel}`Mode`, select either {guilabel}`Retention` {dfn}`the percentage
|
|
of records staying over a period of time, it starts at 100% and decreases with time` or
|
|
{guilabel}`Churn` {dfn}`the percentage of records moving out over a period of time - it starts at
|
|
0% and increases with time`.
|
|
- To change the way the {guilabel}`Timeline` (i.e., the columns) progresses, select either
|
|
{guilabel}`Forward` (from 0 to +15) or {guilabel}`Backward` (from -15 to 0). For most purposes,
|
|
the {guilabel}`Forward` timeline is used.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/cohort-subscription.png
|
|
:alt: Subscription model's Cohort view
|
|
```
|
|
|
|
(studio-views-timeline-gantt)=
|
|
|
|
### Gantt
|
|
|
|
The {guilabel}`Gantt` {icon}`fa-tasks` view is used to forecast and examine the overall progress of
|
|
records. Records are represented by a bar under a time scale.
|
|
|
|
- To prevent users from creating or editing records, untick {guilabel}`Can Create` or {guilabel}`Can
|
|
Edit`.
|
|
|
|
- To fill cells in gray whenever a record should not be created there (e.g., on weekends for
|
|
employees), tick {guilabel}`Display Unavailability`.
|
|
|
|
:::{note}
|
|
The underlying model must support this feature, and support for it cannot be added using
|
|
Studio. It is supported for the Project, Time Off, Planning, and Manufacturing apps.
|
|
:::
|
|
|
|
- To show a total row at the bottom, tick {guilabel}`Display Total row`.
|
|
|
|
- To collapse multiple records in a single row, tick {guilabel}`Collapse First Level`.
|
|
|
|
- To choose which way records are grouped by default on rows (e.g., per employee or project), select
|
|
a field under {guilabel}`Default Group by`.
|
|
|
|
- To define a default time scale to view records, select {guilabel}`Day`, {guilabel}`Week`,
|
|
{guilabel}`Month`, or {guilabel}`Year` under {guilabel}`Default Scale`.
|
|
|
|
- To color records on the view, select a field under {guilabel}`Color`. All the records sharing the
|
|
same value for that field are displayed using the same color.
|
|
|
|
:::{note}
|
|
As the number of colors is limited, the same color can be assigned to different values.
|
|
:::
|
|
|
|
- To specify with which degree of precision each time scale should be divided by, select
|
|
{guilabel}`Quarter Hour`, {guilabel}`Half Hour`, or {guilabel}`Hour` under {guilabel}`Day
|
|
Precision`, {guilabel}`Half Day` or {guilabel}`Day` under {guilabel}`Week Precision`, and
|
|
{guilabel}`Month Precision`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/gantt-planning.png
|
|
:alt: Planning Shift model's Gantt view
|
|
```
|
|
|
|
(studio-views-reporting)=
|
|
|
|
## Reporting views
|
|
|
|
:::{note}
|
|
The settings described below are found under the view's {guilabel}`View` tab unless specified
|
|
otherwise.
|
|
:::
|
|
|
|
(studio-views-reporting-pivot)=
|
|
|
|
### Pivot
|
|
|
|
The {guilabel}`Pivot` {icon}`oi-view-pivot` view is used to explore and analyze the data contained
|
|
in records in an interactive manner. It is especially useful to aggregate numeric data, create
|
|
categories, and drill down the data by expanding and collapsing different levels of data.
|
|
|
|
- To access all records whose data is aggregated under a cell, tick {guilabel}`Access records from
|
|
cell`.
|
|
- To divide the data into different categories, select field(s) under {guilabel}`Column grouping`,
|
|
{guilabel}`Row grouping - First level`, or {guilabel}`Row grouping - Second level`.
|
|
- To add different types of data to be measured using the view, select a field under
|
|
{guilabel}`Measures`.
|
|
- To display a count of records that made up the aggregated data in a cell, tick {guilabel}`Display
|
|
count`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/pivot-purchase-report.png
|
|
:alt: Purchase Report model's Pivot view
|
|
```
|
|
|
|
(studio-views-reporting-graph)=
|
|
|
|
### Graph
|
|
|
|
The {guilabel}`Graph` {icon}`fa-area-chart` view is used to showcase data from records in a bar,
|
|
line, or pie chart.
|
|
|
|
- To change the default chart, select {guilabel}`Bar`, {guilabel}`Line`, or {guilabel}`Pie` under
|
|
{guilabel}`Type`.
|
|
- To choose a default data dimension (category), select a field under {guilabel}`First dimension`
|
|
and, if needed, another under {guilabel}`Second dimension`.
|
|
- To select a default type of data to be measured using the view, select a field under
|
|
{guilabel}`Measure`.
|
|
- *For Bar and Line charts only*: To sort the different data categories by their value, select
|
|
{guilabel}`Ascending` (from lowest to highest value) or {guilabel}`Descending` (from highest to
|
|
lowest) under {guilabel}`Sorting`.
|
|
- *For Bar and Pie charts only*: To access all records whose data is aggregated under a data
|
|
category on the chart, tick {guilabel}`Access records from graph`.
|
|
- *For Bar charts only*: When using two data dimensions (categories), display the two columns on top
|
|
of each other by default by ticking {guilabel}`Stacked graph`.
|
|
|
|
```{eval-rst}
|
|
.. example::
|
|
|
|
.. image:: views/graph-sales-report.png
|
|
:alt: Sales Analysis Report model's Bar chart on Graph view
|
|
:scale: 75%
|
|
```
|
|
|