diff --git a/product_configurator/__manifest__.py b/product_configurator/__manifest__.py index 9a0f4313a6..d8b15b7d33 100644 --- a/product_configurator/__manifest__.py +++ b/product_configurator/__manifest__.py @@ -32,6 +32,7 @@ "/product_configurator/static/src/js/boolean_button_widget.esm.js", "/product_configurator/static/src/js/boolean_button_widget.xml", "/product_configurator/static/src/js/relational_fields.esm.js", + "/product_configurator/static/src/js/view.js", ] }, "demo": [ diff --git a/product_configurator/static/src/js/view.js b/product_configurator/static/src/js/view.js new file mode 100644 index 0000000000..fe5c68edee --- /dev/null +++ b/product_configurator/static/src/js/view.js @@ -0,0 +1,14 @@ +/** @odoo-module **/ + +import {patch} from "@web/core/utils/patch"; +import { View } from "@web/views/view"; + +patch(View.prototype, { + async loadView(props){ + var element = super.loadView(...arguments); + if (this?.props?.context?.is_product_configurator){ + this.env.bus.trigger("CLEAR-CACHES"); + } + return element + }, +}); \ No newline at end of file diff --git a/product_configurator/wizard/product_configurator.py b/product_configurator/wizard/product_configurator.py index 7b689bc211..25b1c31c9f 100644 --- a/product_configurator/wizard/product_configurator.py +++ b/product_configurator/wizard/product_configurator.py @@ -303,7 +303,7 @@ def apply_onchange_values(self, values, field_name, field_onchange): cfg_step = self.env["product.config.step.line"] dynamic_fields = {k: v for k, v in values.items() if k.startswith(field_prefix)} - + self.dyn_field_2_value = False # Get the unstored values from the client view for k, v in dynamic_fields.items(): attr_id = int(k.split(field_prefix)[1]) @@ -1040,6 +1040,7 @@ def get_wizard_action(self, view_cache=False, wizard=None): { "view_cache": view_cache, "differentiator": ctx.get("differentiator", 1) + 1, + "is_product_configurator":True, } ) if wizard: