From b91212a79a40abfa0fd8e559539bfaa067ba0961 Mon Sep 17 00:00:00 2001 From: robinkeunen Date: Sun, 30 Sep 2018 18:48:13 +0200 Subject: [PATCH 1/3] [ADD] custom beesdoo product view --- beesdoo_product/__openerp__.py | 8 +++++++- beesdoo_product/models/beesdoo_product.py | 25 ++++++++++++++++++++++- beesdoo_product/views/beesdoo_product.xml | 24 ++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) diff --git a/beesdoo_product/__openerp__.py b/beesdoo_product/__openerp__.py index ac8eb60..fcf1478 100644 --- a/beesdoo_product/__openerp__.py +++ b/beesdoo_product/__openerp__.py @@ -20,7 +20,13 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': ['beesdoo_base', 'product', 'point_of_sale','pos_price_to_weight'], + 'depends': [ + 'beesdoo_base', + 'product', + 'point_of_sale', + 'pos_price_to_weight', + 'stock_coverage', + ], # always loaded 'data': [ diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index 9ac28a1..72f0ab9 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -15,6 +15,20 @@ class BeesdooProduct(models.Model): main_seller_id = fields.Many2one('res.partner', compute='_compute_main_seller_id', store=True) + main_supplierinfo = fields.Many2one( + 'product.supplierinfo', + string='Main Supplier Information', + compute='_compute_main_supplierinfo' + ) + main_price = fields.Float( + string='Price', + compute='_compute_main_supplierinfo', + ) + main_minimum_qty = fields.Float( + string='Minimum Quantity', + compute='_compute_main_supplierinfo', + ) + display_unit = fields.Many2one('product.uom') default_reference_unit = fields.Many2one('product.uom') display_weight = fields.Float(compute='_get_display_weight', store=True) @@ -49,7 +63,16 @@ class BeesdooProduct(models.Model): product.scale_sale_unit = 'F' elif product.uom_id.category_id.type == 'weight': product.scale_sale_unit = 'P' - + + @api.multi + @api.depends('seller_ids') + def _compute_main_supplierinfo(self): + for product in self: + supplierinfo = product._get_main_supplier_info() + product.main_supplierinfo = supplierinfo + product.main_price = supplierinfo.price + product.main_minimum_qty = supplierinfo.min_qty + def _get_main_supplier_info(self): return self.seller_ids.sorted(key=lambda seller: seller.date_start, reverse=True) diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 010d687..6ebb7a3 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -72,6 +72,30 @@ + + + bees.product.template.tree + product.template + 14 + + + + + + + + + + + + + + + + + + + bees.product.label.form beesdoo.product.label From 199e470c858687cdc68826960f8c8ff7f5af67fe Mon Sep 17 00:00:00 2001 From: robinkeunen Date: Fri, 14 Dec 2018 16:07:09 +0100 Subject: [PATCH 2/3] Revert "[ADD] custom beesdoo product view" This reverts commit b91212a79a40abfa0fd8e559539bfaa067ba0961. --- beesdoo_product/__openerp__.py | 8 +------- beesdoo_product/models/beesdoo_product.py | 25 +---------------------- beesdoo_product/views/beesdoo_product.xml | 24 ---------------------- 3 files changed, 2 insertions(+), 55 deletions(-) diff --git a/beesdoo_product/__openerp__.py b/beesdoo_product/__openerp__.py index fcf1478..ac8eb60 100644 --- a/beesdoo_product/__openerp__.py +++ b/beesdoo_product/__openerp__.py @@ -20,13 +20,7 @@ 'version': '0.1', # any module necessary for this one to work correctly - 'depends': [ - 'beesdoo_base', - 'product', - 'point_of_sale', - 'pos_price_to_weight', - 'stock_coverage', - ], + 'depends': ['beesdoo_base', 'product', 'point_of_sale','pos_price_to_weight'], # always loaded 'data': [ diff --git a/beesdoo_product/models/beesdoo_product.py b/beesdoo_product/models/beesdoo_product.py index 72f0ab9..9ac28a1 100644 --- a/beesdoo_product/models/beesdoo_product.py +++ b/beesdoo_product/models/beesdoo_product.py @@ -15,20 +15,6 @@ class BeesdooProduct(models.Model): main_seller_id = fields.Many2one('res.partner', compute='_compute_main_seller_id', store=True) - main_supplierinfo = fields.Many2one( - 'product.supplierinfo', - string='Main Supplier Information', - compute='_compute_main_supplierinfo' - ) - main_price = fields.Float( - string='Price', - compute='_compute_main_supplierinfo', - ) - main_minimum_qty = fields.Float( - string='Minimum Quantity', - compute='_compute_main_supplierinfo', - ) - display_unit = fields.Many2one('product.uom') default_reference_unit = fields.Many2one('product.uom') display_weight = fields.Float(compute='_get_display_weight', store=True) @@ -63,16 +49,7 @@ class BeesdooProduct(models.Model): product.scale_sale_unit = 'F' elif product.uom_id.category_id.type == 'weight': product.scale_sale_unit = 'P' - - @api.multi - @api.depends('seller_ids') - def _compute_main_supplierinfo(self): - for product in self: - supplierinfo = product._get_main_supplier_info() - product.main_supplierinfo = supplierinfo - product.main_price = supplierinfo.price - product.main_minimum_qty = supplierinfo.min_qty - + def _get_main_supplier_info(self): return self.seller_ids.sorted(key=lambda seller: seller.date_start, reverse=True) diff --git a/beesdoo_product/views/beesdoo_product.xml b/beesdoo_product/views/beesdoo_product.xml index 6ebb7a3..010d687 100644 --- a/beesdoo_product/views/beesdoo_product.xml +++ b/beesdoo_product/views/beesdoo_product.xml @@ -72,30 +72,6 @@ - - - bees.product.template.tree - product.template - 14 - - - - - - - - - - - - - - - - - - - bees.product.label.form beesdoo.product.label From dc7ce6281024876b2bddfc73fdefcfd67d9d6603 Mon Sep 17 00:00:00 2001 From: robinkeunen Date: Fri, 14 Dec 2018 16:07:55 +0100 Subject: [PATCH 3/3] [ADD] beesdoo_custom module and custom product view --- beesdoo_custom/__init__.py | 1 + beesdoo_custom/__openerp__.py | 27 ++++++++++++++++++++++ beesdoo_custom/models/__init__.py | 1 + beesdoo_custom/models/beesdoo_product.py | 29 ++++++++++++++++++++++++ beesdoo_custom/views/beesdoo_product.xml | 26 +++++++++++++++++++++ 5 files changed, 84 insertions(+) create mode 100644 beesdoo_custom/__init__.py create mode 100644 beesdoo_custom/__openerp__.py create mode 100644 beesdoo_custom/models/__init__.py create mode 100644 beesdoo_custom/models/beesdoo_product.py create mode 100644 beesdoo_custom/views/beesdoo_product.xml diff --git a/beesdoo_custom/__init__.py b/beesdoo_custom/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/beesdoo_custom/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/beesdoo_custom/__openerp__.py b/beesdoo_custom/__openerp__.py new file mode 100644 index 0000000..e4d03c7 --- /dev/null +++ b/beesdoo_custom/__openerp__.py @@ -0,0 +1,27 @@ +# -*- coding: utf-8 -*- +{ + 'name': "beesdoo_custom", + + 'summary': """ + View and field definition specific to BEES' needs. + """, + + 'author': "Beescoop - Cellule IT", + 'website': "https://github.com/beescoop/Obeesdoo", + + # Categories can be used to filter modules in modules listing + # Check https://github.com/odoo/odoo/blob/master/openerp/addons/base/module/module_data.xml + # for the full list + 'category': 'Sales Management', + 'version': '0.1', + + # any module necessary for this one to work correctly + 'depends': [ + 'beesdoo_product', + ], + + # always loaded + 'data': [ + 'views/beesdoo_product.xml', + ], +} diff --git a/beesdoo_custom/models/__init__.py b/beesdoo_custom/models/__init__.py new file mode 100644 index 0000000..0494b5e --- /dev/null +++ b/beesdoo_custom/models/__init__.py @@ -0,0 +1 @@ +from . import beesdoo_product diff --git a/beesdoo_custom/models/beesdoo_product.py b/beesdoo_custom/models/beesdoo_product.py new file mode 100644 index 0000000..d7af564 --- /dev/null +++ b/beesdoo_custom/models/beesdoo_product.py @@ -0,0 +1,29 @@ +# -*- coding: utf-8 -*- +from openerp import models, fields, api + + +class BeesdooProduct(models.Model): + _inherit = "product.template" + + main_supplierinfo = fields.Many2one( + 'product.supplierinfo', + string='Main Supplier Information', + compute='_compute_main_supplierinfo' + ) + main_price = fields.Float( + string='Price', + compute='_compute_main_supplierinfo', + ) + main_minimum_qty = fields.Float( + string='Minimum Quantity', + compute='_compute_main_supplierinfo', + ) + + @api.multi + @api.depends('seller_ids') + def _compute_main_supplierinfo(self): + for product in self: + supplierinfo = product._get_main_supplier_info() + product.main_supplierinfo = supplierinfo + product.main_price = supplierinfo.price + product.main_minimum_qty = supplierinfo.min_qty diff --git a/beesdoo_custom/views/beesdoo_product.xml b/beesdoo_custom/views/beesdoo_product.xml new file mode 100644 index 0000000..a3fd954 --- /dev/null +++ b/beesdoo_custom/views/beesdoo_product.xml @@ -0,0 +1,26 @@ + + + + + bees.product.template.tree + product.template + 14 + + + + + + + + + + + + + + + + + + +