All in One Dashboard

by
Odoo

168.23

v 14.0 Third Party 58
Lines of code 608
Technical Name dashboard_view
LicenseOPL-1
Also available in version v 13.0 v 12.0
You bought this module and need support? Click here!
Lines of code 608
Technical Name dashboard_view
LicenseOPL-1
Also available in version v 13.0 v 12.0

All in One Dashboard

Build your own dashboard view for any Odoo object

COMMUNITY USERS

After purchasing this app, kindly download the Dashboard View (Community Edition) app to build dashboard of any odoo model and below are some FREE ready-to-use COMMUNITY dashboards which are built through it.

ENTERPRISE USERS

After purchasing this app, kindly download the Dashboard View (Enterprise Edition) app to build dashboard of any odoo model and below are some FREE ready-to-use ENTERPRISE dashboards which are built through it.

FREE Interactive Ready-to-use Business Dashboards

When it comes to improving on specific business goals, Gritxi's got you covered.
Browse our FREE ready-to-use dashboards designed to help you achieve and optimize your key business objectives

COMMUNITY EDITION

ENTERPRISE EDITION

Like pivot and graph view, The dashboard view is used to display aggregate data. However, the dashboard can embed sub views, which makes it possible to have a more complete and interesting look on a given dataset.

The dashboard view can display sub views, aggregates for some fields (over a domain), or even formulas (expressions which involves one or more aggregates).

For example, here is a very simple dashboard:


<dashboard>
  <view type="graph" ref="sale.view_order_product_graph"/>
  <group>
    <gorup>
      <aggregate name="price_subtotal_confirmed_orders" string="Total Sales" field="price_total" help="Total, Tax Included" widget="monetary"/>
      <aggregate name="price_subtotal_all_orders" string="Untaxed Total" field="price_subtotal" widget="monetary"/>
      <aggregate name="order_id_confirmed_orders" field="order_id" string="Orders"/>
      <formula name="total" string="Average Order" value="record.price_subtotal_confirmed_orders / record.order_id_confirmed_orders" widget="monetary"/>
    </gorup>
    <group>
      <widget name="pie_chart" attrs="{'title': 'Sales Teams', 'groupby': 'team_id'}"/>
      <widget name="bar_chart" attrs="{'title': 'Salespersons', 'groupby': 'user_id'}"/>
      <widget name="line_chart" title="Sales by Sales Sources" attrs="{'measure': 'price_subtotal', 'groupby': 'source_id', 'domain': '[(\'source_id\', '\!=\', False)]'}"/>
    </group>
 </group>
 <view type="pivot" ref="sale_dashboard.sale_report_view_pivot"/>
</dashboard>

Dashboard View

The root element of the Dashboard view is <dashboard>, it does not accept any attributes.

There are 5 possible type of tags in a dashboard view

<View> Tag

Declares a sub view with below admissible attributes

- type (mandatory) The type of the sub view. For example, graph or pivot.

- ref (optional) An xml id for a view. If not given, the default view for the model will be used.

- name (optional) A string which identifies this element. It is mostly useful to be used as a target for an xpath.

For example:


<view type="graph" ref="sale.view_order_product_graph"/>
<view type="pivot" ref="sale_dashboard.sale_report_view_pivot"/>

View Tag

<Group> Tag

Defines a column layout with below admissible attributes. This is actually very similar to the group element in a form view

- string (optional) A description which will be displayed as a group title.

- colspan (optional) The number of subcolumns in this group tag. By default, 6.

- col (optional) The number of columns spanned by this group tag (only makes sense inside another group). By default, 6.

For example:


<group col="12">
  <group colspan="3">
  ...
  ...
  <group/>
  <group colspan="3" col="12">
  ...
  ...
  <group/>
<group/>

<Aggregate> Tag

Declares an aggregate with below admissible attributes. This is the value of an aggregate for a given field over the current domain

- field (mandatory) The field name to use for computing the aggregate. Possible field types are:

  • integer (default group operator is sum)
  • float (default group operator is sum)
  • many2one (default group operator is count distinct)

- name (mandatory) A string to identify this aggregate (useful for formulas)

- string (optional) A short description that will be displayed above the value. If not given, it will fall back to the field string.

- domain (optional) An additional restriction on the set of records that we want to aggregate. This domain will be combined with the current domain.

- domain_label (optional) When the user clicks on an aggregate with a domain, it will be added to the search view as a facet. The string displayed for this facet can be customized with this attribute.

- group_operator (optional) A valid postgreSQL aggregate function identifier to use when aggregating values (see https://www.postgresql.org/docs/9.5/static/functions-aggregate.html). If not provided, By default, the group_operator from the field definition is used. Note that no aggregation of field values is achieved if the group_operator value is "".

Note:
The special aggregate function count_distinct (defined in odoo) can also be used here


<aggregate name="order_id_confirmed_orders" field="order_id" string="Orders" group_operator="count_distinct"/>

- col (optional) The number of columns spanned by this tag (only makes sense inside a group). By default, 1.

- widget (optional) A widget to format the value (like the widget attribute for fields). For example, monetary.

- help (optional) A help message to dipslay in a tooltip (equivalent of help for a field in python)

- measure (optional) This attribute is the name of a field describing the measure that has to be used in the graph and pivot views when clicking on the aggregate.
The special value __count__ can be used to use the count measure.


<aggregate name="customers" field="partner_id" string="# Customers" group_operator="count" measure="__count__"/>

- clickable (optional) A boolean indicating if this aggregate should be clickable or not (default to true). Clicking on a clickable aggregate will change the measures used by the subviews and add the value of the domain attribute (if any) to the search view.

- value_label (optional) A string put on the right of the aggregate value.
For example, it can be useful to indicate the unit of measure of the aggregate value.

For example:

Aggregate Tag

<Formula> Tag

Defines a derived value with below admissible attributes. Formulas are values computed from aggregates

Note that like aggregates, formulas are supposed to be used inside a group tag (otherwise the style will not be properly applied).

- value (mandatory) A string expression that will be evaluated, with the builtin python evaluator (in the web client). Every aggregate can be used in the context, in the record variable. For example, record.price_total / record.order_id.

- name (optional) A string to identify this formula

- string (optional) A short description that will be displayed above the formula.

- col (optional) The number of columns spanned by this tag (only makes sense inside a group). By default, 1.

- widget (optional) A widget to format the value (like the widget attribute for fields). For example, monetary. By default, it is 'float'.

- help (optional) A help message to dipslay in a tooltip (equivalent of help for a field in python)

- value_label (optional) A string put on the right of the formula value. For example, it can be useful to indicate the unit of measure of the formula value.

For example:


<formula name="total" string="Average Order" value="record.price_subtotal_confirmed_orders / record.order_id.confirmed_orders" widget="monetary"/>

Formula Tag

<Widget> Tag

Declares a specialized widget (to be used to display the information) with below admissible attributes. This is a mechanism similar to the widgets in the form view

- name (mandatory) A string to identify which widget should be instantiated. The view will look into the widget_registry to get the proper class.

- col (optional) The number of columns spanned by this tag (only makes sense inside a group). By default, 1.

- title (optional) String displayed on the top of the graph.

- attrs (mandatory)

Admissible attributes are:

- groupby (mandatory) Comma separated field names of the comodel. Records will be grouped by that fields.

- stacked (optional) Only used for bar charts. If present and set to True, stacks bars within a group.

- measure (optional) Field to aggregate within a group. By default, __count__.

- domain (optional) An additional restriction on the set of records that we want to aggregate. This domain will be combined with the current domain.

- order (optional) If set, x-axis values will be sorted by default according their measure with respect to the given order (asc or desc).

- limit (optional) The maximal number of records that we want to fetch for the groupby fields. It must be a positive integer.

- time_ranges (optional) An additional user-defined contiguous range of time periods restriction on the set of records that we want to fetch for the groupby fields. This time range domain will be combined with the current domain.

Admissible sub attributes are:

- field (mandatory) The field name to use for computing the time range domain. Possible field type is either date or datetime.

- range (mandatory) A string to describe a time interval. It should be today, this_week, this_month, this_quarter, this_year, yesterday, last_week, last_month, last_quarter, last_year, last_7_days, last_30_days, last_365_days, last_5_years.


<widget name="bar_chart" title="Today's Avg. Sales" attrs="{'measure': 'avg_price_subtotal', 'groupby': 'company_id', 'time_ranges': {'field': 'date', 'range': 'today'}}"/>

For example:


<widget name="bar_chart" title="Sales by Top 5 Customers" attrs="{'limit': 5, 'order': 'desc', 'measure': 'price_subtotal', 'groupby': 'partner_id', 'domain': '[(\'partner_id\',\'!=\',False)]'}"/>

Widget Tag

Contact / Support

Need help or want extra features?

Gritxi Consulting Service Pvt. Ltd
Need help with the configuration or want this module to have more functionalities? Contact us through e-mail at contact@gritxi.com
Odoo Proprietary License v1.0
This software and associated files (the "Software") may only be used (executed,
modified, executed after modifications) if you have purchased a valid license
from the authors, typically via Odoo Apps, or if you have received a written
agreement from the authors of the Software (see the COPYRIGHT file).
You may develop Odoo modules that use the Software as a library (typically
by depending on it, importing it and using its resources), but without copying
any source code or material from the Software. You may distribute those
modules under the license of your choice, provided that this license is
compatible with the terms of the Odoo Proprietary License (For example:
LGPL, MIT, or proprietary licenses similar to this one).
It is forbidden to publish, distribute, sublicense, or sell copies of the Software
or modified copies of the Software.
The above copyright notice and this permission notice must be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
DEALINGS IN THE SOFTWARE.

Please log in to comment on this module

  • The author can leave a single reply to each comment.
  • This section is meant to ask simple questions or leave a rating. Every report of a problem experienced while using the module should be addressed to the author directly (refer to the following point).
  • If you want to start a discussion with the author or have a question related to your purchase, please use the support page.