From 50043cc3ad50b508582d2117d2b37dbf66e948e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Lucas=20Lef=C3=A8vre?= Date: Mon, 15 Jul 2019 11:01:42 +0000 Subject: [PATCH] [IMP] lunch: Add multi-company ir.rule - Add a related on the lunch.supplier to the company id of the linked res.partner - Add related on the product: to the company id of the linked lunch.supplier - add multi company Record rules closes odoo/odoo#34859 Signed-off-by: Yannick Tivisse (yti) --- addons/lunch/models/lunch_product.py | 2 +- addons/lunch/models/lunch_supplier.py | 1 + addons/lunch/security/lunch_security.xml | 14 ++++++++++++++ addons/lunch/views/lunch_supplier_views.xml | 1 + 4 files changed, 17 insertions(+), 1 deletion(-) diff --git a/addons/lunch/models/lunch_product.py b/addons/lunch/models/lunch_product.py index 07a6290e157..b46d212adf8 100644 --- a/addons/lunch/models/lunch_product.py +++ b/addons/lunch/models/lunch_product.py @@ -94,7 +94,7 @@ class LunchProduct(models.Model): supplier_id = fields.Many2one('lunch.supplier', 'Vendor', required=True) active = fields.Boolean(default=True) - company_id = fields.Many2one('res.company', default=lambda self: self.env.company) + company_id = fields.Many2one('res.company', related='supplier_id.company_id', store=True) currency_id = fields.Many2one('res.currency', related='company_id.currency_id') # image: all image fields are base64 encoded and PIL-supported diff --git a/addons/lunch/models/lunch_supplier.py b/addons/lunch/models/lunch_supplier.py index e4e975536bd..5a969f9f0d2 100644 --- a/addons/lunch/models/lunch_supplier.py +++ b/addons/lunch/models/lunch_supplier.py @@ -48,6 +48,7 @@ class LunchSupplier(models.Model): city = fields.Char(related='partner_id.city', readonly=False) state_id = fields.Many2one("res.country.state", related='partner_id.state_id', readonly=False) country_id = fields.Many2one('res.country', related='partner_id.country_id', readonly=False) + company_id = fields.Many2one('res.company', related='partner_id.company_id', readonly=False) responsible_id = fields.Many2one('res.users', string="Responsible", domain=lambda self: [('groups_id', 'in', self.env.ref('lunch.group_lunch_manager').id)], default=lambda self: self.env.user, diff --git a/addons/lunch/security/lunch_security.xml b/addons/lunch/security/lunch_security.xml index 1da0445b001..4e74df8ff59 100644 --- a/addons/lunch/security/lunch_security.xml +++ b/addons/lunch/security/lunch_security.xml @@ -44,5 +44,19 @@ + + + Lunch supplier: Multi Company + + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + + + + Lunch product: Multi Company + + + ['|', ('company_id', '=', False), ('company_id', 'in', company_ids)] + diff --git a/addons/lunch/views/lunch_supplier_views.xml b/addons/lunch/views/lunch_supplier_views.xml index af5620035a8..84370caa55e 100644 --- a/addons/lunch/views/lunch_supplier_views.xml +++ b/addons/lunch/views/lunch_supplier_views.xml @@ -40,6 +40,7 @@ +