diff --git a/odex30_base/kpi_scorecard/static/src/js/kpi_formula.js b/odex30_base/kpi_scorecard/static/src/js/kpi_formula.js index 0d74c3b..6460d3f 100644 --- a/odex30_base/kpi_scorecard/static/src/js/kpi_formula.js +++ b/odex30_base/kpi_scorecard/static/src/js/kpi_formula.js @@ -27,7 +27,7 @@ export class KpiFormulaField extends Component { onWillStart(async () => { try { // Load draggabilly library - await loadJS("kpi_scorecard/static/lib/draggabilly/draggabilly.pkgd.js"); + await loadJS("/kpi_scorecard/static/lib/draggabilly/draggabilly.pkgd.js"); await this.loadFormulaData(); } catch (error) { console.error("Error loading KPI formula:", error); @@ -51,12 +51,14 @@ export class KpiFormulaField extends Component { async loadFormulaData() { try { + const fieldValue = this.props.record.data[this.props.name] || ""; + if (this.props.readonly) { // Load formula parts for readonly display this.state.formulaParts = await this.orm.call( "kpi.item", "action_render_formula", - [this.props.value || ""] + [fieldValue] ); } else { // Load variables for edit mode @@ -65,13 +67,14 @@ export class KpiFormulaField extends Component { this.state.variables = await this.orm.call( "kpi.item", "action_return_measures", - [[recordId], this.props.value || ""] + [[recordId], fieldValue] ); } } this.state.isLoaded = true; } catch (error) { console.error("Error loading formula data:", error); + this.state.isLoaded = true; // Set to true even on error } } @@ -128,7 +131,8 @@ export class KpiFormulaField extends Component { } }); - this.props.update(formula.trim()); + // Update using Odoo 18 method + this.props.record.update({ [this.props.name]: formula.trim() }); } onSearch(ev) { @@ -176,5 +180,7 @@ export class KpiFormulaField extends Component { } } -// Register the field widget -registry.category("fields").add("kpi_formula", KpiFormulaField); \ No newline at end of file +// ✅ الطريقة الصحيحة للتسجيل في Odoo 18 +registry.category("fields").add("kpi_formula", { + component: KpiFormulaField, +}); diff --git a/odex30_base/kpi_scorecard/static/src/xml/kpi_formula_template.xml b/odex30_base/kpi_scorecard/static/src/xml/kpi_formula_template.xml index ed2f95b..540c897 100644 --- a/odex30_base/kpi_scorecard/static/src/xml/kpi_formula_template.xml +++ b/odex30_base/kpi_scorecard/static/src/xml/kpi_formula_template.xml @@ -2,14 +2,14 @@
+
- - + t-att-title="part.name" + t-esc="part.name"/> @@ -17,51 +17,74 @@
+ +
+
+
+
- -
-
-
- -
- - -
-
+ + +
+
+
+ + +
+ + +
+
+
+
-
+
+
Operators
- +
+ + + + + + +
+
Number
+
Formula Builder
Current Formula:
+ +
+ Loading formula editor...
- \ No newline at end of file + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file