[FIX] kpi_dashboard: Meter widget supports customization using parameters

Meter widget is implemented with GaugeMeter (https://github.com/Mictronics/GaugeMeter). GaugeMeter provides a number of parameters to customize its display.  See https://github.com/Mictronics/GaugeMeter#parameter-definitions for details.

Allow user to customize GaugeMeter by setting the customization parameters in the result.
This mechanism can be used to show actual values instead of percentages by setting total, used & showvalue parameter in the result.
Fixes #428
This commit is contained in:
Lijo Antony
2022-07-26 16:43:51 +04:00
committed by Lijo Antony
parent 838a06d0be
commit e14f77b618
3 changed files with 8 additions and 5 deletions

View File

@@ -29,17 +29,19 @@
/>
<record id="widget_meter_01" model="kpi.kpi">
<field name="name">Meter 01</field>
<field name="suffix"></field>
<field name="suffix">%</field>
<field name="computation_method">code</field>
<field name="widget">meter</field>
<field name="code">result = {"min": 0, "max": 100, "value": 90}</field>
<field name="code">result = {"value": 90}</field>
</record>
<record id="widget_meter_02" model="kpi.kpi">
<field name="name">Meter 02</field>
<field name="prefix">$</field>
<field name="computation_method">code</field>
<field name="widget">meter</field>
<field name="code">result = {"min": 0, "max": 100, "value": 40}</field>
<field
name="code"
>result = {"min": 0, "total": 200, "used": 90, showvalue: True}</field>
</record>
<function
model="kpi.kpi"

View File

@@ -5,7 +5,7 @@ Configure KPIs
#. Create a new KPI specifying the computation method and the kpi type
#. Number: result must contain a `value` and, if needed, a `previous`
#. Meter: result must contain `value`, `min` and `max`
#. Meter: To show a percentage value, result must contain `value`. `value` must be a positive integer between 0 to 100. Meter is implemented with GaugeMeter (https://github.com/Mictronics/GaugeMeter). It can be customized by setting parameters for GaugeMeter in result. See https://github.com/Mictronics/GaugeMeter#parameter-definitions for details.
#. Graph: result must contain a list on `graphs` containing `values`, `title` and `key`
#. In order to compute the KPI you can use a predefined function from a model or

View File

@@ -17,7 +17,6 @@ odoo.define("kpi_dashboard.MeterWidget", function (require) {
_getMeterOptions: function (values) {
var size = Math.min(this.widget_size_x, this.widget_size_y - 40) - 10;
return {
percent: values.value.value,
style: "Arch",
width: 10,
size: size,
@@ -25,6 +24,8 @@ odoo.define("kpi_dashboard.MeterWidget", function (require) {
append: values.suffix === undefined ? "" : values.suffix,
color: values.font_color,
animate_text_colors: true,
...(values.value.value && {percent: values.value.value}),
...values.value,
};
},
});