summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorIvan Yelizariev <iel@odoo.com>2020-12-07 12:35:49 +0000
committerIvan Yelizariev <iel@odoo.com>2020-12-07 14:12:51 +0000
commite669ea8a6a79fdf7e309b3191c9648c60179d195 (patch)
tree87ff0e7c62533ab228af75e7c1db3c12f1229ca3 /addons
parent61436e861eabada1608529f3f0da09681d09b3e8 (diff)
[FIX] pos_cache: make it compatible with onboarding tool
STEPS: * install pos_cache in clean database without demo * open pos * click OK on popup "Would you like to load demo data" closes odoo/odoo#62955 Before: error, products are not loaded even after refreshing After: no errors, products are loaded Signed-off-by: pimodoo <pimodoo@users.noreply.github.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/pos_cache/__init__.py1
-rw-r--r--addons/pos_cache/controllers/__init__.py2
-rw-r--r--addons/pos_cache/controllers/main.py12
-rw-r--r--addons/pos_cache/static/src/js/pos_cache.js5
4 files changed, 18 insertions, 2 deletions
diff --git a/addons/pos_cache/__init__.py b/addons/pos_cache/__init__.py
index be9f4fab00a..0539a3a9d2e 100644
--- a/addons/pos_cache/__init__.py
+++ b/addons/pos_cache/__init__.py
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import models
+from . import controllers
diff --git a/addons/pos_cache/controllers/__init__.py b/addons/pos_cache/controllers/__init__.py
new file mode 100644
index 00000000000..9a57ed53e47
--- /dev/null
+++ b/addons/pos_cache/controllers/__init__.py
@@ -0,0 +1,2 @@
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from . import main
diff --git a/addons/pos_cache/controllers/main.py b/addons/pos_cache/controllers/main.py
new file mode 100644
index 00000000000..ac17d4fd891
--- /dev/null
+++ b/addons/pos_cache/controllers/main.py
@@ -0,0 +1,12 @@
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
+from odoo.addons.point_of_sale.controllers.main import PosController
+from odoo import http
+from odoo.http import request
+
+
+class PosCache(PosController):
+
+ @http.route()
+ def load_onboarding_data(self):
+ super().load_onboarding_data()
+ request.env["pos.cache"].refresh_all_caches()
diff --git a/addons/pos_cache/static/src/js/pos_cache.js b/addons/pos_cache/static/src/js/pos_cache.js
index 44135607b15..9f6bf6961ea 100644
--- a/addons/pos_cache/static/src/js/pos_cache.js
+++ b/addons/pos_cache/static/src/js/pos_cache.js
@@ -21,6 +21,7 @@ models.PosModel = models.PosModel.extend({
// uncached way, so get rid of it.
if (product_index !== -1) {
this.models.splice(product_index, 1);
+ this.product_model = product_model;
}
return posmodel_super.load_server_data.apply(this, arguments).then(function () {
// Give both the fields and domain to pos_cache in the
@@ -28,8 +29,8 @@ models.PosModel = models.PosModel.extend({
// values in the backend and they automatically stay in
// sync with whatever is defined (and maybe extended by
// other modules) in js.
- var product_fields = typeof product_model.fields === 'function' ? product_model.fields(self) : product_model.fields;
- var product_domain = typeof product_model.domain === 'function' ? product_model.domain(self) : product_model.domain;
+ var product_fields = typeof self.product_model.fields === 'function' ? self.product_model.fields(self) : self.product_model.fields;
+ var product_domain = typeof self.product_model.domain === 'function' ? self.product_model.domain(self) : self.product_model.domain;
var records = rpc.query({
model: 'pos.config',
method: 'get_products_from_cache',