summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLucas Lefèvre <lul@odoo.com>2019-07-15 11:01:42 +0000
committerYannick Tivisse <yti@odoo.com>2019-07-17 13:17:59 +0000
commit50043cc3ad50b508582d2117d2b37dbf66e948e5 (patch)
tree02aa98beeceae789898fd5b18a60780bc2bfad93
parent556f8389b1505ef4c5e937922b5f319b927b6cb6 (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.py2
-rw-r--r--addons/lunch/models/lunch_supplier.py1
-rw-r--r--addons/lunch/security/lunch_security.xml14
-rw-r--r--addons/lunch/views/lunch_supplier_views.xml1
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>