From 0bfb7d6915bbb644df858bba796404e5cf2995c1 Mon Sep 17 00:00:00 2001
From: Hitesh Trivedi <htr@openerp.com>
Date: Wed, 8 Apr 2015 11:53:32 +0530
Subject: [PATCH] [IMP] sales_team:  Make sales team company specific

---
 addons/crm/web_planner.py                          | 3 ++-
 addons/sales_team/sales_team.py                    | 1 +
 addons/sales_team/sales_team.xml                   | 2 ++
 addons/sales_team/security/sales_team_security.xml | 5 +++++
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/addons/crm/web_planner.py b/addons/crm/web_planner.py
index a01c7c7c5bc7..727885b4828c 100644
--- a/addons/crm/web_planner.py
+++ b/addons/crm/web_planner.py
@@ -14,7 +14,8 @@ class PlannerCrm(models.Model):
 
     @api.model
     def _prepare_planner_crm_data(self):
-        sales_team = self.env.ref('sales_team.team_sales_department')
+        # sudo is needed to avoid error message when current user's company != sale_department company
+        sales_team = self.sudo().env.ref('sales_team.team_sales_department')
         values = {
             'alias_domain': sales_team.alias_domain,
             'alias_name': sales_team.alias_name,
diff --git a/addons/sales_team/sales_team.py b/addons/sales_team/sales_team.py
index 74157c5357b0..f5bf2aef52a2 100644
--- a/addons/sales_team/sales_team.py
+++ b/addons/sales_team/sales_team.py
@@ -44,6 +44,7 @@ class crm_team(osv.Model):
         'code': fields.char('Code', size=8),
         'active': fields.boolean('Active', help="If the active field is set to "\
                         "true, it will allow you to hide the sales team without removing it."),
+        'company_id': fields.many2one('res.company', 'Company'),
         'change_responsible': fields.boolean('Reassign Escalated', help="When escalating to this team override the salesman with the team leader."),
         'user_id': fields.many2one('res.users', 'Team Leader'),
         'member_ids': fields.many2many('res.users', 'sale_member_rel', 'team_id', 'member_id', 'Team Members'),
diff --git a/addons/sales_team/sales_team.xml b/addons/sales_team/sales_team.xml
index b6337fd9e991..4bf0c95ec16c 100644
--- a/addons/sales_team/sales_team.xml
+++ b/addons/sales_team/sales_team.xml
@@ -98,6 +98,8 @@
                                     </group>
                                     <group>
                                         <field name="active"/>
+                                        <field name="company_id" groups="base.group_multi_company"
+                                            options="{'no_create': True}"/>
                                     </group>
                                 </group>                                
                             </page>
diff --git a/addons/sales_team/security/sales_team_security.xml b/addons/sales_team/security/sales_team_security.xml
index ae872edd301b..5cf3db05eac1 100644
--- a/addons/sales_team/security/sales_team_security.xml
+++ b/addons/sales_team/security/sales_team_security.xml
@@ -5,5 +5,10 @@
             <field name="name">Manage Sales Teams</field>
             <field name="category_id" ref="base.module_category_hidden"/>
         </record>
+        <record model="ir.rule" id="sale_team_comp_rule">
+            <field name="name">Sales Team multi-company</field>
+            <field name="model_id" ref="model_crm_team"/>
+            <field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
+        </record>
     </data>
 </openerp>
-- 
GitLab