summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJaykishan Solanki <jao@odoo.com>2017-07-19 10:59:34 +0200
committerRichard Mathot <rim@odoo.com>2017-07-20 15:32:20 +0200
commit6999d054fca40d8858d2c8fef18dd72c9023ba13 (patch)
tree1636ceec28a9e04b68d9f3797b407afa2ad2dc9e
parentb446930dc42479f524eab7e677c5b2007f9fa0a6 (diff)
[ADD] delivery: delivery.carrier must follow the same multi-company rules than the products they reference
-rw-r--r--addons/delivery/__manifest__.py1
-rw-r--r--addons/delivery/models/delivery_carrier.py1
-rw-r--r--addons/delivery/security/delivery_carrier_security.xml11
-rw-r--r--addons/delivery/views/delivery_view.xml3
4 files changed, 16 insertions, 0 deletions
diff --git a/addons/delivery/__manifest__.py b/addons/delivery/__manifest__.py
index 736da783817..cb276e1c246 100644
--- a/addons/delivery/__manifest__.py
+++ b/addons/delivery/__manifest__.py
@@ -16,6 +16,7 @@ invoices from picking, the system is able to add and compute the shipping line.
'depends': ['sale_stock'],
'data': [
'security/ir.model.access.csv',
+ 'security/delivery_carrier_security.xml',
'views/product_packaging_view.xml',
'views/delivery_view.xml',
'views/partner_view.xml',
diff --git a/addons/delivery/models/delivery_carrier.py b/addons/delivery/models/delivery_carrier.py
index 2f9cff280e8..e026f00ce62 100644
--- a/addons/delivery/models/delivery_carrier.py
+++ b/addons/delivery/models/delivery_carrier.py
@@ -38,6 +38,7 @@ class DeliveryCarrier(models.Model):
delivery_type = fields.Selection([('fixed', 'Fixed Price')], string='Provider', default='fixed', required=True)
integration_level = fields.Selection([('rate', 'Get Rate'), ('rate_and_ship', 'Get Rate and Create Shipment')], string="Integration Level", default='rate_and_ship', help="Action while validating Delivery Orders")
prod_environment = fields.Boolean("Environment", help="Set to True if your credentials are certified for production.")
+ company_id = fields.Many2one('res.company', string='Company', related='product_id.company_id', store=True)
product_type = fields.Selection(related='product_id.type', default='service')
product_sale_ok = fields.Boolean(related='product_id.sale_ok', default=False)
diff --git a/addons/delivery/security/delivery_carrier_security.xml b/addons/delivery/security/delivery_carrier_security.xml
new file mode 100644
index 00000000000..8fad0891676
--- /dev/null
+++ b/addons/delivery/security/delivery_carrier_security.xml
@@ -0,0 +1,11 @@
+<?xml version='1.0' encoding='utf-8'?>
+<odoo>
+ <data noupdate="1">
+ <record model="ir.rule" id="delivery_carrier_comp_rule">
+ <field name="name">Delivery Carrier multi-company</field>
+ <field name="model_id" ref="model_delivery_carrier"/>
+ <field name="global" eval="True"/>
+ <field name="domain_force"> ['|',('company_id','=',user.company_id.id),('company_id','=',False)]</field>
+ </record>
+ </data>
+</odoo>
diff --git a/addons/delivery/views/delivery_view.xml b/addons/delivery/views/delivery_view.xml
index 54b4ccc325e..7e1f33cbf5b 100644
--- a/addons/delivery/views/delivery_view.xml
+++ b/addons/delivery/views/delivery_view.xml
@@ -88,6 +88,9 @@
<field nolabel="1" name="amount" attrs="{'required':[('free_over','!=', False)], 'invisible':[('free_over','=', False)]}"/>
</div>
</group>
+ <group>
+ <field name="company_id"/>
+ </group>
</group>
<notebook>
<page string="Pricing" attrs="{'invisible': [('delivery_type', 'not in', ['fixed', 'base_on_rule'])]}">