diff options
| author | Lucas Lefèvre <lul@odoo.com> | 2019-07-15 11:01:42 +0000 |
|---|---|---|
| committer | Yannick Tivisse <yti@odoo.com> | 2019-07-17 13:17:59 +0000 |
| commit | 50043cc3ad50b508582d2117d2b37dbf66e948e5 (patch) | |
| tree | 02aa98beeceae789898fd5b18a60780bc2bfad93 | |
| parent | 556f8389b1505ef4c5e937922b5f319b927b6cb6 (diff) | |
[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) <yti@odoo.com>
| -rw-r--r-- | addons/lunch/models/lunch_product.py | 2 | ||||
| -rw-r--r-- | addons/lunch/models/lunch_supplier.py | 1 | ||||
| -rw-r--r-- | addons/lunch/security/lunch_security.xml | 14 | ||||
| -rw-r--r-- | addons/lunch/views/lunch_supplier_views.xml | 1 |
4 files changed, 17 insertions, 1 deletions
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 @@ <record id="base.default_user" model="res.users"> <field name="groups_id" eval="[(4,ref('lunch.group_lunch_manager'))]"/> </record> + + <record id="ir_rule_lunch_supplier_multi_company" model="ir.rule"> + <field name="name">Lunch supplier: Multi Company</field> + <field name="model_id" ref="model_lunch_supplier"/> + <field name="global" eval="True"/> + <field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field> + </record> + + <record id="ir_rule_lunch_product_multi_company" model="ir.rule"> + <field name="name">Lunch product: Multi Company</field> + <field name="model_id" ref="model_lunch_product"/> + <field name="global" eval="True"/> + <field name="domain_force">['|', ('company_id', '=', False), ('company_id', 'in', company_ids)]</field> + </record> </data> </odoo> 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 @@ <field name="active" invisible="1"/> <field name="email" attrs="{'required': [('send_by', '=', 'mail')]}"/> <field name="phone" attrs="{'required': [('send_by', '=', 'phone')]}"/> + <field name="company_id" groups="base.group_multi_company"/> <field name="responsible_id" attrs="{'required': [('send_by', '=', 'mail')]}" groups="base.group_no_one"/> </group> </group> |
