From 8bf57d23e37b9d214698c970e2ddace06a8a40a6 Mon Sep 17 00:00:00 2001 From: mcsi-odoo Date: Wed, 8 Oct 2025 16:25:09 +0200 Subject: [PATCH] [REF] spreadsheet: update to structure before adding new content task-n/a --- .../applications/productivity/dashboards.rst | 9 +- .../build_and_customize_dashboards.rst | 27 +- .../applications/productivity/spreadsheet.rst | 204 +------------- .../productivity/spreadsheet/get_started.rst | 251 ++++++++++++++++++ .../{ => get_started}/locale-difference.png | Bin .../pivot-table-global-filters.png | Bin 46294 -> 0 bytes .../productivity/spreadsheet/insert.rst | 208 ++------------- .../productivity/spreadsheet/templates.rst | 65 ----- .../spreadsheet/visualize_data.rst | 11 + .../spreadsheet/visualize_data/charts.rst | 216 +++++++++++++++ .../charts}/chart-type-area-stacked.png | Bin .../charts}/chart-type-area.png | Bin .../charts}/chart-type-bar-stacked.png | Bin .../charts}/chart-type-bar.png | Bin .../charts}/chart-type-column-stacked.png | Bin .../charts}/chart-type-column.png | Bin .../charts}/chart-type-doughnut.png | Bin .../charts}/chart-type-filled-radar.png | Bin .../charts}/chart-type-gauge.png | Bin .../charts}/chart-type-geo.png | Bin .../charts}/chart-type-line-combo.png | Bin .../charts}/chart-type-line-stacked.png | Bin .../charts}/chart-type-line.png | Bin .../charts}/chart-type-pie.png | Bin .../charts}/chart-type-population-pyramid.png | Bin .../charts}/chart-type-radar.png | Bin .../charts}/chart-type-scatter.png | Bin .../charts}/chart-type-scorecard.png | Bin .../charts}/chart-type-waterfall.png | Bin .../visualize_data/create-chart.png | Bin 0 -> 39044 bytes .../spreadsheet/work_with_data.rst | 12 + .../dynamic_pivot_tables.rst | 0 .../calculated-measure.png | Bin .../dynamic_pivot_tables/modify-function.png | Bin .../pivot-function-dynamic.png | Bin .../pivot-function-static.png | Bin .../pivot-table-error.png | Bin .../{ => work_with_data}/functions.rst | 0 .../{ => work_with_data}/global_filters.rst | 2 +- .../dashboard-global-filters.png | Bin .../global_filters/example-date.png | Bin .../global_filters/example-relation.png | Bin .../global_filters/example-text.png | Bin .../global_filters/field-matching-date.png | Bin .../field-matching-relation.png | Bin .../global_filters/field-matching-text.png | Bin 46 files changed, 543 insertions(+), 462 deletions(-) create mode 100644 content/applications/productivity/spreadsheet/get_started.rst rename content/applications/productivity/spreadsheet/{ => get_started}/locale-difference.png (100%) delete mode 100644 content/applications/productivity/spreadsheet/global_filters/pivot-table-global-filters.png delete mode 100644 content/applications/productivity/spreadsheet/templates.rst create mode 100644 content/applications/productivity/spreadsheet/visualize_data.rst create mode 100644 content/applications/productivity/spreadsheet/visualize_data/charts.rst rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-area-stacked.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-area.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-bar-stacked.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-bar.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-column-stacked.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-column.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-doughnut.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-filled-radar.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-gauge.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-geo.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-line-combo.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-line-stacked.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-line.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-pie.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-population-pyramid.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-radar.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-scatter.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-scorecard.png (100%) rename content/applications/productivity/spreadsheet/{insert => visualize_data/charts}/chart-type-waterfall.png (100%) create mode 100644 content/applications/productivity/spreadsheet/visualize_data/create-chart.png create mode 100644 content/applications/productivity/spreadsheet/work_with_data.rst rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables.rst (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables/calculated-measure.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables/modify-function.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables/pivot-function-dynamic.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables/pivot-function-static.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/dynamic_pivot_tables/pivot-table-error.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/functions.rst (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters.rst (99%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/dashboard-global-filters.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/example-date.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/example-relation.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/example-text.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/field-matching-date.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/field-matching-relation.png (100%) rename content/applications/productivity/spreadsheet/{ => work_with_data}/global_filters/field-matching-text.png (100%) diff --git a/content/applications/productivity/dashboards.rst b/content/applications/productivity/dashboards.rst index 3287a9d455..cf5cda5b4f 100644 --- a/content/applications/productivity/dashboards.rst +++ b/content/applications/productivity/dashboards.rst @@ -103,9 +103,10 @@ In addition to consulting a dashboard for a high-level overview of key business possible to interact with the dashboard for a more detailed analysis: - **Filter data**: Most standard dashboards have one or more :doc:`global filters - `, shown as dropdown menus, at the top of the dashboard. These filters - allow all the data on the dashboard to be filtered at the same time, for example, to show data - only for a specific period of time, or for one or more salespeople or customers. + `, shown as dropdown menus, at the top of the + dashboard. These filters allow all the data on the dashboard to be filtered at the same time, for + example, to show data only for a specific period of time, or for one or more salespeople or + customers. - **Open underlying database records**: To access database records referenced by a dashboard, click on the relevant value in a table or on a data point on a chart. Doing so opens either the @@ -203,7 +204,7 @@ actions are possible: :ref:`user group `. Edit this if needed via the configuration page of the relevant dashboard section. - It is also possible to :ref:`convert a spreadsheet into a dashboard - ` and add it to a dashboard section + ` and add it to a dashboard section starting from the spreadsheet in the Documents app. .. _dashboards/access-and-sharing: diff --git a/content/applications/productivity/dashboards/build_and_customize_dashboards.rst b/content/applications/productivity/dashboards/build_and_customize_dashboards.rst index a8fc987be2..27fe354614 100644 --- a/content/applications/productivity/dashboards/build_and_customize_dashboards.rst +++ b/content/applications/productivity/dashboards/build_and_customize_dashboards.rst @@ -14,8 +14,8 @@ Build a dashboard ================= In its most simple terms, building a dashboard involves :doc:`inserting Odoo data into a spreadsheet -<../../../applications/productivity/spreadsheet/insert>` then :ref:`converting that spreadsheet into -a dashboard `. +<../spreadsheet/insert>` then :ref:`converting that spreadsheet into +a dashboard `. However, to build a dashboard that delivers relevant and valuable insights, it is important to consider the process in terms of three key stages: :ref:`preparation @@ -33,10 +33,10 @@ This stage involves: - defining the purpose of the dashboard, in other words, the business questions it needs to answer, and deciding what data would answer those questions; - determining where to find the relevant Odoo data and deciding which :doc:`type of view - <../../../applications/studio/views>` (i.e., list, pivot table, or chart) is most suited for the + <../../studio/views>` (i.e., list, pivot table, or chart) is most suited for the data analysis needed; - preparing the Odoo data by refining the views to focus on the most relevant information, e.g., by - using :doc:`search filters <../../../applications/essentials/search>`, by making only certain list + using :doc:`search filters <../../essentials/search>`, by making only certain list fields visible, or by deciding which dimensions and measures a pivot table should use; - sourcing any other information needed to support the dashboard. @@ -47,14 +47,13 @@ Data insertion and manipulation This stage involves: -- :doc:`inserting the prepared lists, pivot tables or charts - <../../../applications/productivity/spreadsheet/insert>` into the spreadsheet you will use to - build your dashboard; +- :doc:`inserting the prepared lists, pivot tables or charts <../spreadsheet/insert>` into the + spreadsheet you will use to build your dashboard; - manipulating the data, if needed, to be able to draw the necessary insights. This may involve performing calculations or creating custom metrics using :doc:`standard or Odoo-specific functions - and formulas <../../../applications/productivity/spreadsheet/functions>`, referencing data from + and formulas <../spreadsheet/work_with_data/functions>`, referencing data from various sources within the spreadsheet, or :doc:`converting static pivot tables to dynamic pivot - tables <../../../applications/productivity/spreadsheet/dynamic_pivot_tables>`. + tables <../spreadsheet/work_with_data/dynamic_pivot_tables>`. .. _build_and_customize_dashboards/build-visualization: @@ -72,11 +71,11 @@ This stage involves: - :ref:`inserting clickable links `, if relevant, to provide access to Odoo menu items, URLs, or other sheets within the same spreadsheet if these should also be accessible from the front end of your dashboard; -- :doc:`creating global filters <../../../applications/productivity/spreadsheet/global_filters>` to +- :doc:`creating global filters <../spreadsheet/work_with_data/global_filters>` to allow users to tailor the view to their needs; - :ref:`converting the spreadsheet into a dashboard - `, determining whether to add the dashboard - to an existing or new dashboard section, and :ref:`managing access rights to the dashboard + `, determining whether to add the dashboard to an + existing or new dashboard section, and :ref:`managing access rights to the dashboard `. .. tip:: @@ -181,7 +180,7 @@ Dashboards can be customized in various ways, such as by: - adding new tables and charts based on previously inserted or :ref:`newly inserted Odoo data `. This requires a similar approach to :ref:`building a dashboard from scratch `; -- :doc:`adding new global filters <../../../applications/productivity/spreadsheet/global_filters>` +- :doc:`adding new global filters <../spreadsheet/work_with_data/global_filters>` or editing or deleting existing ones; - :ref:`adding or editing clickable links ` to Odoo menus, URLs, or to other sheets within the same spreadsheet. @@ -220,4 +219,4 @@ chart is inserted on the first sheet of the spreadsheet. .. seealso:: :doc:`Inserting Odoo data into a spreadsheet - <../../../applications/productivity/spreadsheet/insert>` + <../spreadsheet/insert>` diff --git a/content/applications/productivity/spreadsheet.rst b/content/applications/productivity/spreadsheet.rst index 4eb398bca6..f727b90749 100644 --- a/content/applications/productivity/spreadsheet.rst +++ b/content/applications/productivity/spreadsheet.rst @@ -1,4 +1,6 @@ +:nosearch: :show-content: +:hide-page-toc: =========== Spreadsheet @@ -7,11 +9,10 @@ Spreadsheet .. toctree:: :titlesonly: - spreadsheet/templates - spreadsheet/functions + spreadsheet/get_started spreadsheet/insert - spreadsheet/dynamic_pivot_tables - spreadsheet/global_filters + spreadsheet/work_with_data + spreadsheet/visualize_data **Odoo Spreadsheet** allows you to organize, manipulate, analyze, and visualize data. It offers similar functionality to other spreadsheet solutions with the added benefit of integrating directly @@ -19,15 +20,15 @@ with your Odoo database. With Odoo Spreadsheet, you can: -- :ref:`create spreadsheets ` or :ref:`upload files - ` and open them as Odoo spreadsheets -- :doc:`create templates ` -- :doc:`use functions, including Odoo-specific functions ` +- :ref:`create spreadsheets ` or :ref:`upload files + ` and open them as Odoo spreadsheets +- :ref:`create and use templates ` +- :doc:`use functions, including Odoo-specific functions ` - :doc:`insert and link to Odoo data ` -- :doc:`create and use dynamic pivot tables ` +- :doc:`create and use dynamic pivot tables ` - filter data across multiple Odoo data sources using :doc:`global filters - ` -- visualize data using charts and formatting + ` +- visualize data using :doc:`charts ` and formatting - share files internally and externally The Spreadsheet module is part of **Odoo Documents**. @@ -44,184 +45,3 @@ The Spreadsheet module is part of **Odoo Documents**. ` can also be created from scratch, starting from an Odoo spreadsheet; any subsequent :ref:`modifications ` are performed via Dashboards. - -.. _spreadsheet/create-new: - -Create a new spreadsheet -======================== - -To create a new spreadsheet: - -#. Open Odoo Documents and navigate to the section or folder in which the spreadsheet should be - created. -#. Click :guilabel:`New` and select :guilabel:`Spreadsheet`. - - .. tip:: - Alternatively, from the :icon:`fa-folder-o` :guilabel:`All` folder, click :guilabel:`New` and - select :guilabel:`Spreadsheet`, then select in which :guilabel:`Workspace` (i.e., folder) the - spreadsheet should be created. If :ref:`file centralization ` - has been enabled for spreadsheets, you will also have the option to save the new spreadsheet - in the :guilabel:`Spreadsheet` folder. - -#. Click :guilabel:`Blank spreadsheet` or, to create a new spreadsheet using an existing - :doc:`template `, select the relevant template. -#. Click :guilabel:`Create`. -#. Click on `Untitled spreadsheet` at the top of the screen to edit the name of the spreadsheet. - -.. tip:: - It is also possible to create a new spreadsheet by: - - - clicking :menuselection:`File -->` :icon:`os-clear-and-reload` :menuselection:`New` from the - menu bar of an open spreadsheet; or - - :doc:`inserting a list, pivot table, or chart from another Odoo app ` into - a new spreadsheet directly from the app in question. - - In these cases, the new spreadsheet is saved in Odoo Documents in the :icon:`fa-hdd-o` - :guilabel:`My Drive` personal folder or, if :ref:`file centralization - ` has been enabled for spreadsheets, in the - :guilabel:`Spreadsheet` folder. - -.. _spreadsheet/upload-files: - -Upload files -============ - -Spreadsheets in `.xlsx` format can be uploaded into Odoo Documents and opened as an Odoo -spreadsheet. To do so: - -#. Open Odoo Documents and navigate to the section or folder where the spreadsheet should be saved. -#. Click :guilabel:`New` and select :guilabel:`Upload`. -#. Select the relevant `.xlsx` file and click :guilabel:`Open`. -#. Click on the uploaded file. -#. By default, the original `.xlsx` file is deleted when it is opened as an Odoo Spreadsheet. To - preserve the original file in the same folder in Odoo Spreadsheet, disable :guilabel:`Send source - file to trash`. -#. Click :guilabel:`Open with Odoo Spreadsheet`. - -The file is now an Odoo spreadsheet and can be fully edited in Odoo Spreadsheet. - -.. _spreadsheet/manage-spreadsheets: - -Manage spreadsheets -=================== - -Users with :guilabel:`Editor` rights to a specific spreadsheet have various options for managing the -spreadsheet via the :guilabel:`File` menu: - -- :icon:`os-copy-file` :guilabel:`Make a copy`: creates a duplicate of the current spreadsheet with - the same :ref:`regional settings ` (or locale). -- :icon:`os-save` :guilabel:`Save as template`: allows the current spreadsheet to be used as a - :doc:`template ` for future spreadsheets. -- :icon:`os-download` :guilabel:`Download`: downloads the spreadsheet in `.xlsx` format. - - .. important:: - When you download a spreadsheet in `.xlsx` format, any spreadsheet formulas that retrieve Odoo - data from your database, e.g., via an :doc:`inserted list ` or via other - :doc:`Odoo-specific functions `, are converted to the values they would - have returned at the moment the spreadsheet was downloaded. - - .. tip:: - Users with :guilabel:`Viewer` rights can also download a spreadsheet in `.xlsx` format. - -- :icon:`os-version-history` :guilabel:`See version history`: provides read-only :ref:`access to - previous versions ` of the current spreadsheet, - which can be named and restored if needed. -- :icon:`fa-print` :guilabel:`Print`: prints a copy of the spreadsheet on a connected printer. -- :icon:`os-cog` :guilabel:`Settings`: allows you to view and change the :ref:`locale - ` of the current spreadsheet. -- :icon:`os-add-to-dashboard` :guilabel:`Add to dashboard`: :ref:`converts - ` the current spreadsheet into an Odoo - dashboard. - -.. _spreadsheet/manage-spreadsheets/version-history: - -Version history ---------------- - -Odoo Spreadsheet automatically saves versions of spreadsheets as changes are made, allowing users -with :guilabel:`Editor` rights to browse and restore previous versions. - -To access the version history of a spreadsheet, click :menuselection:`File -->` -:icon:`os-version-history` :menuselection:`See version history` from the menu bar. Saved versions -appear in a panel on the right of the spreadsheet. The name of the user who made the change is -shown, as well as the date and time of the change. - -The following actions are possible: - -- **View an earlier version** in read-only format by clicking on the relevant version. -- **Restore an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` - then :guilabel:`Restore this version`. -- **Copy an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` then - :menuselection:`Make a copy`. A copy of the version opens as a new spreadsheet. -- **Create named versions** by clicking on the date and time of the relevant version and entering - the desired name. The date and time of the version are then displayed below the new name. - -.. tip:: - When viewing an earlier, read-only version of a spreadsheet, the following actions are still - possible: - - - Search the spreadsheet by clicking :menuselection:`Edit -->` :icon:`fa-search` - :menuselection:`Find and replace` or using the shortcut `Ctrl` + `H`. - - Copy an individual cell or selected area by clicking :menuselection:`Edit -->` - :icon:`fa-clipboard` :menuselection:`Copy` or using the shortcut `Ctrl` + `C`. - -.. _spreadsheet/manage-spreadsheets/regional-settings: - -Regional settings ------------------ - -To ensure data is displayed consistently for all users, the regional settings (or locale) of a -spreadsheet, are managed at spreadsheet level. This locale affects the following settings and -formats: - -- thousand and decimal separators -- date and time formats -- first day of the week - -By default, a new spreadsheet inherits the regional settings of the user who created it. For -example, any spreadsheets created by a user whose language is set to :guilabel:`French (BE) / -Français (BE)` will follow Belgian French conventions. - -A spreadsheet's locale can be viewed and changed at any time by a user with :guilabel:`Editor` -rights. To view the locale of a spreadsheet, click :menuselection:`File -->` :icon:`os-cog` -:menuselection:`Settings` from the menu bar. The :guilabel:`Spreadsheet settings` panel opens on the -right of the spreadsheet. To change the locale, select the appropriate locale from the dropdown. - -.. tip:: - When you open a spreadsheet that has a different locale to that of your user profile, a blue - :icon:`fa-globe` :guilabel:`(globe)` icon appears at the top right of the spreadsheet. Hovering - over the icon reveals a warning message that indicates the spreadsheet locale and highlights - formats that differ. - - .. image:: spreadsheet/locale-difference.png - :alt: Warning about difference between user and spreadsheet locale - - If no :icon:`fa-globe` :guilabel:`(globe)` icon is shown, this means the spreadsheet's locale is - the same as that of your user profile. - -.. _spreadsheet/manage-spreadsheets/convert-to-dashboard: - -Convert a spreadsheet into a dashboard --------------------------------------- - -A user with the appropriate :ref:`access rights ` can convert an Odoo -spreadsheet into a dashboard that is then accessible via -:doc:`Odoo Dashboards <../../../applications/productivity/dashboards>`. To do so: - -#. Click :menuselection:`File -->` :icon:`os-add-to-dashboard` :menuselection:`Add to dashboard` - from the menu bar. -#. Enter the :guilabel:`Dashboard Name`. -#. Select the relevant :guilabel:`Dashboard Section` from the dropdown or, to create a new dashboard - section, type the name of the new section, then click :guilabel:`Create`. -#. If necessary, modify the :guilabel:`Access Groups` to determine which :ref:`user groups - ` can access the dashboard. -#. Click :guilabel:`Create`. - -.. tip:: - - By default, the first tab of the spreadsheet serves as the front end of the dashboard. - - It is also possible to convert a spreadsheet to a dashboard from within the :ref:`Dashboard - configuration settings `, by directly adding the spreadsheet to - an existing or new dashboard section. - - After a spreadsheet has been converted to a dashboard, it is deleted from Odoo Documents. Any - subsequent :ref:`modifications ` need to be made via - Odoo Dashboards. diff --git a/content/applications/productivity/spreadsheet/get_started.rst b/content/applications/productivity/spreadsheet/get_started.rst new file mode 100644 index 0000000000..3005c0df00 --- /dev/null +++ b/content/applications/productivity/spreadsheet/get_started.rst @@ -0,0 +1,251 @@ +=========== +Get started +=========== + +.. _spreadsheet/get-started/create-spreadsheet: + +Create a new spreadsheet +======================== + +To create a new spreadsheet: + +#. Open Odoo Documents and navigate to the section or folder in which the spreadsheet should be + created. +#. Click :guilabel:`New` and select :guilabel:`Spreadsheet`. + + .. tip:: + Alternatively, from the :icon:`fa-folder-o` :guilabel:`All` folder, click :guilabel:`New` and + select :guilabel:`Spreadsheet`, then select in which :guilabel:`Workspace` (i.e., folder) the + spreadsheet should be created. If :ref:`file centralization ` + has been enabled for spreadsheets, you will also have the option to save the new spreadsheet + in the :guilabel:`Spreadsheet` folder. + +#. Click :guilabel:`Blank spreadsheet` or, to create a new spreadsheet using an existing + :ref:`template `, select the relevant template. +#. Click :guilabel:`Create`. +#. Click on `Untitled spreadsheet` at the top of the screen to edit the name of the spreadsheet. + +.. tip:: + It is also possible to create a new spreadsheet by: + + - clicking :menuselection:`File -->` :icon:`os-clear-and-reload` :menuselection:`New` from the + menu bar of an open spreadsheet; or + - :doc:`inserting a list, pivot table, or chart from another Odoo app ` into + a new spreadsheet directly from the app in question. + + In these cases, the new spreadsheet is saved in Odoo Documents in the :icon:`fa-hdd-o` + :guilabel:`My Drive` personal folder or, if :ref:`file centralization + ` has been enabled for spreadsheets, in the + :guilabel:`Spreadsheet` folder. + +.. _spreadsheet/get-started/templates: + +Templates +--------- + +Spreadsheet templates allow you to quickly create spreadsheets without starting from scratch. For +example, you could create a template for a monthly budget report or a quarterly sales commission +report. + +.. note:: + Templates are available to all users on the database. + +.. _spreadsheet/get-started/templates-create: + +Create a template +~~~~~~~~~~~~~~~~~ + +Any spreadsheet can be saved as a template. Open the relevant spreadsheet or :ref:`create a new one +`. From the menu bar, click :menuselection:`File -->` :icon:`os-save` +:menuselection:`Save as template`. Modify the default :guilabel:`Template Name` if needed and +click :guilabel:`Confirm`. + +.. important:: + Once a spreadsheet is saved as a template, any further changes to the open spreadsheet are + saved only in that spreadsheet. To make changes to the template, you need to :ref:`edit + the template `. + +You can also create a template by :ref:`making a copy of an existing template and editing it +`. + +.. _spreadsheet/get-started/templates-use: + +Use templates +~~~~~~~~~~~~~ + +To create a new spreadsheet using a template, open the Documents app and click +:menuselection:`New --> Spreadsheet`. Select the relevant template and click :guilabel:`Create`. + +Alternatively, go to :menuselection:`Documents --> Configuration --> Spreadsheet Templates` then, +on the line of the relevant template, click :icon:`fa-plus` :guilabel:`New spreadsheet`. + +.. note:: + By default, the new spreadsheet inherits the name of the template, which is shown at the top of + the screen. To rename the spreadsheet, click the name and edit it. + +.. _spreadsheet/get-started/templates-manage: + +Manage and edit templates +~~~~~~~~~~~~~~~~~~~~~~~~~ + +Manage templates by going to :menuselection:`Documents --> Configuration --> Spreadsheet Templates`. +Remove the :guilabel:`My Templates` :ref:`filter ` to view all +templates in the database. + +Various actions are possible: + +- Copy an existing template by clicking :icon:`fa-clone` :guilabel:`Make a copy` at the right of + the screen. The new template appears at the bottom of the list. Click the :guilabel:`Name` to + edit it. + +- Edit an existing template (including one you just copied) by clicking :icon:`fa-pencil` + :guilabel:`Edit`, then making the required changes. Modifications are + automatically saved. + +- Delete a template by ticking the checkbox next to it, clicking :icon:`fa-cog` + :guilabel:`Actions`, then :guilabel:`Delete`. + +.. _spreadsheet/get-started/upload-files: + +Upload files +============ + +Spreadsheets in `.xlsx` format can be uploaded into Odoo Documents and opened as an Odoo +spreadsheet. To do so: + +#. Open Odoo Documents and navigate to the section or folder where the spreadsheet should be saved. +#. Click :guilabel:`New` and select :guilabel:`Upload`. +#. Select the relevant `.xlsx` file and click :guilabel:`Open`. +#. Click on the uploaded file. +#. By default, the original `.xlsx` file is deleted when it is opened as an Odoo Spreadsheet. To + preserve the original file in the same folder in Odoo Spreadsheet, disable :guilabel:`Send source + file to trash`. +#. Click :guilabel:`Open with Odoo Spreadsheet`. + +The file is now an Odoo spreadsheet and can be fully edited in Odoo Spreadsheet. + +.. _spreadsheet/get-started/manage-spreadsheets: + +Manage spreadsheets +=================== + +Users with :guilabel:`Editor` rights to a specific spreadsheet have various options for managing the +spreadsheet via the :guilabel:`File` menu: + +- :icon:`os-copy-file` :guilabel:`Make a copy`: creates a duplicate of the current spreadsheet with + the same :ref:`regional settings ` (or + locale). +- :icon:`os-save` :guilabel:`Save as template`: allows the current spreadsheet to be used as a + :ref:`template ` for future spreadsheets. +- :icon:`os-download` :guilabel:`Download`: downloads the spreadsheet in `.xlsx` format. + + .. important:: + When you download a spreadsheet in `.xlsx` format, any spreadsheet formulas that retrieve Odoo + data from your database, e.g., via an :doc:`inserted list ` or via other + :doc:`Odoo-specific functions `, are converted to the values they + would have returned at the moment the spreadsheet was downloaded. + + .. tip:: + Users with :guilabel:`Viewer` rights can also download a spreadsheet in `.xlsx` format. + +- :icon:`os-version-history` :guilabel:`See version history`: provides read-only :ref:`access to + previous versions ` of the current + spreadsheet, which can be named and restored if needed. +- :icon:`fa-print` :guilabel:`Print`: prints a copy of the spreadsheet on a connected printer. +- :icon:`os-cog` :guilabel:`Settings`: allows you to view and change the :ref:`locale + ` of the current spreadsheet. +- :icon:`os-add-to-dashboard` :guilabel:`Add to dashboard`: :ref:`converts + ` the current spreadsheet into an Odoo dashboard. + +.. _spreadsheet/get-started/manage-spreadsheets-versioning: + +Version history +--------------- + +Odoo Spreadsheet automatically saves versions of spreadsheets as changes are made, allowing users +with :guilabel:`Editor` rights to browse and restore previous versions. + +To access the version history of a spreadsheet, click :menuselection:`File -->` +:icon:`os-version-history` :menuselection:`See version history` from the menu bar. Saved versions +appear in a panel on the right of the spreadsheet. The name of the user who made the change is +shown, as well as the date and time of the change. + +The following actions are possible: + +- **View an earlier version** in read-only format by clicking on the relevant version. +- **Restore an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` + then :guilabel:`Restore this version`. +- **Copy an earlier version** by clicking :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` then + :menuselection:`Make a copy`. A copy of the version opens as a new spreadsheet. +- **Create named versions** by clicking on the date and time of the relevant version and entering + the desired name. The date and time of the version are then displayed below the new name. + +.. tip:: + When viewing an earlier, read-only version of a spreadsheet, the following actions are still + possible: + + - Search the spreadsheet by clicking :menuselection:`Edit -->` :icon:`fa-search` + :menuselection:`Find and replace` or using the shortcut `Ctrl` + `H`. + - Copy an individual cell or selected area by clicking :menuselection:`Edit -->` + :icon:`fa-clipboard` :menuselection:`Copy` or using the shortcut `Ctrl` + `C`. + +.. _spreadsheet/get-started/manage-spreadsheets-locale: + +Regional settings +----------------- + +To ensure data is displayed consistently for all users, the regional settings (or locale) of a +spreadsheet, are managed at spreadsheet level. This locale affects the following settings and +formats: + +- thousand and decimal separators +- date and time formats +- first day of the week + +By default, a new spreadsheet inherits the regional settings of the user who created it. For +example, any spreadsheets created by a user whose language is set to :guilabel:`French (BE) / +Français (BE)` will follow Belgian French conventions. + +A spreadsheet's locale can be viewed and changed at any time by a user with :guilabel:`Editor` +rights. To view the locale of a spreadsheet, click :menuselection:`File -->` :icon:`os-cog` +:menuselection:`Settings` from the menu bar. The :guilabel:`Spreadsheet settings` panel opens on the +right of the spreadsheet. To change the locale, select the appropriate locale from the dropdown. + +.. tip:: + When you open a spreadsheet that has a different locale to that of your user profile, a blue + :icon:`fa-globe` :guilabel:`(globe)` icon appears at the top right of the spreadsheet. Hovering + over the icon reveals a warning message that indicates the spreadsheet locale and highlights + formats that differ. + + .. image:: get_started/locale-difference.png + :alt: Warning about difference between user and spreadsheet locale + + If no :icon:`fa-globe` :guilabel:`(globe)` icon is shown, this means the spreadsheet's locale is + the same as that of your user profile. + +.. _spreadsheet/get-started/convert-to-dashboard: + +Convert a spreadsheet into a dashboard +-------------------------------------- + +A user with the appropriate :ref:`access rights ` can convert an Odoo +spreadsheet into a dashboard that is then accessible via +:doc:`Odoo Dashboards <../../../applications/productivity/dashboards>`. To do so: + +#. Click :menuselection:`File -->` :icon:`os-add-to-dashboard` :menuselection:`Add to dashboard` + from the menu bar. +#. Enter the :guilabel:`Dashboard Name`. +#. Select the relevant :guilabel:`Dashboard Section` from the dropdown or, to create a new dashboard + section, type the name of the new section, then click :guilabel:`Create`. +#. If necessary, modify the :guilabel:`Access Groups` to determine which :ref:`user groups + ` can access the dashboard. +#. Click :guilabel:`Create`. + +.. tip:: + - By default, the first tab of the spreadsheet serves as the front end of the dashboard. + - It is also possible to convert a spreadsheet to a dashboard from within the :ref:`Dashboard + configuration settings `, by directly adding the spreadsheet to + an existing or new dashboard section. + - After a spreadsheet has been converted to a dashboard, it is deleted from Odoo Documents. Any + subsequent :ref:`modifications ` need to be made via + Odoo Dashboards. diff --git a/content/applications/productivity/spreadsheet/locale-difference.png b/content/applications/productivity/spreadsheet/get_started/locale-difference.png similarity index 100% rename from content/applications/productivity/spreadsheet/locale-difference.png rename to content/applications/productivity/spreadsheet/get_started/locale-difference.png diff --git a/content/applications/productivity/spreadsheet/global_filters/pivot-table-global-filters.png b/content/applications/productivity/spreadsheet/global_filters/pivot-table-global-filters.png deleted file mode 100644 index 2de4520e373046db8680664a8420c44b480c48c1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 46294 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 to dynamically filter Odoo data in - a spreadsheet or dashboard, do not use the same conditions to establish the initial list, pivot + If you intend to use :doc:`global filters ` to dynamically filter + Odoo data in a spreadsheet or dashboard, do not use the same conditions to establish the initial list, pivot table, or chart in your database. It is also possible to: @@ -35,7 +35,7 @@ It is also possible to: - :ref:`add clickable links ` to Odoo menu items, to other sheets of the same spreadsheet, or to external URLs - :ref:`insert financial data ` from your Odoo database using - Odoo-specific spreadsheet :doc:`functions ` + Odoo-specific spreadsheet :doc:`functions ` - paste data from another Odoo spreadsheet, Excel spreadsheet, or Google Sheet directly into any Odoo spreadsheet @@ -166,8 +166,8 @@ side of the screen shows the :ref:`list properties ` are used to -retrieve the header and field values, respectively: +When a list is inserted into a spreadsheet, the following :doc:`functions +` are used to retrieve the header and field values, respectively: .. code-block:: text @@ -213,8 +213,8 @@ The following list properties are shown, some of which can be edited: :ref:`Edit domain ` to add or edit rules. .. note:: - When :doc:`global filters ` are used, this domain is combined with the selected - values of the global filter before the data is loaded into the spreadsheet. + When :doc:`global filters ` are used, this domain is combined + with the selected values of the global filter before the data is loaded into the spreadsheet. - :guilabel:`Sorting`: how the data is sorted, if applicable. To add a sorting rule, click :guilabel:`Add`, select the field, then choose whether sorting should be :guilabel:`Ascending` or @@ -348,10 +348,11 @@ Insert a pivot table ==================== .. tip:: - Converting an inserted pivot table to a :doc:`dynamic pivot table ` allows - you to add, remove, and manipulate dimensions (i.e., columns and rows) and measures. It is - therefore possible to insert a basic pivot table with minimal configuration, convert it to a - dynamic pivot table, then refine it directly in the spreadsheet. + Converting an inserted pivot table to a :doc:`dynamic pivot table + ` allows you to add, remove, and manipulate dimensions + (i.e., columns and rows) and measures. It is therefore possible to insert a basic pivot table + with minimal configuration, convert it to a dynamic pivot table, then refine it directly in the + spreadsheet. To insert a pivot table: @@ -398,8 +399,8 @@ Pivot table functions --------------------- An inserted pivot table that has not been converted to a :doc:`dynamic pivot table -` uses the following :doc:`functions ` to retrieve the header and -field values, respectively: +` uses the following :doc:`functions +` to retrieve the header and field values, respectively: .. code-block:: text @@ -453,7 +454,7 @@ The following pivot table properties are shown, some of which can be edited: If you attempt to make changes to the columns, rows, or measures of a pivot table that has just been inserted into a spreadsheet, an error appears at the top right of the screen. - .. image:: dynamic_pivot_tables/pivot-table-error.png + .. image:: insert/pivot-table-error.png :alt: Error message when trying to manipulate static pivot table To be able to manipulate a pivot table's properties, convert a static pivot table to a @@ -463,8 +464,8 @@ The following pivot table properties are shown, some of which can be edited: :ref:`Edit domain ` to add or edit rules. .. note:: - When :doc:`global filters ` are used, this domain is combined with the selected - values of the global filter before the data is loaded into the spreadsheet. + When :doc:`global filters ` are used, this domain is combined + with the selected values of the global filter before the data is loaded into the spreadsheet. To :ref:`duplicate ` or :ref:`delete ` a pivot table's data source, click the :icon:`fa-cog` @@ -494,8 +495,8 @@ Duplicating a pivot table via the pivot table's properties creates an additional allows for different manipulations to be performed on the same data within one spreadsheet. For example, you can see the same data aggregated by different dimensions or use :doc:`global -filters ` to offset the date and create pivot tables that compare the current -period's data with a previous period. +filters ` to offset the date and create pivot tables that compare the +current period's data with a previous period. To duplicate a pivot table, perform the following steps: @@ -515,7 +516,7 @@ tables have been inserted in the meantime, duplicating *Pivot #1* results in the not create a new data source. Any changes made to the pivot table's properties would therefore impact any copies of the pivot table. - When a pivot table is duplicated, the new pivot table is by default a :doc:`dynamic pivot table - `. + `. .. _spreadsheet/insert/pivot-table-delete: @@ -552,7 +553,8 @@ To insert a chart from an Odoo database into an Odoo spreadsheet: #. Click :guilabel:`Confirm`. -Charts are inserted on the first sheet of the spreadsheet. +Charts are inserted on the first sheet of the spreadsheet. A pane on the right side of the screen +shows the :ref:`chart properties `. .. tip:: Clicking on a data point in a chart opens the relevant list view in the database. In the example, @@ -562,172 +564,6 @@ Charts are inserted on the first sheet of the spreadsheet. .. image:: insert/clickable-link-chart.png :alt: A clickable link to an Odoo menu plus clickable data point -.. _spreadsheet/insert/chart-properties: - -Chart properties ----------------- - -When you insert a chart into a spreadsheet, the chart properties appear on the right side of the -screen. Access these at any time via the :guilabel:`Data` menu by clicking the relevant chart, as -prefaced by the :icon:`fa-bar-chart` :guilabel:`(chart)` icon. Alternatively, hover over the chart -then click the :icon:`fa-bars` :guilabel:`(menu)` icon and click :icon:`fa-pencil-square-o` -:guilabel:`Edit`. - -In the chart properties, the :icon:`fa-sliders` :guilabel:`Configuration` and :icon:`fa-paint-brush` -:guilabel:`Design` tabs let you modify various elements of the chart. - -Configuration -~~~~~~~~~~~~~ - -The :icon:`fa-sliders` :guilabel:`Configuration` tab includes the following sections: - -- :guilabel:`Chart type`: the type of chart. By default, this indicates the type of chart you - selected in the graph view in the database before inserting the chart in the spreadsheet. - - After a chart has been inserted, more chart types are available. Click the dropdown menu to - select the most appropriate chart type for the data. - - .. tabs:: - - .. tab:: Line - - .. image:: insert/chart-type-line.png - :alt: Line chart icon - - :guilabel:`Line`: best for showing trends or changes over time, such as sales - growth across months or temperature variations. - - .. image:: insert/chart-type-line-stacked.png - :alt: Stacked line chart icon - - :guilabel:`Stacked Line`: useful for visualizing cumulative trends where multiple series - contribute to a total, like revenue by department over time. - - .. tab:: Column - - .. image:: insert/chart-type-column.png - :alt: Column chart icon - - :guilabel:`Column`: ideal for comparing values across discrete categories, such as sales per - product or revenue by region. - - .. image:: insert/chart-type-column-stacked.png - :alt: Stacked column chart icon - - :guilabel:`Stacked Column`: displays part-to-whole relationships within categories, such as - regional contributions to total sales. - - .. tab:: Area - - .. image:: insert/chart-type-area.png - :alt: Area chart icon - - :guilabel:`Area`: similar to a line chart but fills the area beneath the lines to emphasize - magnitude, perfect for cumulative metrics over time. - - .. image:: insert/chart-type-area-stacked.png - :alt: Stacked area chart icon - - :guilabel:`Stacked Area`: visualizes the composition of changes over time, such as market - share by product category. - - .. tab:: Pie - - .. image:: insert/chart-type-pie.png - :alt: Pie chart icon - - :guilabel:`Pie`: best for showing proportions or percentages of a whole, such as market - share or budget allocation. - - .. tab:: Other - - When creating a chart from spreadsheet data, rather than inserting one from a graph view, - the following chart types are also available: - - .. image:: insert/chart-type-line-combo.png - :alt: Combo chart icon - - :guilabel:`Combo`: combines multiple chart types (e.g., bars and lines) to compare different - data types or highlight key metrics alongside trends. - - .. image:: insert/chart-type-bar.png - :alt: Bar chart icon - - :guilabel:`Bar`: similar to a column chart but horizontal, making it better for comparing - long category names or datasets. - - .. image:: insert/chart-type-bar-stacked.png - :alt: Stacked bar chart icon - - :guilabel:`Stacked Bar`: highlights cumulative contributions across categories, often used - in demographic or resource allocation analysis. - - .. image:: insert/chart-type-doughnut.png - :alt: Doughnut chart icon - - :guilabel:`Doughnut`: A variation of the pie chart with a hollow center, offering similar - use cases but with a modern aesthetic. - - .. image:: insert/chart-type-scatter.png - :alt: Scatter chart icon - - :guilabel:`Scatter`: ideal for analyzing relationships or correlations between two numerical - variables, such as price vs. quantity sold. - - .. image:: insert/chart-type-gauge.png - :alt: Gauge chart icon - - :guilabel:`Gauge`: displays progress toward a goal or a single key metric, such as - performance against a target. - - .. image:: insert/chart-type-scorecard.png - :alt: Scorecard icon - - :guilabel:`Scorecard`: used to summarize key performance indicators (KPIs) in a compact - format, such as total sales or conversion rates, and compare to a baseline or a previous - value. - - .. image:: insert/chart-type-waterfall.png - :alt: Waterfall chart icon - - :guilabel:`Waterfall`: ideal for visualizing cumulative effects of sequential positive and - negative values, such as profit/loss analysis. - - .. image:: insert/chart-type-population-pyramid.png - :alt: Population pyramid chart icon - - :guilabel:`Population Pyramid`: a specialized chart for comparing distributions, often used - in demographics, such as age and gender group analysis. - -- :guilabel:`Domain`: the rules used to determine which records are shown. Click :ref:`Edit domain - ` to add or edit rules. -- :guilabel:`Link to Odoo menu`: to add a :ref:`clickable link ` - from a chart to an Odoo menu item, i.e., a specific view of a model. - -Design -~~~~~~ - -Depending on the chart type, the :icon:`fa-paint-brush` :guilabel:`Design` tab has one or more -sections. - -The :guilabel:`General` section lets you modify the following elements: - -- :guilabel:`Background color`: Add or change the background color by clicking on the color dot. - Choose one of the standard colors or click the :icon:`fa-plus` icon to manually select a custom - color. -- :guilabel:`Chart title`: Edit the chart title, if needed. The font formatting, horizontal - alignment and color of the title can be modified using the editor. -- :guilabel:`Vertical axis position`: Choose whether the vertical axis is placed on the left or - right in line, column, and area charts. -- :guilabel:`Legend position`: Change the position of the legend or opt to have no legend. -- Enable :guilabel:`Show values` to add numeric values to the data points on the - chart. -- Enable :guilabel:`Show trend line` to add a trend line to line, column, and area charts. - -For line, column, and area charts, the :guilabel:`Axis` section lets you add a title to one or both -axes. The font formatting, horizontal alignment, and color of the title can be modified using the -editor. - .. _spreadsheet/insert/clickable-links: Insert clickable links diff --git a/content/applications/productivity/spreadsheet/templates.rst b/content/applications/productivity/spreadsheet/templates.rst deleted file mode 100644 index 259a3ca58a..0000000000 --- a/content/applications/productivity/spreadsheet/templates.rst +++ /dev/null @@ -1,65 +0,0 @@ -========= -Templates -========= - -Spreadsheet templates allow you to quickly create spreadsheets without starting from scratch. For -example, you could create a template for a monthly budget report or a quarterly sales commission -report. - -.. note:: - Templates are available to all users on the database. - -.. _spreadsheet/templates/create: - -Create a template -================= - -Any spreadsheet can be saved as a template. Open the relevant spreadsheet or :ref:`create a new one -`. From the menu bar, click :menuselection:`File -->` :icon:`os-save` -:menuselection:`Save as template`. Modify the default :guilabel:`Template Name` if needed and -click :guilabel:`Confirm`. - -.. important:: - Once a spreadsheet is saved as a template, any further changes to the open spreadsheet are - saved only in that spreadsheet. To make changes to the template, you need to :ref:`edit - the template `. - -You can also create a template by :ref:`making a copy of an existing template and editing it -`. - -.. _spreadsheet/templates/use: - -Use templates -============= - -To create a new spreadsheet using a template, open the Documents app and click -:menuselection:`New --> Spreadsheet`. Select the relevant template and click :guilabel:`Create`. - -Alternatively, go to :menuselection:`Documents --> Configuration --> Spreadsheet Templates` then, -on the line of the relevant template, click :icon:`fa-plus` :guilabel:`New spreadsheet`. - -.. note:: - By default, the new spreadsheet inherits the name of the template, which is shown at the top of - the screen. To rename the spreadsheet, click the name and edit it. - -.. _spreadsheet/templates/manage: - -Manage and edit templates -========================= - -Manage templates by going to :menuselection:`Documents --> Configuration --> Spreadsheet Templates`. -Remove the :guilabel:`My Templates` :ref:`filter ` to view all -templates in the database. - -Various actions are possible: - -- Copy an existing template by clicking :icon:`fa-clone` :guilabel:`Make a copy` at the right of - the screen. The new template appears at the bottom of the list. Click the :guilabel:`Name` to - edit it. - -- Edit an existing template (including one you just copied) by clicking :icon:`fa-pencil` - :guilabel:`Edit`, then making the required changes. Modifications are - automatically saved. - -- Delete a template by ticking the checkbox next to it, clicking :icon:`fa-cog` - :guilabel:`Actions`, then :guilabel:`Delete`. diff --git a/content/applications/productivity/spreadsheet/visualize_data.rst b/content/applications/productivity/spreadsheet/visualize_data.rst new file mode 100644 index 0000000000..8362d706c7 --- /dev/null +++ b/content/applications/productivity/spreadsheet/visualize_data.rst @@ -0,0 +1,11 @@ +:nosearch: + +========================== +Present and visualize data +========================== + +.. toctree:: + :titlesonly: + + visualize_data/charts + diff --git a/content/applications/productivity/spreadsheet/visualize_data/charts.rst b/content/applications/productivity/spreadsheet/visualize_data/charts.rst new file mode 100644 index 0000000000..f98e359c34 --- /dev/null +++ b/content/applications/productivity/spreadsheet/visualize_data/charts.rst @@ -0,0 +1,216 @@ +====== +Charts +====== + +Charts present data visually, making them a user-friendly way to show patterns, trends, and +relationships between data. + +.. _spreadsheet/visualize/create-chart: + +Create a chart +-------------- + +To present spreadsheet data as a chart: + +#. Select the cells containing the data you want to represent using a chart. +#. Click :menuselection:`Insert --> Chart` from the menu bar. + + .. tip:: Odoo uses the most appropriate :ref:`chart type ` for + the selected data; this can be changed in the configuration section of the :ref:`chart + properties `, which opens on the right side of the + spreadsheet. + +#. Make any desired changes to the configuration or design of the chart in the chart properties. + +.. tip:: + It is also possible to :ref:`insert a chart from an Odoo view ` + directly into a spreadsheet. + +.. _spreadsheet/visualize/chart-types: + +Chart types +----------- + +When a chart is: + +- :ref:`created manually `, any of the chart types in the tabs + below can be selected +- :ref:`inserted from an Odoo view `, any chart type except those shown in + the :guilabel:`Other` tab can be selected + +.. tabs:: + + .. tab:: Line + .. image:: charts/chart-type-line.png + :alt: Line chart icon + + :guilabel:`Line`: best for showing trends or changes over time, such as sales + growth across months or temperature variations. + + .. image:: charts/chart-type-line-stacked.png + :alt: Stacked line chart icon + + :guilabel:`Stacked Line`: useful for visualizing cumulative trends where multiple series + contribute to a total, like revenue by department over time. + + .. tab:: Column + + .. image:: charts/chart-type-column.png + :alt: Column chart icon + + :guilabel:`Column`: ideal for comparing values across discrete categories, such as sales per + product or revenue by region. + + .. image:: charts/chart-type-column-stacked.png + :alt: Stacked column chart icon + + :guilabel:`Stacked Column`: displays part-to-whole relationships within categories, such as + regional contributions to total sales. + + .. tab:: Area + + .. image:: charts/chart-type-area.png + :alt: Area chart icon + + :guilabel:`Area`: similar to a line chart but fills the area beneath the lines to emphasize + magnitude, perfect for cumulative metrics over time. + + .. image:: charts/chart-type-area-stacked.png + :alt: Stacked area chart icon + + :guilabel:`Stacked Area`: visualizes the composition of changes over time, such as market + share by product category. + + .. tab:: Pie + + .. image:: charts/chart-type-pie.png + :alt: Pie chart icon + + :guilabel:`Pie`: best for showing proportions or percentages of a whole, such as market + share or budget allocation. + + .. tab:: Other + + .. image:: charts/chart-type-line-combo.png + :alt: Combo chart icon + + :guilabel:`Combo`: combines multiple chart types (e.g., bars and lines) to compare different + data types or highlight key metrics alongside trends. + + .. image:: charts/chart-type-bar.png + :alt: Bar chart icon + + :guilabel:`Bar`: similar to a column chart but horizontal, making it better for comparing + long category names or datasets. + + .. image:: charts/chart-type-bar-stacked.png + :alt: Stacked bar chart icon + + :guilabel:`Stacked Bar`: highlights cumulative contributions across categories, often used + in demographic or resource allocation analysis. + + .. image:: charts/chart-type-doughnut.png + :alt: Doughnut chart icon + + :guilabel:`Doughnut`: A variation of the pie chart with a hollow center, offering similar + use cases but with a modern aesthetic. + + .. image:: charts/chart-type-scatter.png + :alt: Scatter chart icon + + :guilabel:`Scatter`: ideal for analyzing relationships or correlations between two numerical + variables, such as price vs. quantity sold. + + .. image:: charts/chart-type-gauge.png + :alt: Gauge chart icon + + :guilabel:`Gauge`: displays progress toward a goal or a single key metric, such as + performance against a target. + + .. image:: charts/chart-type-scorecard.png + :alt: Scorecard icon + + :guilabel:`Scorecard`: used to summarize key performance indicators (KPIs) in a compact + format, such as total sales or conversion rates, and compare to a baseline or a previous + value. + + .. image:: charts/chart-type-waterfall.png + :alt: Waterfall chart icon + + :guilabel:`Waterfall`: ideal for visualizing cumulative effects of sequential positive and + negative values, such as profit/loss analysis. + + .. image:: charts/chart-type-population-pyramid.png + :alt: Population pyramid chart icon + + :guilabel:`Population Pyramid`: a specialized chart for comparing distributions, often used + in demographics, such as age and gender group analysis. + +.. _spreadsheet/visualize/chart-properties: + +Chart properties +---------------- + +When you :ref:`create a chart manually ` or :ref:`insert a +chart from an Odoo view ` into a spreadsheet, the chart properties appear +in a pane on the right side of the spreadsheet. + +These properties can be accessed at any time: + +- For any chart, whether manually created or inserted from an Odoo view, hover over + the chart then click the :icon:`fa-bars` :guilabel:`(menu)` icon and click + :icon:`fa-pencil-square-o` :guilabel:`Edit`. +- For a chart inserted from an Odoo view, click :guilabel:`Data` on the menu bar then select the + relevant chart, as prefaced by the :icon:`fa-bar-chart` :guilabel:`(chart)` icon, e.g., + :icon:`fa-bar-chart` *(#1) Sales Analysis*. + +In the chart properties, the :icon:`fa-sliders` :guilabel:`Configuration` and :icon:`fa-paint-brush` +:guilabel:`Design` tabs let you modify various elements of the chart. + +.. _spreadsheet/visualize/charts-configuration: + +Configuration +~~~~~~~~~~~~~ + +The :icon:`fa-sliders` :guilabel:`Configuration` tab includes the following sections: + +- :ref:`Chart type `: the type of chart. For a chart that has + been: + + - manually created, this is by default the chart type suggested by Odoo; + - inserted from an Odoo view, this is by default the type of chart selected in the graph view in + the database before inserting the chart in the spreadsheet. + + To select a different chart type, click the dropdown menu to select the most appropriate chart + type for the data. + +- :guilabel:`Domain`: the rules used to determine which records are shown. Click :ref:`Edit domain + ` to add or edit rules. +- :guilabel:`Link to Odoo menu`: to add a :ref:`clickable link ` + from a chart to an Odoo menu item, i.e., a specific view of a model. + +.. _spreadsheet/visualize/charts-design: + +Design +~~~~~~ + +Depending on the chart type, the :icon:`fa-paint-brush` :guilabel:`Design` tab has one or more +sections. + +The :guilabel:`General` section lets you modify the following elements: + +- :guilabel:`Background color`: Add or change the background color by clicking on the color dot. + Choose one of the standard colors or click the :icon:`fa-plus` icon to manually select a custom + color. +- :guilabel:`Chart title`: Edit the chart title, if needed. The font formatting, horizontal + alignment and color of the title can be modified using the editor. +- :guilabel:`Vertical axis position`: Choose whether the vertical axis is placed on the left or + right in line, column, and area charts. +- :guilabel:`Legend position`: Change the position of the legend or opt to have no legend. +- Enable :guilabel:`Show values` to add numeric values to the data points on the + chart. +- Enable :guilabel:`Show trend line` to add a trend line to line, column, and area charts. + +For line, column, and area charts, the :guilabel:`Axis` section lets you add a title to one or both +axes. The font formatting, horizontal alignment, and color of the title can be modified using the +editor. diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-area-stacked.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-area-stacked.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-area-stacked.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-area-stacked.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-area.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-area.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-area.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-area.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-bar-stacked.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-bar-stacked.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-bar-stacked.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-bar-stacked.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-bar.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-bar.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-bar.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-bar.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-column-stacked.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-column-stacked.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-column-stacked.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-column-stacked.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-column.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-column.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-column.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-column.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-doughnut.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-doughnut.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-doughnut.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-doughnut.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-filled-radar.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-filled-radar.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-filled-radar.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-filled-radar.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-gauge.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-gauge.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-gauge.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-gauge.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-geo.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-geo.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-geo.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-geo.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-line-combo.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line-combo.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-line-combo.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line-combo.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-line-stacked.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line-stacked.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-line-stacked.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line-stacked.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-line.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-line.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-line.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-pie.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-pie.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-pie.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-pie.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-population-pyramid.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-population-pyramid.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-population-pyramid.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-population-pyramid.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-radar.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-radar.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-radar.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-radar.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-scatter.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-scatter.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-scatter.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-scatter.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-scorecard.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-scorecard.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-scorecard.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-scorecard.png diff --git a/content/applications/productivity/spreadsheet/insert/chart-type-waterfall.png b/content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-waterfall.png similarity index 100% rename from content/applications/productivity/spreadsheet/insert/chart-type-waterfall.png rename to content/applications/productivity/spreadsheet/visualize_data/charts/chart-type-waterfall.png diff --git a/content/applications/productivity/spreadsheet/visualize_data/create-chart.png b/content/applications/productivity/spreadsheet/visualize_data/create-chart.png new file mode 100644 index 0000000000000000000000000000000000000000..393491264c05ee58e559fa9d1442f3b30a327b58 GIT binary patch literal 39044 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 TS;u96TsO;Rhl6#I)gi_|&Y`EO literal 0 HcmV?d00001 diff --git a/content/applications/productivity/spreadsheet/work_with_data.rst b/content/applications/productivity/spreadsheet/work_with_data.rst new file mode 100644 index 0000000000..a105f82e99 --- /dev/null +++ b/content/applications/productivity/spreadsheet/work_with_data.rst @@ -0,0 +1,12 @@ +:nosearch: + +============== +Work with data +============== + +.. toctree:: + :titlesonly: + + work_with_data/dynamic_pivot_tables + work_with_data/functions + work_with_data/global_filters diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables.rst similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables.rst rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables.rst diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables/calculated-measure.png b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/calculated-measure.png similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables/calculated-measure.png rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/calculated-measure.png diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables/modify-function.png b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/modify-function.png similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables/modify-function.png rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/modify-function.png diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-function-dynamic.png b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-function-dynamic.png similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-function-dynamic.png rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-function-dynamic.png diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-function-static.png b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-function-static.png similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-function-static.png rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-function-static.png diff --git a/content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-table-error.png b/content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-table-error.png similarity index 100% rename from content/applications/productivity/spreadsheet/dynamic_pivot_tables/pivot-table-error.png rename to content/applications/productivity/spreadsheet/work_with_data/dynamic_pivot_tables/pivot-table-error.png diff --git a/content/applications/productivity/spreadsheet/functions.rst b/content/applications/productivity/spreadsheet/work_with_data/functions.rst similarity index 100% rename from content/applications/productivity/spreadsheet/functions.rst rename to content/applications/productivity/spreadsheet/work_with_data/functions.rst diff --git a/content/applications/productivity/spreadsheet/global_filters.rst b/content/applications/productivity/spreadsheet/work_with_data/global_filters.rst similarity index 99% rename from content/applications/productivity/spreadsheet/global_filters.rst rename to content/applications/productivity/spreadsheet/work_with_data/global_filters.rst index 50931569e4..7b6029152f 100644 --- a/content/applications/productivity/spreadsheet/global_filters.rst +++ b/content/applications/productivity/spreadsheet/work_with_data/global_filters.rst @@ -4,7 +4,7 @@ Global filters Global filters, represented by the :icon:`os-global-filters` :guilabel:`Filters` icon at the top right of an Odoo spreadsheet, allow you to apply one or more filters to all the Odoo data that has -been :doc:`inserted in that spreadsheet `. +been :doc:`inserted in that spreadsheet <../insert>`. These filters are particularly useful for reports and dashboards as users can easily and dynamically customize the view to answer complex business questions spanning multiple data sources. diff --git a/content/applications/productivity/spreadsheet/global_filters/dashboard-global-filters.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/dashboard-global-filters.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/dashboard-global-filters.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/dashboard-global-filters.png diff --git a/content/applications/productivity/spreadsheet/global_filters/example-date.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/example-date.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/example-date.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/example-date.png diff --git a/content/applications/productivity/spreadsheet/global_filters/example-relation.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/example-relation.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/example-relation.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/example-relation.png diff --git a/content/applications/productivity/spreadsheet/global_filters/example-text.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/example-text.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/example-text.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/example-text.png diff --git a/content/applications/productivity/spreadsheet/global_filters/field-matching-date.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-date.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/field-matching-date.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-date.png diff --git a/content/applications/productivity/spreadsheet/global_filters/field-matching-relation.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-relation.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/field-matching-relation.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-relation.png diff --git a/content/applications/productivity/spreadsheet/global_filters/field-matching-text.png b/content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-text.png similarity index 100% rename from content/applications/productivity/spreadsheet/global_filters/field-matching-text.png rename to content/applications/productivity/spreadsheet/work_with_data/global_filters/field-matching-text.png