From caa2802529b305684f638b8f85c4fb3e26a8aa30 Mon Sep 17 00:00:00 2001 From: Benoit Date: Tue, 8 Oct 2019 16:17:38 +0200 Subject: [PATCH 1/2] [FIX] action server in tree view must play on all selected records --- shopinvader_search_engine/views/product_category_view.xml | 2 +- shopinvader_search_engine/views/product_view.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shopinvader_search_engine/views/product_category_view.xml b/shopinvader_search_engine/views/product_category_view.xml index f007c2406a..a510bb21fe 100644 --- a/shopinvader_search_engine/views/product_category_view.xml +++ b/shopinvader_search_engine/views/product_category_view.xml @@ -41,7 +41,7 @@ - for categ in object: + for categ in records: categ.shopinvader_bind_ids._jobify_recompute_json(force_export=True) diff --git a/shopinvader_search_engine/views/product_view.xml b/shopinvader_search_engine/views/product_view.xml index a591ca1d5f..501b200f8f 100644 --- a/shopinvader_search_engine/views/product_view.xml +++ b/shopinvader_search_engine/views/product_view.xml @@ -58,7 +58,7 @@ - for template in object: + for template in records: for variant in obj.product_variant_ids: variant.shopinvader_bind_ids._jobify_recompute_json(force_export=True) From 8a0dc5ab6c9ffb8b6fd9de0b36588509f3a07edd Mon Sep 17 00:00:00 2001 From: Benoit Date: Tue, 19 May 2020 09:42:28 +0200 Subject: [PATCH 2/2] [IMP] add tests for recompute action --- shopinvader_search_engine/tests/__init__.py | 1 + .../tests/test_action_server.py | 37 +++++++++++++++++++ .../views/product_category_view.xml | 4 +- .../views/product_view.xml | 5 +-- 4 files changed, 42 insertions(+), 5 deletions(-) create mode 100644 shopinvader_search_engine/tests/test_action_server.py diff --git a/shopinvader_search_engine/tests/__init__.py b/shopinvader_search_engine/tests/__init__.py index 018e2cc529..ad8c565c71 100644 --- a/shopinvader_search_engine/tests/__init__.py +++ b/shopinvader_search_engine/tests/__init__.py @@ -1 +1,2 @@ from . import test_delete_product +from . import test_action_server diff --git a/shopinvader_search_engine/tests/test_action_server.py b/shopinvader_search_engine/tests/test_action_server.py new file mode 100644 index 0000000000..a5da1d4900 --- /dev/null +++ b/shopinvader_search_engine/tests/test_action_server.py @@ -0,0 +1,37 @@ +# Copyright 2020 Akretion (http://www.akretion.com). +# @author Sébastien BEAU +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.addons.queue_job.tests.common import JobMixin +from odoo.addons.shopinvader.tests.common import ProductCommonCase + + +class ActionServerCase(ProductCommonCase, JobMixin): + def test_action_server_on_product_template(self): + job = self.job_counter() + # we take the number of variant linked => the number of created jobs + bindings = self.env["shopinvader.product"].search([], limit=4) + variant_length = len(bindings.mapped("shopinvader_variant_ids")) + action = self.env.ref( + "shopinvader_search_engine.action_recompute_shopinvader_product" + ) + action_context = action.with_context( + active_model="product.template", + active_ids=bindings.mapped("record_id").ids, + ) + action_context.run() + self.assertEqual(job.count_created(), variant_length) + + def test_action_server_on_product_category(self): + self.backend.bind_all_category() + job = self.job_counter() + bindings = self.env["shopinvader.category"].search([], limit=4) + action = self.env.ref( + "shopinvader_search_engine.action_recompute_shopinvader_category" + ) + action_context = action.with_context( + active_model="product.category", + active_ids=bindings.mapped("record_id").ids, + ) + action_context.run() + self.assertEqual(job.count_created(), 4) diff --git a/shopinvader_search_engine/views/product_category_view.xml b/shopinvader_search_engine/views/product_category_view.xml index a510bb21fe..253f9c999d 100644 --- a/shopinvader_search_engine/views/product_category_view.xml +++ b/shopinvader_search_engine/views/product_category_view.xml @@ -40,9 +40,9 @@ Recompute shopinvader category + code - for categ in records: - categ.shopinvader_bind_ids._jobify_recompute_json(force_export=True) + records.mapped("shopinvader_bind_ids")._jobify_recompute_json(force_export=True) diff --git a/shopinvader_search_engine/views/product_view.xml b/shopinvader_search_engine/views/product_view.xml index 501b200f8f..602eeecb34 100644 --- a/shopinvader_search_engine/views/product_view.xml +++ b/shopinvader_search_engine/views/product_view.xml @@ -57,10 +57,9 @@ Recompute shopinvader product + code - for template in records: - for variant in obj.product_variant_ids: - variant.shopinvader_bind_ids._jobify_recompute_json(force_export=True) + records.mapped("product_variant_ids.shopinvader_bind_ids")._jobify_recompute_json(force_export=True)