summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFabien Pinckaers <fp@openerp.com>2015-07-13 19:22:59 -0700
committerFabien Pinckaers <fp@openerp.com>2015-07-13 19:22:59 -0700
commit3f6b92e7b5746116f0ef3a01a5a2e12566c10dd0 (patch)
tree870bd589faa1929977362dc501c2f2b4b038e9a6
parentecd410a3eea964ed33c6b706b0a025dfdc99f166 (diff)
[IMP] Won / Loss not anymore depending on stages:
won: probability=100 (on lead) loss: probability=0 and not active Won / Loss Replaced most complex domains (merge leads wizard...) by active=True [IMP] Code cleaning / removing: unused report.crm.* merged crm.lead.report and crm.opportunity.report (one report with domains) [IMP] Cleaned demo data: Won / Loss, Put back "New" stage Removed "Marketing" sales team [IMP] Removed Multiple salesteam setting (always multiple salesteam Always display the dashboard (multiple salesteam) No more option in settings [FIX] misc fixes (bad domains), type not required
-rw-r--r--addons/account/report/account_invoice_report_view.xml2
-rw-r--r--addons/crm/__openerp__.py1
-rw-r--r--addons/crm/crm_demo.xml7
-rw-r--r--addons/crm/crm_lead.py45
-rw-r--r--addons/crm/crm_lead_demo.xml24
-rw-r--r--addons/crm/crm_lead_menu.xml7
-rw-r--r--addons/crm/crm_lead_view.xml54
-rw-r--r--addons/crm/crm_report_view.xml342
-rw-r--r--addons/crm/crm_view.xml13
-rw-r--r--addons/crm/data/crm_stage_demo.xml4
-rw-r--r--addons/crm/doc/stage_status.rst6
-rw-r--r--addons/crm/report/__init__.py1
-rw-r--r--addons/crm/report/crm_activity_report.py2
-rw-r--r--addons/crm/report/crm_activity_report_view.xml9
-rw-r--r--addons/crm/report/crm_lead_report.py87
-rw-r--r--addons/crm/report/crm_lead_report_view.xml149
-rw-r--r--addons/crm/report/crm_opportunity_report.py21
-rw-r--r--addons/crm/report/crm_opportunity_report_view.xml53
-rw-r--r--addons/crm/res_config_view.xml6
-rw-r--r--addons/crm/res_partner_view.xml2
-rw-r--r--addons/crm/sales_team.py21
-rw-r--r--addons/crm/sales_team_view.xml10
-rw-r--r--addons/crm/security/crm_security.xml4
-rw-r--r--addons/crm/security/ir.model.access.csv2
-rw-r--r--addons/crm/test/crm_lead_cancel.yml2
-rw-r--r--addons/crm/test/crm_lead_find_stage.yml10
-rw-r--r--addons/crm/test/lead2opportunity2win.yml11
-rw-r--r--addons/crm/views/crm_action_views.xml2
-rw-r--r--addons/crm/wizard/crm_lead_to_opportunity_view.xml4
-rw-r--r--addons/crm/wizard/crm_merge_opportunities_view.xml4
-rw-r--r--addons/crm_claim/crm_claim_view.xml6
-rw-r--r--addons/crm_claim/report/crm_claim_report_view.xml5
-rw-r--r--addons/crm_helpdesk/crm_helpdesk_view.xml14
-rw-r--r--addons/crm_helpdesk/report/crm_helpdesk_report_view.xml6
-rw-r--r--addons/crm_partner_assign/crm_portal_view.xml4
-rw-r--r--addons/crm_partner_assign/report/crm_lead_report_view.xml5
-rw-r--r--addons/crm_partner_assign/report/crm_partner_report_view.xml4
-rw-r--r--addons/sale/report/invoice_report_view.xml28
-rw-r--r--addons/sale/report/sale_report_view.xml2
-rw-r--r--addons/sale/sale_view.xml10
-rw-r--r--addons/sales_team/__init__.py2
-rw-r--r--addons/sales_team/__openerp__.py13
-rw-r--r--addons/sales_team/res_config.py14
-rw-r--r--addons/sales_team/res_config_view.xml28
-rw-r--r--addons/sales_team/sales_team.xml2
-rw-r--r--addons/sales_team/sales_team_demo.xml4
-rw-r--r--addons/sales_team/security/sales_team_security.xml14
-rw-r--r--addons/website_crm_score/models/sales_team.py3
-rw-r--r--addons/website_crm_score/models/website_crm_score.py4
-rw-r--r--addons/website_sale/security/website_sale.xml5
50 files changed, 220 insertions, 858 deletions
diff --git a/addons/account/report/account_invoice_report_view.xml b/addons/account/report/account_invoice_report_view.xml
index 72a5d049a25..c943480aee0 100644
--- a/addons/account/report/account_invoice_report_view.xml
+++ b/addons/account/report/account_invoice_report_view.xml
@@ -84,7 +84,7 @@
<group expand="1" string="Group By">
<filter string="Partner" name="partner_id" context="{'group_by':'partner_id','residual_visible':True}"/>
<filter string="Salesperson" name='user' context="{'group_by':'user_id'}"/>
- <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}"/>
<filter string="Product Category" name="category_product" context="{'group_by':'categ_id','residual_invisible':True}"/>
<filter string="Status" context="{'group_by':'state'}"/>
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
diff --git a/addons/crm/__openerp__.py b/addons/crm/__openerp__.py
index 11794a9158c..a8f1649dcc9 100644
--- a/addons/crm/__openerp__.py
+++ b/addons/crm/__openerp__.py
@@ -62,7 +62,6 @@ Dashboard for CRM will include:
'calendar_event_menu.xml',
- 'report/crm_lead_report_view.xml',
'report/crm_activity_report_view.xml',
'report/crm_opportunity_report_view.xml',
diff --git a/addons/crm/crm_demo.xml b/addons/crm/crm_demo.xml
index e7b19415a49..e1e10adf0a2 100644
--- a/addons/crm/crm_demo.xml
+++ b/addons/crm/crm_demo.xml
@@ -16,12 +16,5 @@
<field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/>
</record>
- <record model="crm.team" id="sales_team.crm_team_2">
- <field name="name">Marketing</field>
- <field name="code">SPD</field>
- <field name="member_ids" eval="[(4, ref('base.user_root')),(4, ref('base.user_demo'))]"/>
- </record>
-
-
</data>
</openerp>
diff --git a/addons/crm/crm_lead.py b/addons/crm/crm_lead.py
index b3fb5b764a1..37eef488b98 100644
--- a/addons/crm/crm_lead.py
+++ b/addons/crm/crm_lead.py
@@ -163,7 +163,7 @@ class crm_lead(format_address, osv.osv):
'id': fields.integer('ID', readonly=True),
'name': fields.char('Opportunity', required=True, select=1),
- 'active': fields.boolean('Active', required=False),
+ 'active': fields.boolean('Archived', required=False),
'date_action_last': fields.datetime('Last Action', readonly=1),
'date_action_next': fields.datetime('Next Action', readonly=1),
'email_from': fields.char('Email', size=128, help="Email address of the contact", select=1),
@@ -179,7 +179,7 @@ class crm_lead(format_address, osv.osv):
'opt_out': fields.boolean('Opt-Out', oldname='optout',
help="If opt-out is checked, this contact has refused to receive emails for mass mailing and marketing campaign. "
"Filter 'Available for Mass Mailing' allows users to filter the leads when performing mass mailing."),
- 'type': fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', select=True, help="Type is used to separate Leads and Opportunities"),
+ 'type': fields.selection([ ('lead','Lead'), ('opportunity','Opportunity'), ],'Type', select=True, help="Type is used to separate Leads and Opportunities", required=True),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority', select=True),
'date_closed': fields.datetime('Closed', readonly=True, copy=False),
'stage_id': fields.many2one('crm.stage', 'Stage', track_visibility='onchange', select=True,
@@ -261,8 +261,6 @@ class crm_lead(format_address, osv.osv):
if not stage.on_change:
return {'value': {}}
vals = {'probability': stage.probability}
- if stage.on_change and (stage.probability >= 100 or (stage.probability == 0 and stage.sequence > 1)):
- vals['date_closed'] = fields.datetime.now()
return {'value': vals}
def on_change_partner_id(self, cr, uid, ids, partner_id, context=None):
@@ -291,7 +289,7 @@ class crm_lead(format_address, osv.osv):
""" When changing the user, also set a team_id or restrict team id
to the ones user_id is member of. """
team_id = self.pool['crm.team']._get_default_team_id(cr, uid, user_id=user_id, context=context)
- if user_id and not team_id and self.pool['res.users'].has_group(cr, uid, 'base.group_multi_salesteams'):
+ if user_id and not team_id:
team_ids = self.pool.get('crm.team').search(cr, uid, ['|', ('user_id', '=', user_id), ('member_ids', '=', user_id)], context=context)
if team_ids:
team_id = team_ids[0]
@@ -341,6 +339,30 @@ class crm_lead(format_address, osv.osv):
return stage_ids[0]
return False
+ def case_mark_lost(self, cr, uid, ids, context=None):
+ """ Mark the case as lost: probability=0 and not active
+ """
+ return self.write(cr, uid, ids, {'probability': 0, 'active': False}, context=context)
+
+ def case_mark_active(self, cr, uid, ids, context=None):
+ return self.write(cr, uid, ids, {'active': True}, context=context)
+
+ def case_mark_won(self, cr, uid, ids, context=None):
+ """ Mark the case as won: probability=100
+ """
+ stages_leads = {}
+ for lead in self.browse(cr, uid, ids, context=context):
+ stage_id = self.stage_find(cr, uid, [lead], lead.team_id.id or False, [('probability', '=', 100.0),('on_change','=',True)], context=context)
+ if stage_id:
+ if stages_leads.get(stage_id):
+ stages_leads[stage_id].append(lead.id)
+ else:
+ stages_leads[stage_id] = [lead.id]
+ for stage_id, lead_ids in stages_leads.items():
+ self.write(cr, uid, lead_ids, {'stage_id': stage_id}, context=context)
+ self.write(cr, uid, lead_ids, {'probability': 100}, context=context)
+ return True
+
def log_next_activity_1(self, cr, uid, ids, context=None):
return self.log_next_activity_done(cr, uid, ids, next_activity_name='activity_1_id', context=context)
@@ -573,7 +595,7 @@ class crm_lead(format_address, osv.osv):
"""
Search for opportunities that have the same partner and that arent done or cancelled
"""
- final_stage_domain = ['|', '|', ('stage_id.on_change', '=', False), ('stage_id.probability', 'not in', [0, 100]), ('stage_id.sequence', '<=', 1)]
+ final_stage_domain = [('active', '=', True)]
partner_match_domain = []
for email in set(email_split(email) + [email]):
partner_match_domain.append(('email_from', '=ilike', email))
@@ -681,8 +703,7 @@ class crm_lead(format_address, osv.osv):
partner = self.pool.get('res.partner')
customer = partner.browse(cr, uid, partner_id, context=context)
for lead in self.browse(cr, uid, ids, context=context):
- # TDE: was if lead.state in ('done', 'cancel'):
- if (lead.probability == 100 or lead.probability == 0) and lead.stage_id.on_change and lead.stage_id.sequence > 1:
+ if not lead.active:
continue
vals = self._convert_opportunity_data(cr, uid, lead, customer, team_id, context=context)
self.write(cr, uid, [lead.id], vals, context=context)
@@ -868,6 +889,8 @@ class crm_lead(format_address, osv.osv):
if vals.get('stage_id') and not vals.get('probability'):
onchange_stage_values = self.onchange_stage_id(cr, uid, ids, vals.get('stage_id'), context=context)['value']
vals.update(onchange_stage_values)
+ if (vals.get('probability',0) >= 100) or not vals.get('active', True):
+ vals['date_closed'] = fields.datetime.now()
return super(crm_lead, self).write(cr, uid, ids, vals, context=context)
def copy(self, cr, uid, id, default=None, context=None):
@@ -900,11 +923,11 @@ class crm_lead(format_address, osv.osv):
def _track_subtype(self, cr, uid, ids, init_values, context=None):
record = self.browse(cr, uid, ids[0], context=context)
- if 'stage_id' in init_values and record.probability == 100 and record.stage_id and record.stage_id.on_change:
+ if 'stage_id' in init_values and (record.probability == 100):
return 'crm.mt_lead_won'
- elif 'stage_id' in init_values and record.probability == 0 and record.stage_id and record.stage_id.on_change and record.stage_id.sequence > 1:
+ elif 'stage_id' in init_values and (record.probability == 0) and not record.active:
return 'crm.mt_lead_lost'
- elif 'stage_id' in init_values and record.probability == 0 and record.stage_id and record.stage_id.sequence <= 1:
+ elif 'stage_id' in init_values and (record.probability == 0) and record.stage_id and record.stage_id.sequence <= 1:
return 'crm.mt_lead_create'
elif 'stage_id' in init_values:
return 'crm.mt_lead_stage'
diff --git a/addons/crm/crm_lead_demo.xml b/addons/crm/crm_lead_demo.xml
index ab6c89e411c..3f5823dd8c4 100644
--- a/addons/crm/crm_lead_demo.xml
+++ b/addons/crm/crm_lead_demo.xml
@@ -106,7 +106,7 @@ Could you please send me the details ?</field>
<field name="city">Drury</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor5])]"/>
<field name="priority">2</field>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_demo"/>
<field name="stage_id" ref="stage_lead5"/>
<field name="campaign_id" ref="utm.utm_campaign_email_campaign_products"/>
@@ -160,7 +160,7 @@ Contact: +1 813 494 5005</field>
<field name="city">Roma</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor3,categ_oppor4])]"/>
<field name="priority">2</field>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref=""/>
<field name="stage_id" ref="stage_lead1"/>
<field name="campaign_id" ref="utm.utm_campaign_email_campaign_products"/>
@@ -180,7 +180,7 @@ Contact: +1 813 494 5005</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor4])]"/>
<field name="priority">0</field>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_root"/>
<field name="stage_id" ref="stage_lead1"/>
<field name="campaign_id" ref="utm.utm_campaign_email_campaign_products"/>
@@ -239,7 +239,7 @@ Contact: +1 813 494 5005</field>
<field name="city">Sevilla</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor1])]"/>
<field name="priority">2</field>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_demo"/>
<field name="stage_id" ref="stage_lead1"/>
<field name="description">Hi,
@@ -444,7 +444,7 @@ Andrew</field>
<field name="type">opportunity</field>
<field name="name">Trainee's training plan in your Organization</field>
<field eval="35000" name="planned_revenue"/>
- <field eval="25.0" name="probability"/>
+ <field eval="0.0" name="probability"/>
<field name="contact_name">Leland Martinez</field>
<field name="email_from">info@deltapc.com</field>
<field name="partner_name">Delta PC</field>
@@ -461,7 +461,7 @@ Andrew</field>
<field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_demo"/>
<field name="stage_id" ref="crm.stage_lead4"/>
- <field eval="1" name="active"/>
+ <field eval="0" name="active"/>
<field name="campaign_id" ref="utm.utm_campaign_email_campaign_products"/>
<field name="source_id" ref="utm.utm_source_newsletter"/>
</record>
@@ -477,6 +477,7 @@ Andrew</field>
<field eval="65.0" name="probability"/>
<field name="contact_name">Robin Smith</field>
<field name="partner_name">Global Solutions</field>
+ <field eval="0" name="active"/>
<field name="partner_id" ref="base.res_partner_21"/>
<field name="country_id" ref="base.uk"/>
<field name="city">Liverpool</field>
@@ -521,7 +522,7 @@ Andrew</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor7])]"/>
<field name="priority">2</field>
<field name="next_activity_id" ref="crm_activity_data_meeting"/>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_root"/>
<field name="stage_id" ref="crm.stage_lead4"/>
<field name="date_closed" eval="(DateTime.today() - relativedelta(months=1)).strftime('%Y-%m-%d %H:%M')"/>
@@ -541,7 +542,7 @@ Andrew</field>
<field name="tag_ids" eval="[(6, 0, [categ_oppor3])]"/>
<field name="priority">1</field>
<field name="next_activity_id" ref="crm_activity_data_email"/>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_root"/>
<field name="stage_id" ref="crm.stage_lead5"/>
<field name="campaign_id" ref="utm.utm_campaign_email_campaign_services"/>
@@ -570,8 +571,9 @@ Andrew</field>
<record id="crm_case_24" model="crm.lead">
<field name="type">opportunity</field>
<field name="name">Need 20 Days of Consultancy</field>
+ <field eval="0" name="active"/>
<field eval="6025" name="planned_revenue"/>
- <field eval="90.0" name="probability"/>
+ <field eval="100.0" name="probability"/>
<field name="email_from">info@mycompany.net</field>
<field name="country_id" ref="base.pe"/>
<field name="city">Lima</field>
@@ -592,7 +594,7 @@ Andrew</field>
<field name="type">opportunity</field>
<field name="name">Need to customize the solution</field>
<field eval="4060" name="planned_revenue"/>
- <field eval="60.0" name="probability"/>
+ <field eval="100.0" name="probability"/>
<field name="contact_name">Henry Jordan</field>
<field name="partner_name">E-light Industry</field>
<field name="email_from">henry@elight.com</field>
@@ -630,7 +632,7 @@ Andrew</field>
<field name="next_activity_id" ref="crm_activity_data_email"/>
<field eval="time.strftime('%Y-%m-10')" name="date_action"/>
<field name="title_action">Send Catalogue by Email</field>
- <field name="team_id" ref="sales_team.crm_team_2"/>
+ <field name="team_id" ref="sales_team.crm_team_1"/>
<field name="user_id" ref="base.user_demo"/>
<field name="stage_id" ref="crm.stage_lead5"/>
<!-- <field name="date_closed" eval="(DateTime.today() - relativedelta(hours=1)).strftime('%Y-%m-%d %H:%M')"/> -->
diff --git a/addons/crm/crm_lead_menu.xml b/addons/crm/crm_lead_menu.xml
index 9011f2af12e..666bea7d8e3 100644
--- a/addons/crm/crm_lead_menu.xml
+++ b/addons/crm/crm_lead_menu.xml
@@ -5,12 +5,12 @@
<record model="ir.actions.act_window" id="crm_lead_all_leads">
<field name="name">Leads</field>
<field name="res_model">crm.lead</field>
- <field name="view_mode">tree,form</field>
- <field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
+ <field name="view_mode">tree,kanban,graph,pivot,calendar,form</field>
<field name="view_id" ref="crm_case_tree_view_leads"/>
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
<field name="context">{
'default_type':'lead',
+ 'search_default_type_lead':True,
'stage_type':'lead',
'needaction_menu_ref': 'crm.menu_crm_opportunities',
'search_default_to_process':1,
@@ -77,9 +77,6 @@
<menuitem id="base.menu_sales" name="Sales" parent="base.menu_base_partner" sequence="5"/>
<menuitem name="Leads" id="menu_crm_leads" parent="base.menu_sales" sequence="1"
action="crm_lead_all_leads"/>
- <menuitem name="Opportunities" id="menu_crm_opportunities" parent="base.menu_sales" sequence="2"
- action="crm_lead_opportunities"
- groups="base.group_sale_salesman,base.group_sale_manager"/>
</data>
</openerp>
diff --git a/addons/crm/crm_lead_view.xml b/addons/crm/crm_lead_view.xml
index cd4162ac7a6..a64e56e1639 100644
--- a/addons/crm/crm_lead_view.xml
+++ b/addons/crm/crm_lead_view.xml
@@ -47,7 +47,7 @@
<form string="Sales Tags">
<group>
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</group>
</form>
</field>
@@ -59,7 +59,7 @@
<field name="arch" type="xml">
<tree string="Sales Tags">
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</tree>
</field>
</record>
@@ -149,8 +149,8 @@
<group>
<field name="user_id" on_change="on_change_user(user_id, context)"
context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads'] }"/>
- <label for="team_id" groups="base.group_multi_salesteams"/>
- <div class="o_row" groups="base.group_multi_salesteams">
+ <label for="team_id"/>
+ <div class="o_row">
<field name="team_id"/>
</div>
<field name="type" invisible="1"/>
@@ -239,7 +239,7 @@
<field name="stage_id"/>
<field name="user_id" invisible="1"/>
<field name="partner_id" invisible="1"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="probability" invisible="1"/>
<field name="campaign_id" invisible="1"/>
<field name="referred" invisible="1"/>
@@ -331,11 +331,18 @@
<search string="Search Leads">
<field name="name" string="Lead / Customer" filter_domain="['|','|','|',('partner_name','ilike',self),('email_from','ilike',self),('contact_name','ilike',self),('name','ilike',self)]"/>
<field name="tag_ids" string="Tag" filter_domain="[('tag_ids', 'ilike', self)]"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="user_id"/>
<field name="partner_id" operator="child_of" string="Customer"/>
<field name="create_date"/>
<field name="country_id"/>
+ <separator />
+ <filter string="Leads"
+ name="type_lead"
+ domain="[('type','=','lead')]"/>
+ <filter string="Opportunities"
+ name="type_opportunity"
+ domain="[('type','=','opportunity')]"/>
<separator/>
<filter string="My Leads"
domain="[('user_id','=',uid)]"
@@ -343,9 +350,6 @@
<filter string="Unassigned" name="unassigned"
domain="[('user_id','=', False)]"
help="No salesperson"/>
- <filter string="To Process" name="to_process"
- domain="['|',('stage_id.probability','>', 0),('stage_id.fold','=', False)]"
- help="Not marked as Dead"/>
<separator />
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
<separator />
@@ -354,7 +358,7 @@
help="Leads that did not ask not to be included in mass mailing campaigns"/>
<group expand="0" string="Group By">
<filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
- <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}"/>
<filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
<filter name="customer" string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Campaign" domain="[]" context="{'group_by':'campaign_id'}"/>
@@ -380,6 +384,9 @@
<field name="arch" type="xml">
<form string="Opportunities">
<header>
+ <button name="case_mark_won" string="Mark Won" attrs="{'invisible': [('probability', '=', 100)]}" type="object" class="oe_highlight"/>
+ <button name="case_mark_active" string="Active" attrs="{'invisible': [('active', '=', True)]}" type="object"/>
+ <button name="case_mark_lost" string="Mark Lost" attrs="{'invisible': [('active', '=', False)]}" type="object" class="oe_highlight"/>
<field name="stage_id" widget="statusbar" clickable="True"
options="{'fold_field': 'fold'}"
domain="['&amp;', ('team_ids', '=', team_id), '|', ('type', '=', type), ('type', '=', 'both')]"/>
@@ -453,8 +460,8 @@
<group>
<field name="user_id" on_change="on_change_user(user_id, context)" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads']}"/>
- <label for="team_id" groups="base.group_multi_salesteams"/>
- <div groups="base.group_multi_salesteams" class="o_row">
+ <label for="team_id"/>
+ <div class="o_row">
<field name="team_id" widget="selection"/>
</div>
</group>
@@ -549,7 +556,7 @@
<field name="stage_id"/>
<field name="planned_revenue" sum="Expected Revenues"/>
<field name="probability" avg="Avg. of Probability"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="user_id"/>
<field name="referred" invisible="1"/>
<field name="priority" invisible="1"/>
@@ -568,7 +575,7 @@
<search string="Search Opportunities">
<field name="name" string="Opportunity" filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
<field name="tag_ids" string="Tag" filter_domain="[('tag_ids', 'ilike', self)]"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="user_id"/>
<field name="partner_id" operator="child_of" string="Customer"/>
<field name="stage_id" domain="[]"/>
@@ -595,7 +602,7 @@
<filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
<group expand="0" string="Group By" colspan="16">
<filter string="Salesperson" context="{'group_by':'user_id'}"/>
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Country" context="{'group_by':'country_id'}" />
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter name="stage" string="Stage" context="{'group_by':'stage_id'}"/>
@@ -637,5 +644,22 @@
<field name="ref_ir_act_window" ref="crm.action_lead_mass_mail"/>
</record>
+ <record id="action_mark_as_lost" model="ir.actions.server">
+ <field name="name">Mark As Lost</field>
+ <field name="model_id" ref="model_crm_lead"/>
+ <field name="state">code</field>
+ <field name="code">
+ if context.get('active_model') == 'crm.lead' and context.get('active_ids'):
+ self.case_mark_lost(cr, uid, context['active_ids'], context=context)
+ </field>
+ </record>
+
+ <record id="ir_mark_as_lost" model="ir.values">
+ <field eval="'client_action_multi'" name="key2"/>
+ <field eval="'crm.lead'" name="model"/>
+ <field name="name">Mark As Lost</field>
+ <field eval="'ir.actions.server,%d'%action_mark_as_lost" name="value"/>
+ </record>
+
</data>
</openerp>
diff --git a/addons/crm/crm_report_view.xml b/addons/crm/crm_report_view.xml
deleted file mode 100644
index 8aaa1e7a385..00000000000
--- a/addons/crm/crm_report_view.xml
+++ /dev/null
@@ -1,342 +0,0 @@
-<?xml version="1.0"?>
-<openerp>
-<data>
-
-<!-- Cases by team and category2 of case Tree View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_tree">
- <field name="name">CRM Report - Teams and Type(Tree)</field>
- <field name="model">report.crm.team.categ2</field>
- <field name="arch" type="xml">
- <tree string="Cases by Team and Type">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- <field name="category2_id"/>
- <field name="stage_id"/>
- <field name="amount_revenue"/>
- <field name="nbr"/>
- <field name="delay_close"/>
- <field name="state"/>
- </tree>
- </field>
- </record>
-
-<!-- Cases by team and category2 of case Form View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_form">
- <field name="name">CRM Report - Teams and Type(Form)</field>
- <field name="model">report.crm.team.categ2</field>
- <field name="arch" type="xml">
- <form string="Cases by Team and Category2">
- <group col="4">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" widget="selection"
- groups="base.group_multi_salesteams"/>
- <field name="category2_id" />
- <field name="stage_id"/>
- <field name="amount_revenue"/>
- <field name="nbr" />
- <field name="state" />
- <field name="delay_close"/>
- </group>
- </form>
- </field>
- </record>
-
-<!-- Cases by team and category2 of case Graph View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_graph">
- <field name="name">CRM Report - Teams and Type(Graph)</field>
- <field name="model">report.crm.team.categ2</field>
- <field name="arch" type="xml">
- <graph string="Cases by Teams and Type" type="bar" orientation="horizontal">
- <field name="category2_id"/>
- <field name="amount_revenue" operator="+"/>
- <field name="team_id" group="True"
- groups="base.group_multi_salesteams"/>
- </graph>
- </field>
- </record>
-
-<!-- Cases by team and category2 of case Search View -->
-
- <record id="view_crm_team_categ_filter" model="ir.ui.view">
- <field name="name">CRM Report - Teams and Type(Select)</field>
- <field name="model">report.crm.team.categ2</field>
- <field name="arch" type="xml">
- <search string="Cases by Team and Type">
- <field name="name"/>
- <field name="month"/>
- <field name="nbr"/>
- <field name="state"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- <field name="category2_id"/>
- </search>
- </field>
- </record>
-
-<!-- Cases by team and category2 of case Action -->
-
- <record model="ir.actions.act_window" id="action_report_crm_team_categ_tree">
- <field name="name">Cases By team and Category</field>
- <field name="res_model">report.crm.team.categ2</field>
- <field name="view_type">form</field>
- <field name="view_mode">graph,tree</field>
- <field name="search_view_id" ref="view_crm_team_categ_filter"/>
- </record>
-
-<!-- Cases by team and stage Tree View -->
-
- <record model="ir.ui.view" id="view_crm_team_stage_tree">
- <field name="name">CRM Report - Teams and Stage(Tree)</field>
- <field name="model">report.crm.team.stage</field>
- <field name="arch" type="xml">
- <tree string="Cases by Team and Stage">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- <field name="stage_id"/>
- <field name="amount_revenue"/>
- <field name="nbr"/>
- <field name="delay_close"/>
- <field name="state"/>
- </tree>
- </field>
- </record>
-
-<!-- Cases by team and stage Form View -->
-
- <record model="ir.ui.view" id="view_crm_team_stage_form">
- <field name="name">CRM Report - Teams and Stage(Form)</field>
- <field name="model">report.crm.team.stage</field>
- <field name="arch" type="xml">
- <form string="Cases by Team and Stage">
- <group col="4">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" widget="selection"
- groups="base.group_multi_salesteams"/>
- <field name="stage_id"/>
- <field name="amount_revenue"/>
- <field name="nbr" />
- <field name="state" />
- <field name="delay_close"/>
- </group>
- </form>
- </field>
- </record>
-
-<!-- Cases by team and stage Graph View -->
-
- <record model="ir.ui.view" id="view_crm_team_stage_graph">
- <field name="name">CRM Report - Teams and Stage(Graph)</field>
- <field name="model">report.crm.team.stage</field>
- <field name="arch" type="xml">
- <graph string="Cases by Team and Stage" type="bar" orientation="horizontal">
- <field name="stage_id"/>
- <field name="amount_revenue" operator="+"/>
- <field name="team_id" group="True" groups="base.group_multi_salesteams"/>
- </graph>
- </field>
- </record>
-
-<!-- Cases by team and stage Search View -->
-
- <record id="view_crm_team_stage_filter" model="ir.ui.view">
- <field name="name">CRM Report - Teams and Stage(Select)</field>
- <field name="model">report.crm.team.stage</field>
- <field name="arch" type="xml">
- <search string="Cases by Team and Stage">
- <field name="name"/>
- <field name="month"/>
- <field name="nbr"/>
- <field name="state"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- </search>
- </field>
- </record>
-
-<!-- Cases by team and stage Action -->
-
- <record model="ir.actions.act_window" id="action_report_crm_team_stage_tree">
- <field name="name">Cases By team and Stage</field>
- <field name="res_model">report.crm.team.stage</field>
- <field name="view_type">form</field>
- <field name="view_mode">graph,tree</field>
- <field name="search_view_id" ref="view_crm_team_stage_filter"/>
- </record>
-
-<!-- Cases by team, category and stage Tree View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_stage_tree">
- <field name="name">CRM Report - Team, Category and Stage(Tree)</field>
- <field name="model">report.crm.team.categ.stage</field>
- <field name="arch" type="xml">
- <tree string="Cases by Team, Category and Stage">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- <field name="categ_id"/>
- <field name="stage_id"/>
- <field name="nbr"/>
- <field name="delay_close"/>
- <field name="state"/>
- </tree>
- </field>
- </record>
-
-<!-- Cases by team, category and stage Form View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_stage_form">
- <field name="name">CRM Report - Team, Category and Stage(Form)</field>
- <field name="model">report.crm.team.categ.stage</field>
- <field name="arch" type="xml">
- <form string="Cases by Team, Category and Stage">
- <group col="4">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" widget="selection" groups="base.group_multi_salesteams"/>
- <field name="categ_id"/>
- <field name="stage_id"/>
- <field name="nbr" />
- <field name="state" />
- <field name="delay_close"/>
- </group>
- </form>
- </field>
- </record>
-
-<!-- Cases by team, category and stage Search View -->
-
- <record id="view_crm_team_categ_stage_filter" model="ir.ui.view">
- <field name="name">CRM Report - Team, Category and Stage(Select)</field>
- <field name="model">report.crm.team.categ.stage</field>
- <field name="arch" type="xml">
- <search string="Cases by Team, Category and Stage">
- <field name="name"/>
- <field name="month"/>
- <field name="nbr"/>
- <field name="state"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- </search>
- </field>
- </record>
-
-<!-- Cases by team, category and stage Graph View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_stage_graph">
- <field name="name">CRM Report - Team, Category and Stage(Select)</field>
- <field name="model">report.crm.team.categ.stage</field>
- <field name="arch" type="xml">
- <graph string="Cases by Team, Category and Stage" type="bar" orientation="horizontal">
- <field name="categ_id"/>
- <field name="nbr" operator="+"/>
- <field name="team_id" group="True" groups="base.group_multi_salesteams"/>
- </graph>
- </field>
- </record>
-
-<!-- Cases by team, category and stage Action -->
-
- <record model="ir.actions.act_window" id="action_report_crm_team_categ_stage_tree">
- <field name="name">Cases By Team ,Category and Stage</field>
- <field name="res_model">report.crm.team.categ.stage</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,graph</field>
- <field name="search_view_id" ref="view_crm_team_categ_stage_filter"/>
- </record>
-
-<!-- Cases by team, category and category2 Tree View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_categ2_tree">
- <field name="name">CRM Report - Team, Category and Type(Tree)</field>
- <field name="model">report.crm.team.categ.categ2</field>
- <field name="arch" type="xml">
- <tree string="Cases by Team, Category and Type">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- <field name="categ_id"/>
- <field name="category2_id"/>
- <field name="stage_id"/>
- <field name="nbr"/>
- <field name="delay_close"/>
- <field name="state"/>
- </tree>
- </field>
- </record>
-
-<!-- Cases by team, category and category2 Form View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_categ2_form">
- <field name="name">CRM Report - Team, Category and Type(Form)</field>
- <field name="model">report.crm.team.categ.categ2</field>
- <field name="arch" type="xml">
- <form string="Cases by Team, Category and Type">
- <group col="4">
- <field name="name"/>
- <field name="month"/>
- <field name="user_id"/>
- <field name="team_id" widget="selection" groups="base.group_multi_salesteams"/>
- <field name="categ_id"/>
- <field name="category2_id"/>
- <field name="stage_id"/>
- <field name="nbr" />
- <field name="state" />
- <field name="delay_close"/>
- </group>
- </form>
- </field>
- </record>
-
-<!-- Cases by team, category and category2 Search View -->
-
- <record id="view_crm_team_categ_categ2_filter" model="ir.ui.view">
- <field name="name">CRM Report - Team, Category and Type(Select)</field>
- <field name="model">report.crm.team.categ.categ2</field>
- <field name="arch" type="xml">
- <search string="Search Cases by User">
- <field name="name"/>
- <field name="month"/>
- <field name="nbr"/>
- <field name="state"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
- </search>
- </field>
- </record>
-
-<!-- Cases by team, category and category2 Graph View -->
-
- <record model="ir.ui.view" id="view_crm_team_categ_categ2_graph">
- <field name="name">CRM Report - Team, Category and Type(Select)</field>
- <field name="model">report.crm.team.categ.categ2</field>
- <field name="arch" type="xml">
- <graph string="Cases by Team, Category and Type" type="bar" orientation="horizontal">
- <field name="category2_id"/>
- <field name="nbr" operator="+"/>
- <field name="team_id" group="True" groups="base.group_multi_salesteams"/>
- </graph>
- </field>
- </record>
-
-<!-- Cases by team, category and category2 Action -->
-
- <record model="ir.actions.act_window" id="action_report_crm_team_categ_categ2_tree">
- <field name="name">Cases By Team ,Category and Category2</field>
- <field name="res_model">report.crm.team.categ.categ2</field>
- <field name="view_type">form</field>
- <field name="view_mode">tree,graph</field>
- <field name="search_view_id" ref="view_crm_team_categ_categ2_filter"/>
- </record>
-
-</data>
-</openerp>
diff --git a/addons/crm/crm_view.xml b/addons/crm/crm_view.xml
index 4335003c8fd..fd58ce2b36f 100644
--- a/addons/crm/crm_view.xml
+++ b/addons/crm/crm_view.xml
@@ -77,18 +77,11 @@
<group>
<field name="name"/>
<field name="type"/>
- <field name="on_change"/>
- <label for="probability" attrs="{'invisible': [('on_change', '=', False)]}"/>
- <div attrs="{'invisible': [('on_change', '=', False)]}">
- <field name="probability"/>
- <p class="text-muted">
- A stage will be considered as 'Won' if the probability is 100% and if 'Change Probability Automatically' is true.<br/>
- A stage will be considered as 'Lost' or 'Dead' if the probability is 0% and if 'Change Probability Automatically' is true.
- </p>
- </div>
+ <field name="fold"/>
</group>
<group>
- <field name="fold"/>
+ <field name="on_change"/>
+ <field name="probability" attrs="{'invisible': [('on_change', '=', False)]}"/>
</group>
</group>
<separator string="Requirements"/>
diff --git a/addons/crm/data/crm_stage_demo.xml b/addons/crm/data/crm_stage_demo.xml
index 6f02223b3f9..de62dd27b92 100644
--- a/addons/crm/data/crm_stage_demo.xml
+++ b/addons/crm/data/crm_stage_demo.xml
@@ -4,10 +4,10 @@
<!-- Crm stages -->
<record model="crm.stage" id="stage_lead1">
- <field name="name">First Call</field>
+ <field name="name">New</field>
<field name="probability">0</field>
<field name="on_change">1</field>
- <field name="sequence">1</field>
+ <field name="sequence">0</field>
<field name="type">both</field>
</record>
<record model="crm.stage" id="stage_lead2">
diff --git a/addons/crm/doc/stage_status.rst b/addons/crm/doc/stage_status.rst
index ca5d3d3d6e1..79e4c28f969 100644
--- a/addons/crm/doc/stage_status.rst
+++ b/addons/crm/doc/stage_status.rst
@@ -15,9 +15,9 @@ following models are impacted:
- ``crm.lead`` now use only stages. However conventions still exist about
'New', 'Won' and 'Lost' stages. Those conventions are:
- - ``new``: ``stage_id and stage_id.sequence = 1``
- - ``won``: ``stage_id and stage_id.probability = 100 and stage_id.on_change = True``
- - ``lost``: ``stage_id and stage_id.probability = 0 and stage_id.on_change = True
+ - ``new``: ``first stage
+ - ``won``: ``probability = 100
+ - ``lost``: ``probability = 0 and active=False
and stage_id.sequence != 1``
- ``crm.case.stage`` do not have any ``state`` field anymore.
diff --git a/addons/crm/report/__init__.py b/addons/crm/report/__init__.py
index c879b22cdac..1915e632a5e 100644
--- a/addons/crm/report/__init__.py
+++ b/addons/crm/report/__init__.py
@@ -1,6 +1,5 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
-import crm_lead_report
import crm_activity_report
import crm_opportunity_report
diff --git a/addons/crm/report/crm_activity_report.py b/addons/crm/report/crm_activity_report.py
index 3f29a01f4da..c229a514065 100644
--- a/addons/crm/report/crm_activity_report.py
+++ b/addons/crm/report/crm_activity_report.py
@@ -13,6 +13,7 @@ class crm_activity_report(models.Model):
_rec_name = 'id'
date = fields.Datetime('Date', readonly=True)
+ active = fields.Boolean('Archive', readonly=True)
author_id = fields.Many2one('res.partner', 'Author', readonly=True)
user_id = fields.Many2one('res.users', 'Responsible', readonly=True)
team_id = fields.Many2one('crm.team', 'Sales Team', readonly=True)
@@ -38,6 +39,7 @@ class crm_activity_report(models.Model):
l.user_id,
l.team_id,
l.country_id,
+ l.active,
l.company_id,
l.stage_id,
l.partner_id,
diff --git a/addons/crm/report/crm_activity_report_view.xml b/addons/crm/report/crm_activity_report_view.xml
index 0f11dd44f37..93defa46ae7 100644
--- a/addons/crm/report/crm_activity_report_view.xml
+++ b/addons/crm/report/crm_activity_report_view.xml
@@ -33,15 +33,14 @@
<filter name="opportunity" string="Opportunities" domain="[('lead_type','=','opportunity')]" help="Show only opportunity"/>
<separator/>
<filter string="Won" name="won"
- domain="['&amp;', ('stage_id.probability', '=', 100), ('stage_id.on_change', '=', 1)]"/>
+ domain="[('probability', '=', 100)]"/>
<filter string="Lost" name="lost"
- domain="['&amp;', ('stage_id.probability', '=', 0), ('stage_id.sequence', '!=', 1)]"/>
- <field name="team_id" context="{'invisible_team': False}"
- groups="base.group_multi_salesteams"/>
+ domain="[('action', '=', False), ('probability', '=', 0)]"/>
+ <field name="team_id" context="{'invisible_team': False}"/>
<field name="author_id" string="Salesperson"/>
<group expand="1" string="Group By">
<filter string="Salesperson" context="{'group_by':'author_id'}" />
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Country" context="{'group_by':'country_id'}" />
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Stage" context="{'group_by':'stage_id'}"/>
diff --git a/addons/crm/report/crm_lead_report.py b/addons/crm/report/crm_lead_report.py
deleted file mode 100644
index e44666665f4..00000000000
--- a/addons/crm/report/crm_lead_report.py
+++ /dev/null
@@ -1,87 +0,0 @@
-# -*- coding: utf-8 -*-
-# Part of Odoo. See LICENSE file for full copyright and licensing details.
-
-from openerp.addons.crm import crm
-from openerp.osv import fields, osv
-from openerp import tools
-
-class crm_lead_report(osv.Model):
- """ CRM Lead Analysis """
- _name = "crm.lead.report"
- _auto = False
- _description = "CRM Lead Analysis"
- _rec_name = 'date_deadline'
- _inherit = ["utm.mixin"]
-
- _columns = {
- 'date_deadline': fields.date('Expected Closing', readonly=True),
- 'create_date': fields.datetime('Creation Date', readonly=True),
- 'opening_date': fields.datetime('Assignation Date', readonly=True),
- 'date_closed': fields.datetime('Close Date', readonly=True),
- 'date_last_stage_update': fields.datetime('Last Stage Update', readonly=True),
- 'nbr_cases': fields.integer("# of Cases", readonly=True),
-
- # durations
- 'delay_open': fields.float('Delay to Assign',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"),
- 'delay_close': fields.float('Delay to Close',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to close the case"),
- 'delay_expected': fields.float('Overpassed Deadline',digits=(16,2),readonly=True, group_operator="avg"),
-
- 'user_id':fields.many2one('res.users', 'User', readonly=True),
- 'team_id':fields.many2one('crm.team', 'Sales Team', oldname='section_id', readonly=True),
- 'country_id':fields.many2one('res.country', 'Country', readonly=True),
- 'company_id': fields.many2one('res.company', 'Company', readonly=True),
- 'probability': fields.float('Probability',digits=(16,2),readonly=True, group_operator="avg"),
- 'planned_revenue': fields.float('Total Revenue',digits=(16,2),readonly=True), # TDE FIXME master: rename into total_revenue
- 'probable_revenue': fields.float('Expected Revenue', digits=(16,2),readonly=True), # TDE FIXME master: rename into expected_revenue
- 'stage_id': fields.many2one ('crm.stage', 'Stage', readonly=True, domain="[('team_ids', '=', team_id)]"),
- 'partner_id': fields.many2one('res.partner', 'Partner' , readonly=True),
- 'company_id': fields.many2one('res.company', 'Company', readonly=True),
- 'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
- 'type':fields.selection([
- ('lead','Lead'),
- ('opportunity','Opportunity'),
- ],'Type', help="Type is used to separate Leads and Opportunities"),
- }
-
- def init(self, cr):
-
- """
- CRM Lead Report
- @param cr: the current row, from the database cursor
- """
- tools.drop_view_if_exists(cr, 'crm_lead_report')
- cr.execute("""
- CREATE OR REPLACE VIEW crm_lead_report AS (
- SELECT
- id,
- c.date_deadline,
- count(id) as nbr_cases,
-
- c.date_open as opening_date,
- c.date_closed as date_closed,
-
- c.date_last_stage_update as date_last_stage_update,
-
- c.user_id,
- c.probability,
- c.stage_id,
- c.type,
- c.company_id,
- c.priority,
- c.team_id,
- c.campaign_id,
- c.source_id,
- c.medium_id,
- c.partner_id,
- c.country_id,
- c.planned_revenue as planned_revenue,
- c.planned_revenue*(c.probability/100) as probable_revenue,
- c.create_date as create_date,
- extract('epoch' from (c.date_closed-c.create_date))/(3600*24) as delay_close,
- abs(extract('epoch' from (c.date_deadline - c.date_closed))/(3600*24)) as delay_expected,
- extract('epoch' from (c.date_open-c.create_date))/(3600*24) as delay_open
- FROM
- crm_lead c
- WHERE c.active = 'true'
- GROUP BY c.id
- )""")
diff --git a/addons/crm/report/crm_lead_report_view.xml b/addons/crm/report/crm_lead_report_view.xml
deleted file mode 100644
index 44465b7edbc..00000000000
--- a/addons/crm/report/crm_lead_report_view.xml
+++ /dev/null
@@ -1,149 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
- <data>
-
- <!-- Leads by user and team Graph View -->
- <record id="view_report_crm_lead_graph" model="ir.ui.view">
- <field name="name">crm.lead.report.graph</field>
- <field name="model">crm.lead.report</field>
- <field name="arch" type="xml">
- <graph string="Leads Analysis" type="pivot" stacked="True">
- <field name="team_id" type="row"/>
- <field name="create_date" interval="month" type="col"/>
- <field name="probable_revenue" type="measure"/>
- </graph>
- </field>
- </record>
-
- <record id="view_report_crm_lead_graph_two" model="ir.ui.view">
- <field name="name">crm.lead.report.graph.two</field>
- <field name="model">crm.lead.report</field>
- <field name="arch" type="xml">
- <graph string="Leads Analysis" type="pivot" stacked="True">
- <field name="create_date" type="row"/>
- <field name="user_id" type="col"/>
- </graph>
- </field>
- </record>
-
- <record id="view_report_crm_lead_pivot" model="ir.ui.view">
- <field name="name">crm.lead.report.pivot</field>
- <field name="model">crm.lead.report</field>
- <field name="arch" type="xml">
- <pivot string="Leads Analysis" disable_linking="True">
- <field name="team_id" type="row"/>
- <field name="create_date" interval="month" type="col"/>
- <field name="nbr_cases" type="measure"/>
- <field name="probable_revenue" type="measure"/>
- </pivot>
- </field>
- </record>
-
- <!-- Custom reports (aka filters) -->
- <record id="filter_leads_long_term_revenue" model="ir.filters">
- <field name="name">Long Term Revenue</field>
- <field name="model_id">crm.lead.report</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['country_id', 'team_id'], 'col_group_by': ['date_deadline'], 'measures': ['planned_revenue']}</field>
- </record>
- <record id="filter_leads_revenue_per_lead" model="ir.filters">
- <field name="name">Revenue Per Lead</field>
- <field name="model_id">crm.lead.report</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['partner_id'], 'col_group_by': ['date_deadline:month'], 'measures': ['planned_revenue']}</field>
- </record>
- <record id="filter_leads_overpassed_deadline" model="ir.filters">
- <field name="name">Overpassed Deadline</field>
- <field name="model_id">crm.lead.report</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['team_id'], 'col_group_by': ['partner_id'], 'measures': ['delay_expected']}</field>
- </record>
- <record id="filter_leads_salesperson" model="ir.filters">
- <field name="name">By Salespersons</field>
- <field name="model_id">crm.lead.report</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['create_date:month', 'user_id']}</field>
- </record>
- <record id="filter_leads_country" model="ir.filters">
- <field name="name">By Country</field>
- <field name="model_id">crm.lead.report</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['create_date:month', 'country_id']}</field>
- </record>
-
- <!-- Leads by user and team Search View -->
- <record id="view_report_crm_lead_filter" model="ir.ui.view">
- <field name="name">crm.lead.report.select</field>
- <field name="model">crm.lead.report</field>
- <field name="arch" type="xml">
- <search string="Leads Analysis">
- <filter name="lead" string="Lead" domain="[('type','=', 'lead')]" help="Show only lead"/>
- <filter name="opportunity" string="Opportunity" domain="[('type','=','opportunity')]" help="Show only opportunity"/>
- <separator/>
- <filter string="Won" name="won"
- domain="['&amp;', ('stage_id.probability', '=', 100), ('stage_id.on_change', '=', 1)]"/>
- <filter string="Lost" name="lost"
- domain="['&amp;', ('stage_id.probability', '=', 0), ('stage_id.sequence', '!=', 1)]"/>
- <field name="team_id" context="{'invisible_team': False}"
- groups="base.group_multi_salesteams"/>
- <field name="user_id" string="Salesperson"/>
- <group expand="0" string="Extended Filters">
- <field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
- <field name="stage_id" domain="[('team_ids', '=', 'team_id')]" />
- <field name="campaign_id"/>
- <field name="medium_id"/>
- <field name="source_id"/>
- <field name="company_id" groups="base.group_multi_company"/>
- <separator orientation="vertical"/>
- <field name="stage_id" widget="selection" domain="[('team_ids', '=', 'team_id')]" />
- <field name="campaign_id" widget="selection"/>
- <field name="medium_id" widget="selection"/>
- <field name="source_id" widget="selection"/>
- <separator orientation="vertical"/>
- <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
- <newline/>
- <field name="create_date"/>
- <field name="opening_date"/>
- <field name="date_closed"/>
- </group>
- <group expand="1" string="Group By">
- <filter string="Salesperson" context="{'group_by':'user_id'}" />
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
- <filter string="Country" context="{'group_by':'country_id'}" />
- <filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
- <filter string="Stage" context="{'group_by':'stage_id'}"/>
- <separator orientation="vertical" />
- <filter string="Creation Month" context="{'group_by':'create_date:month'}" name="month"/>
- </group>
- </search>
- </field>
- </record>
-
- <!-- Leads by user and team Action -->
- <record id="action_report_crm_lead" model="ir.actions.act_window">
- <field name="name">Leads Analysis</field>
- <field name="res_model">crm.lead.report</field>
- <field name="view_type">form</field>
- <field name="view_mode">pivot,graph</field>
- <field name="context">{}</field>
- <field name="domain">[]</field>
- <field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
- </record>
- <record model="ir.actions.act_window.view" id="action_report_crm_lead_pivot">
- <field name="sequence" eval="1"/>
- <field name="view_mode">pivot</field>
- <field name="view_id" ref="view_report_crm_lead_pivot"/>
- <field name="act_window_id" ref="action_report_crm_lead"/>
- </record>
- <record model="ir.actions.act_window.view" id="action_report_crm_lead_graph">
- <field name="sequence" eval="2"/>
- <field name="view_mode">graph</field>
- <field name="view_id" ref="view_report_crm_lead_graph"/>
- <field name="act_window_id" ref="action_report_crm_lead"/>
- </record>
- <menuitem name="Leads" id="menu_report_crm_leads_tree"
- groups="base.group_sale_manager"
- parent="base.menu_sale_report" action="action_report_crm_lead" sequence="1"/>
-
- </data>
-</openerp>
diff --git a/addons/crm/report/crm_opportunity_report.py b/addons/crm/report/crm_opportunity_report.py
index 00e62d628ce..8a4e2f473bf 100644
--- a/addons/crm/report/crm_opportunity_report.py
+++ b/addons/crm/report/crm_opportunity_report.py
@@ -5,7 +5,6 @@ from openerp.addons.crm import crm
from openerp.osv import fields, osv
from openerp import tools
-
class crm_opportunity_report(osv.Model):
""" CRM Opportunity Analysis """
_name = "crm.opportunity.report"
@@ -20,7 +19,7 @@ class crm_opportunity_report(osv.Model):
'opening_date': fields.datetime('Assignation Date', readonly=True),
'date_closed': fields.datetime('Close Date', readonly=True),
'date_last_stage_update': fields.datetime('Last Stage Update', readonly=True),
- 'nbr_cases': fields.integer("# of Cases", readonly=True),
+ 'active': fields.boolean('Archived', readonly=True),
# durations
'delay_open': fields.float('Delay to Assign',digits=(16,2),readonly=True, group_operator="avg",help="Number of Days to open the case"),
@@ -36,6 +35,7 @@ class crm_opportunity_report(osv.Model):
'total_revenue': fields.float('Total Revenue',digits=(16,2),readonly=True),
'expected_revenue': fields.float('Expected Revenue', digits=(16,2),readonly=True),
'stage_id': fields.many2one ('crm.stage', 'Stage', readonly=True, domain="[('team_ids', '=', team_id)]"),
+ 'stage': fields.char ('Stage Name', readonly=True),
'partner_id': fields.many2one('res.partner', 'Partner' , readonly=True),
'company_id': fields.many2one('res.company', 'Company', readonly=True),
'priority': fields.selection(crm.AVAILABLE_PRIORITIES, 'Priority'),
@@ -54,8 +54,6 @@ class crm_opportunity_report(osv.Model):
SELECT
c.id,
c.date_deadline,
- count(c.id) as nbr_cases,
-
c.date_open as opening_date,
c.date_closed as date_closed,
@@ -64,15 +62,16 @@ class crm_opportunity_report(osv.Model):
c.user_id,
c.probability,
c.stage_id,
+ s.name as stage,
c.type,
c.company_id,
c.priority,
c.team_id,
- activity.nbr_activities,
c.campaign_id,
c.source_id,
c.medium_id,
c.partner_id,
+ c.active,
c.country_id,
c.planned_revenue as total_revenue,
c.planned_revenue*(c.probability/100) as expected_revenue,
@@ -84,13 +83,7 @@ class crm_opportunity_report(osv.Model):
c.date_conversion as date_conversion
FROM
"crm_lead" c
- LEFT JOIN (
- SELECT m.res_id, COUNT(*) nbr_activities
- FROM "mail_message" m
- WHERE m.model = 'crm.lead'
- GROUP BY m.res_id ) activity
- ON
- (activity.res_id = c.id)
- WHERE c.active = 'true'
- GROUP BY c.id, activity.nbr_activities
+ LEFT JOIN
+ crm_stage s
+ on c.stage_id = s.id
)""")
diff --git a/addons/crm/report/crm_opportunity_report_view.xml b/addons/crm/report/crm_opportunity_report_view.xml
index cca0bf19c43..feac7edcb68 100644
--- a/addons/crm/report/crm_opportunity_report_view.xml
+++ b/addons/crm/report/crm_opportunity_report_view.xml
@@ -9,9 +9,8 @@
<field name="arch" type="xml">
<pivot string="Leads Analysis" disable_linking="True">
<field name="create_date" interval="month" type="col"/>
- <field name="stage_id" type="row"/>
- <field name="nbr_cases" type="measure"/>
- <field name="total_revenue" type="measure"/>
+ <field name="stage" type="row"/>
+ <field name="expected_revenue" type="measure"/>
</pivot>
</field>
</record>
@@ -22,9 +21,9 @@
<field name="model">crm.opportunity.report</field>
<field name="arch" type="xml">
<graph string="Leads Analysis" stacked="True">
- <field name="stage_id" type="row"/>
+ <field name="stage" type="row"/>
<field name="create_date" interval="month" type="col"/>
- <field name="total_revenue" type="measure"/>
+ <field name="expected_revenue" type="measure"/>
</graph>
</field>
</record>
@@ -33,41 +32,35 @@
<record id="filter_opportunity_opportunities_cohort" model="ir.filters">
<field name="name">Opportunities Cohort</field>
<field name="model_id">crm.opportunity.report</field>
- <field name="domain">[('type','=','opportunity'), ('probability', '=', 100), ('stage_id.on_change', '=', 1)]</field>
+ <field name="domain">[('probability', '=', 100)]</field>
<field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['date_closed:month'],'col_group_by': ['create_date:month'], 'measures': ['nbr_cases']}</field>
+ <field name="context">{'group_by': ['date_closed:month'],'col_group_by': ['create_date:month'], 'measures': ['__count']}</field>
</record>
<record id="filter_opportunity_opportunities_won_per_team" model="ir.filters">
<field name="name">Opportunities Won Per Team</field>
<field name="model_id">crm.opportunity.report</field>
- <field name="domain">[('type','=','opportunity'), ('probability', '=', 100), ('stage_id.on_change', '=', 1)]</field>
+ <field name="domain">[('probability', '=', 100)]</field>
<field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['team_id'], 'col_group_by': ['date_last_stage_update:month'], 'measures': ['nbr_cases', 'delay_close']}</field>
- </record>
- <record id="filter_opportunity_top_opportunities" model="ir.filters">
- <field name="name">Top Opportunities</field>
- <field name="model_id">crm.opportunity.report</field>
- <field name="domain">[('type','=','opportunity')]</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['partner_id'], 'col_group_by': ['date_deadline:month'], 'measures': ['nbr_cases','probability','total_revenue']}</field>
+ <field name="context">{'group_by': ['team_id'], 'col_group_by': ['date_closed:month'], 'measures': ['expected_revenue']}</field>
</record>
<record id="filter_opportunity_salesperson" model="ir.filters">
- <field name="name">By Salespersons</field>
+ <field name="name">Leads By Salespersons</field>
<field name="model_id">crm.opportunity.report</field>
<field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['create_date:month', 'user_id']}</field>
+ <field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['user_id'], 'measures': ['__count']}</field>
</record>
<record id="filter_opportunity_country" model="ir.filters">
- <field name="name">By Country</field>
+ <field name="name">Won By Country</field>
<field name="model_id">crm.opportunity.report</field>
<field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['create_date:month', 'country_id']}</field>
+ <field name="domain">[('probability', '=', 100)]</field>
+ <field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['country_id']}</field>
</record>
<record id="ir_filters_crm_opportunity_report_next_action" model="ir.filters">
- <field name="name">Team Activities</field>
+ <field name="name">Expected Revenues by Team</field>
<field name="model_id">crm.opportunity.report</field>
<field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['team_id'], 'measures': ['nbr_activities']}</field>
+ <field name="context">{'group_by': ['create_date:month', 'team_id'], 'measures': ['expected_revenue', '__count']}</field>
</record>
<!-- Opportunities by user and team Search View -->
@@ -80,11 +73,10 @@
<filter name="opportunity" string="Opportunity" domain="[('type','=','opportunity')]" help="Show only opportunity"/>
<separator/>
<filter string="Won" name="won"
- domain="['&amp;', ('stage_id.probability', '=', 100), ('stage_id.on_change', '=', 1)]"/>
+ domain="[('probability', '=', 100)]"/>
<filter string="Lost" name="lost"
- domain="['&amp;', ('stage_id.probability', '=', 0), ('stage_id.sequence', '!=', 1)]"/>
- <field name="team_id" context="{'invisible_team': False}"
- groups="base.group_multi_salesteams"/>
+ domain="[('probability','=',0), ('active', '=', False)]"/>
+ <field name="team_id" context="{'invisible_team': False}"/>
<field name="user_id" string="Salesperson"/>
<group expand="0" string="Extended Filters">
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
@@ -106,8 +98,8 @@
<field name="date_closed"/>
</group>
<group expand="1" string="Group By">
- <filter string="Salesperson" context="{'group_by':'user_id'}" />
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Salesperson" context="{'group_by':'user_id'}"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Country" context="{'group_by':'country_id'}" />
<filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
<filter string="Stage" context="{'group_by':'stage_id'}"/>
@@ -122,10 +114,11 @@
</record>
<record id="action_report_crm_opportunity" model="ir.actions.act_window">
- <field name="name">Opportunities Analysis</field>
+ <field name="name">Pipeline Analysis</field>
<field name="res_model">crm.opportunity.report</field>
<field name="view_type">form</field>
<field name="view_mode">pivot,graph</field>
+ <field name="domain">[('active', 'in', [True,False])]</field>
<field name="context">{'search_default_opportunity': 1}</field>
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.</field>
</record>
@@ -141,7 +134,7 @@
<field name="view_id" ref="view_report_crm_opportunity_pivot"/>
<field name="act_window_id" ref="action_report_crm_opportunity"/>
</record>
- <menuitem name="Opportunities" id="menu_report_crm_opportunities_tree"
+ <menuitem id="menu_report_crm_opportunities_tree"
parent="base.menu_sale_report" action="action_report_crm_opportunity" sequence="5"/>
</data>
diff --git a/addons/crm/res_config_view.xml b/addons/crm/res_config_view.xml
index 76a7767f44c..2215730b0bf 100644
--- a/addons/crm/res_config_view.xml
+++ b/addons/crm/res_config_view.xml
@@ -34,10 +34,8 @@
<label for="id" string="Leads Email Alias"/>
<div>
<div>
- <span attrs="{'invisible': [('group_multi_salesteams', '!=', True)]}">
- <label string="Each sales team has an email alias that can be defined on the sales team form view" class="oe_inline oe_form_label_help oe_align_right"/>
- </span>
- <span class="oe_inline" attrs="{'invisible': [('group_multi_salesteams', '!=', False)]}">
+ <label string="Each sales team has an email alias that can be defined on the sales team form view" class="oe_inline oe_form_label_help oe_align_right"/>
+ <span class="oe_inline">
<label string="Automatically create new leads when an email is sent to the following alias :" class="oe_inline oe_form_label_help oe_align_right"/>
<field name="alias_prefix" class="oe_inline"/>
<span>@</span>
diff --git a/addons/crm/res_partner_view.xml b/addons/crm/res_partner_view.xml
index 5064b6192ca..cb95eb6e22e 100644
--- a/addons/crm/res_partner_view.xml
+++ b/addons/crm/res_partner_view.xml
@@ -83,7 +83,7 @@
<field name="arch" type="xml">
<data>
<field name="user_id" position="after">
- <field name="team_id" completion="1" groups="base.group_multi_salesteams"/>
+ <field name="team_id" completion="1"/>
</field>
<div name="button_box" position="inside">
<button class="oe_stat_button o_res_partner_tip_opp" type="action"
diff --git a/addons/crm/sales_team.py b/addons/crm/sales_team.py
index 9921506cc79..5715f6b9350 100644
--- a/addons/crm/sales_team.py
+++ b/addons/crm/sales_team.py
@@ -37,27 +37,6 @@ class crm_team(osv.Model):
if (not vals) or (not len(vals.get('stage_ids', []))):
self.pool.get('crm.stage').create(
cr, uid, {
- 'name': _('New'),
- 'sequence': 0,
- 'on_change': False,
- 'team_ids': [(6, 0, [team_id])],
- 'fold': False,
- 'type': 'both'
- }, context=context
- )
- self.pool.get('crm.stage').create(
- cr, uid, {
- 'name': _('Lost'),
- 'sequence': 19,
- 'probability': 0,
- 'on_change': True,
- 'team_ids': [(6, 0, [team_id])],
- 'fold': True,
- 'type': 'both'
- }, context=context
- )
- self.pool.get('crm.stage').create(
- cr, uid, {
'name': _('Won'),
'sequence': 20,
'probability': 100,
diff --git a/addons/crm/sales_team_view.xml b/addons/crm/sales_team_view.xml
index acd833e5b60..8e0eea16827 100644
--- a/addons/crm/sales_team_view.xml
+++ b/addons/crm/sales_team_view.xml
@@ -62,19 +62,17 @@
<record id="action_report_crm_lead_salesteam" model="ir.actions.act_window">
<field name="name">Leads Analysis</field>
- <field name="res_model">crm.lead.report</field>
+ <field name="res_model">crm.opportunity.report</field>
<field name="context">{"search_default_month":1}</field>
- <field name="view_mode">graph</field>
- <field name="view_id" ref="crm.view_report_crm_lead_graph_two"/>
+ <field name="view_mode">graph,pivot</field>
<field name="domain">[('type','=', 'lead'),('team_id', '=', active_id)]</field>
<field name="help">Leads Analysis allows you to check different CRM related information like the treatment delays or number of leads per state. You can sort out your leads analysis by different groups to get accurate grained analysis.</field>
</record>
<record id="action_report_crm_opportunity_salesteam" model="ir.actions.act_window">
- <field name="name">Opportunities Analysis</field>
+ <field name="name">Pipeline Analysis</field>
<field name="res_model">crm.opportunity.report</field>
- <field name="view_mode">graph</field>
- <field name="view_id" ref="crm.view_report_crm_opportunity_graph"/>
+ <field name="view_mode">graph,pivot</field>
<field name="domain">[('type','=', 'opportunity'), ('team_id', '=', active_id)]</field>
<field name="help">Opportunities Analysis gives you an instant access to your opportunities with information such as the expected revenue, planned cost, missed deadlines or the number of interactions per opportunity. This report is mainly used by the sales manager in order to do the periodic review with the teams of the sales pipeline.</field>
</record>
diff --git a/addons/crm/security/crm_security.xml b/addons/crm/security/crm_security.xml
index 5e8823b0812..901560b1776 100644
--- a/addons/crm/security/crm_security.xml
+++ b/addons/crm/security/crm_security.xml
@@ -67,14 +67,14 @@
<record id="crm_rule_personal_lead_report" model="ir.rule">
<field name="name">Personal Leads Analysis</field>
- <field ref="model_crm_lead_report" name="model_id"/>
+ <field ref="model_crm_opportunity_report" name="model_id"/>
<field name="domain_force">['|',('user_id','=',user.id),('user_id','=',False)]</field>
<field name="groups" eval="[(4, ref('base.group_sale_salesman'))]"/>
</record>
<record id="crm_rule_all_lead_report" model="ir.rule">
<field name="name">All Leads Analysis</field>
- <field ref="model_crm_lead_report" name="model_id"/>
+ <field ref="model_crm_opportunity_report" name="model_id"/>
<field name="domain_force">[(1,'=',1)]</field>
<field name="groups" eval="[(4, ref('base.group_sale_salesman_all_leads'))]"/>
</record>
diff --git a/addons/crm/security/ir.model.access.csv b/addons/crm/security/ir.model.access.csv
index ea4d00efc9c..7bca3d24964 100644
--- a/addons/crm/security/ir.model.access.csv
+++ b/addons/crm/security/ir.model.access.csv
@@ -4,14 +4,12 @@ access_crm_lead,crm.lead,model_crm_lead,base.group_sale_salesman,1,1,1,0
access_crm_stage,crm.stage,model_crm_stage,,1,0,0,0
access_crm_stage_manager,crm.stage,model_crm_stage,base.group_sale_manager,1,1,1,1
access_crm_opportunity_report_user,crm.opportunity.report,model_crm_opportunity_report,base.group_sale_salesman,1,0,0,0
-access_crm_opportunity_report_manager,crm.opportunity.report,model_crm_opportunity_report,base.group_sale_manager,1,1,1,1
access_res_partner_manager,res.partner.crm.manager,base.model_res_partner,base.group_sale_manager,1,0,0,0
access_res_partner_category_manager,res.partner.category.crm.manager,base.model_res_partner_category,base.group_sale_manager,1,0,0,0
access_res_partner,res.partner.crm.user,base.model_res_partner,base.group_sale_salesman,1,1,1,0
access_res_partner_category,res.partner.category.crm.user,base.model_res_partner_category,base.group_sale_salesman,1,1,1,0
mail_mailgate_thread,mail.thread,mail.model_mail_thread,base.group_sale_salesman,1,1,1,1
access_base_action_rule_manager,base.action.rule manager,base_action_rule.model_base_action_rule,base.group_sale_manager,1,1,1,1
-access_crm_lead_report_user,crm.lead.report user,model_crm_lead_report,base.group_sale_salesman,1,1,1,1
access_res_partner_bank_type_crm_user,res.partner.bank.type.crm.user,base.model_res_partner_bank_type,base.group_sale_salesman,1,0,0,0
access_crm_lead_partner_manager,crm.lead.partner.manager,model_crm_lead,base.group_partner_manager,1,0,0,0
access_crm_lead_tag,crm_lead_tag,model_crm_lead_tag,base.group_user,1,0,0,0
diff --git a/addons/crm/test/crm_lead_cancel.yml b/addons/crm/test/crm_lead_cancel.yml
index 0d062cf0026..0dc2cdf20c6 100644
--- a/addons/crm/test/crm_lead_cancel.yml
+++ b/addons/crm/test/crm_lead_cancel.yml
@@ -5,7 +5,7 @@
uid: 'crm_res_users_salesmanager'
-
!python {model: crm.lead}: |
- team_id = self.pool.get('crm.team').create(cr, uid, {'name': "Phone Marketing", 'parent_id': ref("sales_team.crm_team_2")})
+ team_id = self.pool.get('crm.team').create(cr, uid, {'name': "Phone Marketing", 'parent_id': ref("sales_team.crm_team_1")})
self.write(cr, uid, [ref("crm_case_1")], {'team_id': team_id})
-
Salesman check unqualified lead .
diff --git a/addons/crm/test/crm_lead_find_stage.yml b/addons/crm/test/crm_lead_find_stage.yml
index 37758f2c038..613250c494c 100644
--- a/addons/crm/test/crm_lead_find_stage.yml
+++ b/addons/crm/test/crm_lead_find_stage.yml
@@ -30,3 +30,13 @@
assert stage_id == stage['id'], "Default stage of opportunity is incorrect!"
-
Now I change the stage of opportunity to won.
+-
+ !python {model: crm.lead}: |
+ self.case_mark_won(cr, uid, [ref("test_crm_lead_new")])
+-
+ I check statge of opp should won, after change stage.
+-
+ !python {model: crm.lead}: |
+ opp = self.browse(cr, uid, ref('test_crm_lead_new'))
+ assert opp.probability=100, "A won opportunity should be probability=100"
+
diff --git a/addons/crm/test/lead2opportunity2win.yml b/addons/crm/test/lead2opportunity2win.yml
index 17caa7f3a77..cdf14427641 100644
--- a/addons/crm/test/lead2opportunity2win.yml
+++ b/addons/crm/test/lead2opportunity2win.yml
@@ -64,6 +64,17 @@
assert opp.type == 'opportunity', 'Lead is not converted to opportunity!'
assert opp.stage_id.id == ref("stage_lead1"), 'Stage of probability is incorrect!'
-
+ I loose the second opportunity
+-
+ !python {model: crm.lead}: |
+ self.case_mark_lost(cr, uid, [ref("crm_case_2")])
+-
+ I check details of the opportunity after the loose
+-
+ !python {model: crm.lead}: |
+ lead = self.browse(cr, uid, ref('crm_case_2'))
+ assert (lead.probability == 0.0) and not lead.active, "Revenue probability should be 0.0!"
+-
I confirm review needs meeting.
-
!python {model: calendar.event}: |
diff --git a/addons/crm/views/crm_action_views.xml b/addons/crm/views/crm_action_views.xml
index e9c6a6f50f3..53352956b09 100644
--- a/addons/crm/views/crm_action_views.xml
+++ b/addons/crm/views/crm_action_views.xml
@@ -23,7 +23,7 @@
</h1>
<group>
<group>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="description"/>
<field name="days"/>
</group><group>
diff --git a/addons/crm/wizard/crm_lead_to_opportunity_view.xml b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
index eab8f47d675..863d4453d81 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity_view.xml
+++ b/addons/crm/wizard/crm_lead_to_opportunity_view.xml
@@ -12,7 +12,7 @@
</group>
<group string="Assign these opportunities to">
<field name="user_id" on_change="on_change_user(user_id, team_id, context)"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</group>
<group string="Opportunities" attrs="{'invisible': [('name', '!=', 'merge')]}">
<field name="opportunity_ids" nolabel="1">
@@ -26,7 +26,7 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</tree>
</field>
</group>
diff --git a/addons/crm/wizard/crm_merge_opportunities_view.xml b/addons/crm/wizard/crm_merge_opportunities_view.xml
index cc6a71ca416..0cccc207372 100644
--- a/addons/crm/wizard/crm_merge_opportunities_view.xml
+++ b/addons/crm/wizard/crm_merge_opportunities_view.xml
@@ -10,7 +10,7 @@
<form string="Merge Leads/Opportunities">
<group string="Assign opportunities to">
<field name="user_id" class="oe_inline" on_change="on_change_user(user_id, team_id, context)"/>
- <field name="team_id" class="oe_inline" groups="base.group_multi_salesteams"/>
+ <field name="team_id" class="oe_inline"/>
</group>
<group string="Select Leads/Opportunities">
<field name="opportunity_ids" nolabel="1">
@@ -23,7 +23,7 @@
<field name="phone"/>
<field name="stage_id"/>
<field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</tree>
</field>
</group>
diff --git a/addons/crm_claim/crm_claim_view.xml b/addons/crm_claim/crm_claim_view.xml
index caab6fe3f95..4d9ae9c8de8 100644
--- a/addons/crm_claim/crm_claim_view.xml
+++ b/addons/crm_claim/crm_claim_view.xml
@@ -15,7 +15,7 @@
<form string="Claim Categories">
<group>
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</group>
</form>
</field>
@@ -27,7 +27,7 @@
<field name="arch" type="xml">
<tree string="Claim Categories">
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</tree>
</field>
</record>
@@ -131,7 +131,7 @@
<group colspan="4" col="4" groups="base.group_user">
<field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads']}"/>
<field name="priority" widget="priority"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="date_deadline"/>
</group>
<group colspan="4" col="4">
diff --git a/addons/crm_claim/report/crm_claim_report_view.xml b/addons/crm_claim/report/crm_claim_report_view.xml
index 9a1873fab59..8204b716984 100644
--- a/addons/crm_claim/report/crm_claim_report_view.xml
+++ b/addons/crm_claim/report/crm_claim_report_view.xml
@@ -45,14 +45,13 @@
<field name="model">crm.claim.report</field>
<field name="arch" type="xml">
<search string="Search">
- <filter string="My Sales Team(s)" context="{'invisible_team': False}" domain="[('team_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
+ <filter string="My Sales Team(s)" context="{'invisible_team': False}" domain="[('team_id.user_id','=',uid)]" help="My Sales Team(s)"/>
<separator/>
<filter string="My Company" domain="[('company_id.user_ids','=',uid)]" help="My Company" groups="base.group_multi_company"/>
<separator/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="user_id" string="Salesperson"/>
- <field name="team_id" string="Sales Team" context="{'invisible_team': False}"
- groups="base.group_multi_salesteams"/>
+ <field name="team_id" string="Sales Team" context="{'invisible_team': False}"/>
<group expand="0" string="Extended Filters...">
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="stage_id" domain="[('team_ids', '=', 'team_id')]"/>
diff --git a/addons/crm_helpdesk/crm_helpdesk_view.xml b/addons/crm_helpdesk/crm_helpdesk_view.xml
index fb11d7faf97..46f9f5a575d 100644
--- a/addons/crm_helpdesk/crm_helpdesk_view.xml
+++ b/addons/crm_helpdesk/crm_helpdesk_view.xml
@@ -15,7 +15,7 @@
<form string="Helpdesk Categories">
<group>
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</group>
</form>
</field>
@@ -27,7 +27,7 @@
<field name="arch" type="xml">
<tree string="Helpdesk Categories">
<field name="name"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</tree>
</field>
</record>
@@ -57,7 +57,7 @@
<sheet string="Helpdesk Support">
<group col="4" class="oe_header">
<field name="name" string="Query"/>
- <field name="team_id" widget="selection" groups="base.group_multi_salesteams"/>
+ <field name="team_id" widget="selection"/>
<field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads']}"/>
<field name="date"/>
<field name="date_deadline"/>
@@ -123,7 +123,7 @@
<field name="date" string="Date"/>
<field name="date_deadline"/>
<field name="user_id"/>
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="priority"/>
<field name="state"/>
</tree>
@@ -159,14 +159,14 @@
<filter icon="terp-gtk-media-pause" string="Pending" domain="[('state','=','pending')]" help="All pending Helpdesk Request" />
<separator/>
<filter string="Assigned to Me or My Sales Team(s)" icon="terp-personal+" domain="['|', ('team_id.user_id','=',uid), ('team_id.member_ids', 'in', [uid])]"
- help="Helpdesk requests that are assigned to me or to one of the sale teams I manage" groups="base.group_multi_salesteams"/>
+ help="Helpdesk requests that are assigned to me or to one of the sale teams I manage"/>
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<field name="user_id"/>
- <field name="team_id" string="Sales Team" groups="base.group_multi_salesteams"/>
+ <field name="team_id" string="Sales Team"/>
<group expand="0" string="Group By">
<filter string="Partner" icon="terp-partner" domain="[]" help="Partner" context="{'group_by':'partner_id'}" />
<filter string="Responsible" icon="terp-personal" domain="[]" help="Responsible User" context="{'group_by':'user_id'}" />
- <filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" icon="terp-personal+" domain="[]" help="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
<filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}" />
<filter string="Request Month" icon="terp-go-month" domain="[]" help="Request Date by Month" context="{'group_by':'date'}" />
diff --git a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
index 4ea72d35411..8c62042bf87 100644
--- a/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
+++ b/addons/crm_helpdesk/report/crm_helpdesk_report_view.xml
@@ -42,11 +42,11 @@
<filter string="Open" domain="[('state','=','open')]" />
<filter string="Closed" domain="[('state','=','cancel')]" />
<separator/>
- <filter string="My Sales Team(s)" context="{'invisible_team': False}" domain="[('team_id.user_id','=',uid)]" help="My Sales Team(s)" groups="base.group_multi_salesteams"/>
+ <filter string="My Sales Team(s)" context="{'invisible_team': False}" domain="[('team_id.user_id','=',uid)]" help="My Sales Team(s)"/>
<separator/>
<filter string="My Company" context="{'invisible_team': False}" domain="[('company_id.user_ids','=',uid)]" help="My Company"/>
<field name="user_id" string="Salesperson"/>
- <field name="team_id" string="Sales Team" context="{'invisible_team': False}" groups="base.group_multi_salesteams"/>
+ <field name="team_id" string="Sales Team" context="{'invisible_team': False}"/>
<field name="company_id" groups="base.group_multi_company"/>
<field name="partner_id" filter_domain="[('partner_id','child_of',self)]"/>
<group expand="0" string="Extended Filters..." groups="base.group_no_one">
@@ -57,7 +57,7 @@
</group>
<group expand="1" string="Group By">
<filter string="Salesperson" context="{'group_by':'user_id'}"/>
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Partner" context="{'group_by':'partner_id'}" />
<filter string="Status" context="{'group_by':'state'}" />
<filter string="Company" groups="base.group_multi_company" context="{'group_by':'company_id'}" />
diff --git a/addons/crm_partner_assign/crm_portal_view.xml b/addons/crm_partner_assign/crm_portal_view.xml
index c5b13946a97..362b2023752 100644
--- a/addons/crm_partner_assign/crm_portal_view.xml
+++ b/addons/crm_partner_assign/crm_portal_view.xml
@@ -18,7 +18,7 @@
<field name="campaign_id" invisible="1"/>
<field name="referred" invisible="1"/>
<field name="medium_id" invisible="1"/>
- <field name="team_id" invisible="context.get('invisible_team', True)" groups="base.group_multi_salesteams"/>
+ <field name="team_id" invisible="context.get('invisible_team', True)"/>
<button string="I'm interested" name="case_interested" icon="gtk-index" type="object"/>
<button string="I'm not interested" name="case_disinterested" icon="gtk-close" type="object"/>
@@ -84,7 +84,7 @@
<field name="campaign_id" invisible="1"/>
<field name="planned_revenue" sum="Expected Revenues"/>
<field name="probability" widget="progressbar" avg="Avg. of Probability"/>
- <field name="team_id" groups="base.group_multi_salesteams" invisible="context.get('invisible_team', True)" />
+ <field name="team_id" invisible="context.get('invisible_team', True)" />
<field name="priority" invisible="1"/>
</tree>
</field>
diff --git a/addons/crm_partner_assign/report/crm_lead_report_view.xml b/addons/crm_partner_assign/report/crm_lead_report_view.xml
index ab272ae4bda..cccb7694a5b 100644
--- a/addons/crm_partner_assign/report/crm_lead_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_lead_report_view.xml
@@ -8,7 +8,7 @@
<field name="model">crm.lead.report.assign</field>
<field name="arch" type="xml">
<search string="Leads Analysis">
- <field name="team_id" context="{'invisible_team': False}" groups="base.group_multi_salesteams"/>
+ <field name="team_id" context="{'invisible_team': False}"/>
<field name="grade_id"/>
<field name="user_id"/>
<field name="partner_assigned_id"/>
@@ -24,8 +24,7 @@
<group expand="1" string="Group By">
<filter string="Salesperson" name="user"
context="{'group_by':'user_id'}" />
- <filter string="Sales Team" context="{'group_by':'team_id'}"
- groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Country" context="{'group_by':'country_id'}" />
<filter string="Stage" context="{'group_by':'stage_id'}"/>
<filter string="Company" context="{'group_by':'company_id'}" />
diff --git a/addons/crm_partner_assign/report/crm_partner_report_view.xml b/addons/crm_partner_assign/report/crm_partner_report_view.xml
index f66f54b95b3..25616f85772 100644
--- a/addons/crm_partner_assign/report/crm_partner_report_view.xml
+++ b/addons/crm_partner_assign/report/crm_partner_report_view.xml
@@ -8,7 +8,7 @@
<field name="model">crm.partner.report.assign</field>
<field name="arch" type="xml">
<search string="Partner assigned Analysis">
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
<field name="user_id"/>
<field name="grade_id"/>
<field name="activation"/>
@@ -16,7 +16,7 @@
<filter string="Salesperson" name="user"
context="{'group_by':'user_id'}" />
<filter string="Sales Team"
- context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ context="{'group_by':'team_id'}"/>
<filter string="Partner" name=""
context="{'group_by':'partner_id'}" />
<separator/>
diff --git a/addons/sale/report/invoice_report_view.xml b/addons/sale/report/invoice_report_view.xml
index 73d50ea98da..76b9a3c09c5 100644
--- a/addons/sale/report/invoice_report_view.xml
+++ b/addons/sale/report/invoice_report_view.xml
@@ -1,17 +1,17 @@
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
- <data>
- <record model="ir.ui.view" id="view_account_invoice_report_search_inherit">
- <field name="name">account.invoice.report.search</field>
- <field name="model">account.invoice.report</field>
- <field name="inherit_id" ref="account.view_account_invoice_report_search" />
- <field name="arch" type="xml">
- <filter name="user" position="after">
- <filter string="Sales Team" domain="[]"
- context="{'group_by':'section_id'}" groups="base.group_multi_salesteams" />
- </filter>
- </field>
- </record>
+ <data>
+ <record model="ir.ui.view" id="view_account_invoice_report_search_inherit">
+ <field name="name">account.invoice.report.search</field>
+ <field name="model">account.invoice.report</field>
+ <field name="inherit_id" ref="account.view_account_invoice_report_search" />
+ <field name="arch" type="xml">
+ <filter name="user" position="after">
+ <filter string="Sales Team" domain="[]"
+ context="{'group_by':'section_id'}"/>
+ </filter>
+ </field>
+ </record>
- </data>
-</openerp> \ No newline at end of file
+ </data>
+</openerp>
diff --git a/addons/sale/report/sale_report_view.xml b/addons/sale/report/sale_report_view.xml
index aaf3f8bd282..e50f9435f16 100644
--- a/addons/sale/report/sale_report_view.xml
+++ b/addons/sale/report/sale_report_view.xml
@@ -72,7 +72,7 @@
</group>
<group expand="1" string="Group By">
<filter string="Salesperson" name="User" context="{'group_by':'user_id'}"/>
- <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" context="{'group_by':'team_id'}"/>
<filter string="Partner's Country" name="country_id" context="{'group_by':'country_id'}"/>
<filter string="Customer" name="Customer" context="{'group_by':'partner_id'}"/>
<filter string="Product Category" name="Category" context="{'group_by':'categ_id'}"/>
diff --git a/addons/sale/sale_view.xml b/addons/sale/sale_view.xml
index e61afb413bc..15b8ba79746 100644
--- a/addons/sale/sale_view.xml
+++ b/addons/sale/sale_view.xml
@@ -295,7 +295,7 @@
<group>
<group string="Sales Information" name="sales_person" groups="base.group_user">
<field name="user_id" context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'account.group_account_invoice', 'base.group_sale_salesman_all_leads']}"/>
- <field name="team_id" options="{'no_create': True}" groups="base.group_multi_salesteams"/>
+ <field name="team_id" options="{'no_create': True}"/>
<field name="client_order_ref"/>
<field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
</group>
@@ -341,7 +341,7 @@
<field name="name" string="Sales Order" filter_domain="['|',('name','ilike',self),('client_order_ref','ilike',self)]"/>
<field name="partner_id" operator="child_of"/>
<field name="user_id"/>
- <field name="team_id" string="Sales Team" groups="base.group_multi_salesteams"/>
+ <field name="team_id" string="Sales Team"/>
<field name="project_id"/>
<field name="product_id"/>
<filter string="My" domain="[('user_id','=',uid)]" name="my_sale_orders_filter"/>
@@ -638,10 +638,10 @@
<field name="inherit_id" ref="account.view_account_invoice_filter"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='user_id']" position="after">
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</xpath>
<xpath expr="//group/filter[@name='status']" position="after">
- <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
+ <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}"/>
</xpath>
</field>
</record>
@@ -654,7 +654,7 @@
<field name="arch" type="xml">
<data>
<xpath expr="//field[@name='user_id']" position="after">
- <field name="team_id" groups="base.group_multi_salesteams"/>
+ <field name="team_id"/>
</xpath>
</data>
</field>
diff --git a/addons/sales_team/__init__.py b/addons/sales_team/__init__.py
index 4aa948084fe..f47c3bc7033 100644
--- a/addons/sales_team/__init__.py
+++ b/addons/sales_team/__init__.py
@@ -1,4 +1,4 @@
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
+
import sales_team
-import res_config
diff --git a/addons/sales_team/__openerp__.py b/addons/sales_team/__openerp__.py
index 077ac32982f..bf0679c5b26 100644
--- a/addons/sales_team/__openerp__.py
+++ b/addons/sales_team/__openerp__.py
@@ -12,13 +12,12 @@ Using this application you can manage Sales Team with CRM and/or Sales
""",
'website': 'https://www.odoo.com/page/crm',
'depends': ['base','mail'],
- 'data': ['security/sales_team_security.xml',
- 'security/ir.model.access.csv',
- 'res_config_view.xml',
- 'sales_team_data.xml',
- 'sales_team.xml',
- 'sales_team_dashboard.xml',
- ],
+ 'data': [
+ 'security/ir.model.access.csv',
+ 'sales_team_data.xml',
+ 'sales_team.xml',
+ 'sales_team_dashboard.xml',
+ ],
'demo': ['sales_team_demo.xml'],
'css': ['static/src/css/sales_team.css'],
'installable': True,
diff --git a/addons/sales_team/res_config.py b/addons/sales_team/res_config.py
deleted file mode 100644
index 4517945b267..00000000000
--- a/addons/sales_team/res_config.py
+++ /dev/null
@@ -1,14 +0,0 @@
-# -*- coding: utf-8 -*-
-
-from openerp.osv import fields, osv
-
-
-class sales_team_configuration(osv.TransientModel):
- _name = 'sale.config.settings'
- _inherit = ['sale.config.settings']
-
- _columns = {
- 'group_multi_salesteams': fields.boolean("Organize Sales activities into multiple Sales Teams",
- implied_group='base.group_multi_salesteams',
- help="""Allows you to use Sales Teams to manage your leads and opportunities."""),
- }
diff --git a/addons/sales_team/res_config_view.xml b/addons/sales_team/res_config_view.xml
deleted file mode 100644
index 859fdf87e63..00000000000
--- a/addons/sales_team/res_config_view.xml
+++ /dev/null
@@ -1,28 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
- <data>
- <record id="view_sale_config_settings" model="ir.ui.view">
- <field name="name">crm settings</field>
- <field name="model">sale.config.settings</field>
- <field name="inherit_id" ref="base_setup.view_sale_config_settings"/>
- <field name="arch" type="xml">
- <data>
- <div name="config_sale" position="after">
- <separator string="Sales Teams"/>
- <group>
- <label for="id" string="Manage Sales Teams"/>
- <div>
- <div>
- <field name="group_multi_salesteams" class="oe_inline"/>
- <label for="group_multi_salesteams"/>
- </div>
- </div>
- </group>
- </div>
- </data>
- </field>
- </record>
- <menuitem id="base.menu_sale_config" name="Configuration" parent="base.menu_base_partner"
- sequence="100" action="base_setup.action_sale_config" groups="base.group_configuration"/>
- </data>
-</openerp>
diff --git a/addons/sales_team/sales_team.xml b/addons/sales_team/sales_team.xml
index 35b5a7c8413..e19a34c362b 100644
--- a/addons/sales_team/sales_team.xml
+++ b/addons/sales_team/sales_team.xml
@@ -138,7 +138,7 @@
</field>
</record>
- <menuitem id="sales_team.menu_sales_team_act" action="crm_team_salesteams_act" sequence="1" parent="base.menu_base_partner" groups="base.group_multi_salesteams" name="Dashboard"/>
+ <menuitem id="sales_team.menu_sales_team_act" action="crm_team_salesteams_act" sequence="1" parent="base.menu_base_partner" name="Dashboard"/>
<!-- add css / js -->
<template id="assets_backend" name="sales_team assets" inherit_id="web.assets_backend">
diff --git a/addons/sales_team/sales_team_demo.xml b/addons/sales_team/sales_team_demo.xml
index 9c2d28b61ff..aa2100bcbe1 100644
--- a/addons/sales_team/sales_team_demo.xml
+++ b/addons/sales_team/sales_team_demo.xml
@@ -1,10 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
- <record id="base.group_user" model="res.groups">
- <field name="implied_ids" eval="[(4, ref('base.group_multi_salesteams'))]"/>
- </record>
-
<record id="base.user_demo" model="res.users">
<field name="groups_id" eval="[(4,ref('base.group_sale_salesman'))]"/>
</record>
diff --git a/addons/sales_team/security/sales_team_security.xml b/addons/sales_team/security/sales_team_security.xml
deleted file mode 100644
index 5cf3db05eac..00000000000
--- a/addons/sales_team/security/sales_team_security.xml
+++ /dev/null
@@ -1,14 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<openerp>
- <data noupdate="0">
- <record id="base.group_multi_salesteams" model="res.groups">
- <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>
diff --git a/addons/website_crm_score/models/sales_team.py b/addons/website_crm_score/models/sales_team.py
index 528f5864237..a35cd59ab3e 100644
--- a/addons/website_crm_score/models/sales_team.py
+++ b/addons/website_crm_score/models/sales_team.py
@@ -138,8 +138,7 @@ class crm_team(osv.osv):
haslead = False
for salesteam in all_salesteams:
domain = safe_eval(salesteam['score_team_domain'], evaluation_context)
- domain.extend([('team_id', '=', False), ('user_id', '=', False)])
- domain.extend(['|', ('stage_id.on_change', '=', False), '&', ('stage_id.probability', '!=', 0), ('stage_id.probability', '!=', 100)])
+ domain.extend([('team_id', '=', False), ('user_id', '=', False), ('active','=',True)])
leads = self.env["crm.lead"].search(domain, limit=50)
haslead = haslead or (len(leads) == 50 and not dry)
diff --git a/addons/website_crm_score/models/website_crm_score.py b/addons/website_crm_score/models/website_crm_score.py
index 22c8854d204..e73fd0e7eec 100644
--- a/addons/website_crm_score/models/website_crm_score.py
+++ b/addons/website_crm_score/models/website_crm_score.py
@@ -62,9 +62,7 @@ class website_crm_score(models.Model):
for score in scores:
domain = safe_eval(score['domain'], evaluation_context)
- # Don't replace the domain with a 'not in' like below... that doesn't make the same thing !!!
- # domain.extend(['|', ('stage_id.on_change', '=', False), ('stage_id.probability', 'not in', [0,100])])
- domain.extend(['|', ('stage_id.on_change', '=', False), '&', ('stage_id.probability', '!=', 0), ('stage_id.probability', '!=', 100)])
+ domain.extend([('active', '=', True)])
e = expression(self._cr, self._uid, domain, self.pool['crm.lead'], self._context)
where_clause, where_params = e.to_sql()
diff --git a/addons/website_sale/security/website_sale.xml b/addons/website_sale/security/website_sale.xml
index e0a4addc428..5f623a7bec2 100644
--- a/addons/website_sale/security/website_sale.xml
+++ b/addons/website_sale/security/website_sale.xml
@@ -23,10 +23,5 @@
<field name="perm_unlink" eval="False"/>
</record>
- <!-- multi salesteam mode -->
- <record id="base.group_user" model="res.groups">
- <field name="implied_ids" eval="[(4, ref('base.group_multi_salesteams'))]"/>
- </record>
-
</data>
</openerp>