From f258bf6fdb3d747125891aef6b710125f05211d7 Mon Sep 17 00:00:00 2001 From: Renato Date: Sun, 4 Aug 2019 19:44:20 -0300 Subject: [PATCH 1/5] [REF] Move python object files to models folder --- product_usability/__init__.py | 4 ++-- product_usability/models/__init__.py | 4 ++++ product_usability/{ => models}/pricelist.py | 0 product_usability/{ => models}/product.py | 0 4 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 product_usability/models/__init__.py rename product_usability/{ => models}/pricelist.py (100%) rename product_usability/{ => models}/product.py (100%) diff --git a/product_usability/__init__.py b/product_usability/__init__.py index fe50f8f..69f7bab 100644 --- a/product_usability/__init__.py +++ b/product_usability/__init__.py @@ -1,3 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from . import product -from . import pricelist +from . import models diff --git a/product_usability/models/__init__.py b/product_usability/models/__init__.py new file mode 100644 index 0000000..7ef8d55 --- /dev/null +++ b/product_usability/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import product +from . import pricelist diff --git a/product_usability/pricelist.py b/product_usability/models/pricelist.py similarity index 100% rename from product_usability/pricelist.py rename to product_usability/models/pricelist.py diff --git a/product_usability/product.py b/product_usability/models/product.py similarity index 100% rename from product_usability/product.py rename to product_usability/models/product.py From b762af222d6f987fdc09dfc75c6b6457645f4d04 Mon Sep 17 00:00:00 2001 From: Renato Date: Sun, 4 Aug 2019 19:49:03 -0300 Subject: [PATCH 2/5] [REF] moved view xml file to new folder views --- product_usability/__manifest__.py | 2 +- product_usability/{ => views}/product_view.xml | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename product_usability/{ => views}/product_view.xml (100%) diff --git a/product_usability/__manifest__.py b/product_usability/__manifest__.py index f37703c..5e5cc3b 100644 --- a/product_usability/__manifest__.py +++ b/product_usability/__manifest__.py @@ -28,7 +28,7 @@ This module has been written by Alexis de Lattre from Akretion Date: Sun, 4 Aug 2019 20:07:24 -0300 Subject: [PATCH 3/5] [REF] Separate python objects in new files --- product_usability/models/__init__.py | 3 + product_usability/models/product.py | 65 ++++++------------- .../models/product_price_history.py | 16 +++++ .../models/product_supplierinfo.py | 13 ++++ product_usability/models/product_template.py | 42 ++++++++++++ 5 files changed, 94 insertions(+), 45 deletions(-) create mode 100644 product_usability/models/product_price_history.py create mode 100644 product_usability/models/product_supplierinfo.py create mode 100644 product_usability/models/product_template.py diff --git a/product_usability/models/__init__.py b/product_usability/models/__init__.py index 7ef8d55..ee1a5d5 100644 --- a/product_usability/models/__init__.py +++ b/product_usability/models/__init__.py @@ -1,4 +1,7 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import product +from . import product_template +from . import product_supplierinfo +from . import product_price_history from . import pricelist diff --git a/product_usability/models/product.py b/product_usability/models/product.py index 5a95211..c502ec4 100644 --- a/product_usability/models/product.py +++ b/product_usability/models/product.py @@ -1,41 +1,31 @@ - +# © 2015-2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# @author Raphaël Valyi # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from odoo import models, fields -class ProductTemplate(models.Model): - _inherit = 'product.template' - - name = fields.Char(track_visibility='onchange') - type = fields.Selection(track_visibility='onchange') - categ_id = fields.Many2one(track_visibility='onchange') - list_price = fields.Float(track_visibility='onchange') - sale_ok = fields.Boolean(track_visibility='onchange') - purchase_ok = fields.Boolean(track_visibility='onchange') - active = fields.Boolean(track_visibility='onchange') - - def show_product_price_history(self): - self.ensure_one() - products = self.env['product.product'].search( - [('product_tmpl_id', '=', self._context['active_id'])]) - action = self.env['ir.actions.act_window'].for_xml_id( - 'product_usability', 'product_price_history_action') - action.update({ - 'domain': "[('product_id', 'in', %s)]" % products.ids, - }) - return action - - class ProductProduct(models.Model): _inherit = 'product.product' - default_code = fields.Char(track_visibility='onchange', copy=False) - barcode = fields.Char(track_visibility='onchange', copy=False) - weight = fields.Float(track_visibility='onchange') - active = fields.Boolean(track_visibility='onchange') + default_code = fields.Char( + track_visibility='onchange', + copy=False) + + barcode = fields.Char( + track_visibility='onchange', + copy=False) + + weight = fields.Float( + track_visibility='onchange') + + active = fields.Boolean( + track_visibility='onchange') + price_history_ids = fields.One2many( - 'product.price.history', 'product_id', + comodel_name='product.price.history', + inverse_name='product_id', string='Product Price History') _sql_constraints = [( @@ -50,24 +40,9 @@ class ProductProduct(models.Model): def show_product_price_history(self): self.ensure_one() - action = self.env['ir.actions.act_window'].for_xml_id( + action = self.env.ref(['ir.actions.act_window'].for_xml_id( 'product_usability', 'product_price_history_action') action.update({ 'domain': "[('product_id', '=', %d)]" % self.ids[0], }) return action - - -class ProductSupplierinfo(models.Model): - _inherit = 'product.supplierinfo' - - name = fields.Many2one( - domain=[('supplier', '=', True), ('parent_id', '=', False)]) - - -class ProductPriceHistory(models.Model): - _inherit = 'product.price.history' - - company_currency_id = fields.Many2one( - related='company_id.currency_id', readonly=True, compute_sudo=True, - string='Company Currency') diff --git a/product_usability/models/product_price_history.py b/product_usability/models/product_price_history.py new file mode 100644 index 0000000..af7b390 --- /dev/null +++ b/product_usability/models/product_price_history.py @@ -0,0 +1,16 @@ +# © 2015-2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# @author Raphaël Valyi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class ProductPriceHistory(models.Model): + _inherit = 'product.price.history' + + company_currency_id = fields.Many2one( + related='company_id.currency_id', + readonly=True, + compute_sudo=True, + string='Company Currency') diff --git a/product_usability/models/product_supplierinfo.py b/product_usability/models/product_supplierinfo.py new file mode 100644 index 0000000..2526eab --- /dev/null +++ b/product_usability/models/product_supplierinfo.py @@ -0,0 +1,13 @@ +# © 2015-2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# @author Raphaël Valyi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class ProductSupplierinfo(models.Model): + _inherit = 'product.supplierinfo' + + name = fields.Many2one( + domain=[('supplier', '=', True), ('parent_id', '=', False)]) diff --git a/product_usability/models/product_template.py b/product_usability/models/product_template.py new file mode 100644 index 0000000..1e7344e --- /dev/null +++ b/product_usability/models/product_template.py @@ -0,0 +1,42 @@ +# © 2015-2016 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# @author Raphaël Valyi +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class ProductTemplate(models.Model): + _inherit = 'product.template' + + name = fields.Char( + track_visibility='onchange') + + type = fields.Selection( + track_visibility='onchange') + + categ_id = fields.Many2one( + track_visibility='onchange') + + list_price = fields.Float( + track_visibility='onchange') + + sale_ok = fields.Boolean( + track_visibility='onchange') + + purchase_ok = fields.Boolean( + track_visibility='onchange') + + active = fields.Boolean( + track_visibility='onchange') + + def show_product_price_history(self): + self.ensure_one() + products = self.env['product.product'].search( + [('product_tmpl_id', '=', self._context['active_id'])]) + action = self.env['ir.actions.act_window'].for_xml_id( + 'product_usability', 'product_price_history_action') + action.update({ + 'domain': "[('product_id', 'in', %s)]" % products.ids, + }) + return action From fa22c63176241f5a99da4aa47188bc0876eebfdf Mon Sep 17 00:00:00 2001 From: Renato Date: Sun, 4 Aug 2019 20:24:14 -0300 Subject: [PATCH 4/5] [REF] Separate xml views in new files --- product_usability/__manifest__.py | 6 +- .../views/product_price_history_view.xml | 65 +++++ .../views/product_pricelist_view.xml | 65 +++++ .../views/product_supplierinfo_view.xml | 38 +++ .../views/product_template_view.xml | 62 +++++ product_usability/views/product_view.xml | 224 +----------------- 6 files changed, 248 insertions(+), 212 deletions(-) create mode 100644 product_usability/views/product_price_history_view.xml create mode 100644 product_usability/views/product_pricelist_view.xml create mode 100644 product_usability/views/product_supplierinfo_view.xml create mode 100644 product_usability/views/product_template_view.xml diff --git a/product_usability/__manifest__.py b/product_usability/__manifest__.py index 5e5cc3b..46cd262 100644 --- a/product_usability/__manifest__.py +++ b/product_usability/__manifest__.py @@ -28,7 +28,11 @@ This module has been written by Alexis de Lattre from Akretion + + + + + + + product.price.history.form + product.price.history + +
+ + + + + + + + +
+
+
+ + + product.price.history.tree + product.price.history + + + + + + + + + + + + + + product.price.history.search + product.price.history + + + + + + + + + + + + + + Product Price History + product.price.history + tree,form + {'product_price_history_main_view': True} + + +
diff --git a/product_usability/views/product_pricelist_view.xml b/product_usability/views/product_pricelist_view.xml new file mode 100644 index 0000000..4159823 --- /dev/null +++ b/product_usability/views/product_pricelist_view.xml @@ -0,0 +1,65 @@ + + + + + + + + usability.product.pricelist.tree + product.pricelist + + + + + + + + + + + usability.product.pricelist.item.search + product.pricelist.item + + + + + + + + + + + + + + + + + + + usability.product.pricelist.item.form + product.pricelist.item + + + + + + + + + + usability.product.pricelist.item.tree + product.pricelist.item + + + + + + + + + diff --git a/product_usability/views/product_supplierinfo_view.xml b/product_usability/views/product_supplierinfo_view.xml new file mode 100644 index 0000000..01120d2 --- /dev/null +++ b/product_usability/views/product_supplierinfo_view.xml @@ -0,0 +1,38 @@ + + + + + + + + product.supplierinfo + + + + + + + + + + + + + + + + + product.supplierinfo + + + + + + + + + diff --git a/product_usability/views/product_template_view.xml b/product_usability/views/product_template_view.xml new file mode 100644 index 0000000..5114bf6 --- /dev/null +++ b/product_usability/views/product_template_view.xml @@ -0,0 +1,62 @@ + + + + + + + + usability.product.template.form + product.template + + + +