From 3833f3607bbda9c55543e1d1c433a1b35c222556 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Mon, 15 Oct 2018 21:05:17 +0530 Subject: [PATCH 1/4] [IMP] while clean the odoo module version archive the product --- apps_product_creator/__manifest__.py | 4 +-- apps_product_creator/models/__init__.py | 1 + .../models/odoo_module_veresion.py | 25 +++++++++++++++++++ 3 files changed, 28 insertions(+), 2 deletions(-) create mode 100644 apps_product_creator/models/odoo_module_veresion.py diff --git a/apps_product_creator/__manifest__.py b/apps_product_creator/__manifest__.py index 26b47d6a..63dd8fec 100644 --- a/apps_product_creator/__manifest__.py +++ b/apps_product_creator/__manifest__.py @@ -4,10 +4,10 @@ 'name': 'Github product creator', 'summary': 'Create a product variant (by version) for every module found ' 'in the Github repositories', - 'version': '11.0.1.1.2', + 'version': '11.0.1.1.3', 'category': 'Connector', 'license': 'AGPL-3', - 'author': 'Odoo Community Association (OCA)', + 'author': 'Odoo Community Association (OCA), BizzAppDev', 'depends': [ 'github_connector_oca', 'github_connector_odoo', diff --git a/apps_product_creator/models/__init__.py b/apps_product_creator/models/__init__.py index 547d77b9..1b12992f 100644 --- a/apps_product_creator/models/__init__.py +++ b/apps_product_creator/models/__init__.py @@ -1,3 +1,4 @@ from . import product_template from . import product_product from . import odoo_module +from . import odoo_module_veresion \ No newline at end of file diff --git a/apps_product_creator/models/odoo_module_veresion.py b/apps_product_creator/models/odoo_module_veresion.py new file mode 100644 index 00000000..e7ec7e71 --- /dev/null +++ b/apps_product_creator/models/odoo_module_veresion.py @@ -0,0 +1,25 @@ +# Copyright (C) 2017-Today: Odoo Community Association (OCA) +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +from odoo import models, api + + +class OdooModuleVersion(models.Model): + _inherit = 'odoo.module.version' + + @api.multi + def _process_clean_module_version(self): + for module_version in self: + product = self.env['product.product'].search( + [('odoo_module_version_id', '=', module_version.id)]) + product.write({'active': False}) + all_varient_archived = all( + [ + not a for a in + product.product_tmpl_id.product_variant_ids.mapped( + 'active') + ] + ) + if all_varient_archived: + product.product_tmpl_id.write( + {'active': False, 'website_published': False}) + return super(OdooModuleVersion, self)._process_clean_module_version() From 00c63f54b9c78fa6b9bb363ed509d44377dfd74b Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Mon, 15 Oct 2018 21:09:23 +0530 Subject: [PATCH 2/4] [FIX]Added new line at the end of file --- apps_product_creator/models/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps_product_creator/models/__init__.py b/apps_product_creator/models/__init__.py index 1b12992f..f026de32 100644 --- a/apps_product_creator/models/__init__.py +++ b/apps_product_creator/models/__init__.py @@ -1,4 +1,4 @@ from . import product_template from . import product_product from . import odoo_module -from . import odoo_module_veresion \ No newline at end of file +from . import odoo_module_veresion From 7d39f75c3a546884d1102f192475e3d6fe934337 Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Tue, 16 Oct 2018 11:31:51 +0530 Subject: [PATCH 3/4] [FIX] fix some typo --- apps_product_creator/models/__init__.py | 2 +- .../{odoo_module_veresion.py => odoo_module_version.py} | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) rename apps_product_creator/models/{odoo_module_veresion.py => odoo_module_version.py} (84%) diff --git a/apps_product_creator/models/__init__.py b/apps_product_creator/models/__init__.py index f026de32..16115c1e 100644 --- a/apps_product_creator/models/__init__.py +++ b/apps_product_creator/models/__init__.py @@ -1,4 +1,4 @@ from . import product_template from . import product_product from . import odoo_module -from . import odoo_module_veresion +from . import odoo_module_version diff --git a/apps_product_creator/models/odoo_module_veresion.py b/apps_product_creator/models/odoo_module_version.py similarity index 84% rename from apps_product_creator/models/odoo_module_veresion.py rename to apps_product_creator/models/odoo_module_version.py index e7ec7e71..3f544bc8 100644 --- a/apps_product_creator/models/odoo_module_veresion.py +++ b/apps_product_creator/models/odoo_module_version.py @@ -1,4 +1,4 @@ -# Copyright (C) 2017-Today: Odoo Community Association (OCA) +# Copyright (C) 2017-Today: Odoo Community Association (OCA), BizzAppDev # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import models, api @@ -12,14 +12,14 @@ def _process_clean_module_version(self): product = self.env['product.product'].search( [('odoo_module_version_id', '=', module_version.id)]) product.write({'active': False}) - all_varient_archived = all( + all_variant_archived = all( [ not a for a in product.product_tmpl_id.product_variant_ids.mapped( 'active') ] ) - if all_varient_archived: + if all_variant_archived: product.product_tmpl_id.write( {'active': False, 'website_published': False}) return super(OdooModuleVersion, self)._process_clean_module_version() From 95fa60c1f0922ebe704f9d479a972e1c0bd488ce Mon Sep 17 00:00:00 2001 From: Ruchir Shukla Date: Thu, 25 Oct 2018 11:29:15 +0530 Subject: [PATCH 4/4] [IMP]improve logic with less iterations --- apps_product_creator/models/odoo_module_version.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/apps_product_creator/models/odoo_module_version.py b/apps_product_creator/models/odoo_module_version.py index 3f544bc8..66f39ba6 100644 --- a/apps_product_creator/models/odoo_module_version.py +++ b/apps_product_creator/models/odoo_module_version.py @@ -8,18 +8,18 @@ class OdooModuleVersion(models.Model): @api.multi def _process_clean_module_version(self): + product_obj = self.env['product.product'] for module_version in self: - product = self.env['product.product'].search( + product = product_obj.search( [('odoo_module_version_id', '=', module_version.id)]) product.write({'active': False}) - all_variant_archived = all( + active_variants = product_obj.search_count( [ - not a for a in - product.product_tmpl_id.product_variant_ids.mapped( - 'active') + ('product_tmpl_id', '=', product.product_tmpl_id.id), + ('active', '=', True) ] ) - if all_variant_archived: + if not active_variants: product.product_tmpl_id.write( {'active': False, 'website_published': False}) return super(OdooModuleVersion, self)._process_clean_module_version()