diff --git a/kpi_dashboard/__manifest__.py b/kpi_dashboard/__manifest__.py
index 9f7567af5..c63125a63 100644
--- a/kpi_dashboard/__manifest__.py
+++ b/kpi_dashboard/__manifest__.py
@@ -5,7 +5,7 @@
"name": "Kpi Dashboard",
"summary": """
Create Dashboards using kpis""",
- "version": "14.0.1.0.0",
+ "version": "14.0.1.1.0",
"license": "AGPL-3",
"author": "Creu Blanca,Odoo Community Association (OCA)",
"website": "https://github.com/OCA/reporting-engine",
diff --git a/kpi_dashboard/i18n/kpi_dashboard.pot b/kpi_dashboard/i18n/kpi_dashboard.pot
index 561120e7b..19ce95376 100644
--- a/kpi_dashboard/i18n/kpi_dashboard.pot
+++ b/kpi_dashboard/i18n/kpi_dashboard.pot
@@ -99,6 +99,7 @@ msgid "Computation Method"
msgstr ""
#. module: kpi_dashboard
+#: model:ir.model.fields,field_description:kpi_dashboard.field_kpi_dashboard_item__compute_on_fly
#: model:ir.model.fields,field_description:kpi_dashboard.field_kpi_kpi__compute_on_fly
msgid "Compute On Fly"
msgstr ""
@@ -549,6 +550,11 @@ msgstr ""
msgid "Size Y of the widget cannot be bigger than 10"
msgstr ""
+#. module: kpi_dashboard
+#: model:ir.model.fields,field_description:kpi_dashboard.field_kpi_dashboard_item__special_context
+msgid "Special Context"
+msgstr ""
+
#. module: kpi_dashboard
#: model:ir.model.fields,field_description:kpi_dashboard.field_kpi_kpi__store_history
msgid "Store History"
diff --git a/kpi_dashboard/models/kpi_dashboard.py b/kpi_dashboard/models/kpi_dashboard.py
index 20642ed39..0af044470 100644
--- a/kpi_dashboard/models/kpi_dashboard.py
+++ b/kpi_dashboard/models/kpi_dashboard.py
@@ -3,6 +3,7 @@
from odoo import _, api, fields, models
from odoo.exceptions import ValidationError
+from odoo.tools.safe_eval import safe_eval
class KpiDashboard(models.Model):
@@ -119,9 +120,11 @@ class KpiDashboardItem(models.Model):
color = fields.Char()
font_color = fields.Char()
modify_context = fields.Boolean()
+ compute_on_fly = fields.Boolean(related="kpi_id.compute_on_fly")
modify_context_expression = fields.Char()
modify_color = fields.Boolean()
modify_color_expression = fields.Char()
+ special_context = fields.Char()
@api.depends("row", "size_y")
def _compute_end_row(self):
@@ -195,9 +198,17 @@ class KpiDashboardItem(models.Model):
}
)
if self.kpi_id.compute_on_fly:
+ kpi = self.kpi_id
+ if self.special_context:
+ try:
+ ctx = safe_eval(self.special_context)
+ if isinstance(ctx, dict):
+ kpi = kpi.with_context(**ctx)
+ except SyntaxError:
+ pass
vals.update(
{
- "value": self.kpi_id._compute_value(),
+ "value": kpi._compute_value(),
"value_last_update": fields.Datetime.now(),
}
)
diff --git a/kpi_dashboard/views/kpi_dashboard.xml b/kpi_dashboard/views/kpi_dashboard.xml
index e919d3d9c..06f7f1c37 100644
--- a/kpi_dashboard/views/kpi_dashboard.xml
+++ b/kpi_dashboard/views/kpi_dashboard.xml
@@ -162,15 +162,15 @@
widget="ace"
options="{'mode': 'python'}"
/>
+
+