summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--addons/crm/models/crm_team.py11
-rw-r--r--addons/crm/report/crm_opportunity_report_views.xml29
-rw-r--r--addons/crm/views/crm_lead_views.xml204
3 files changed, 159 insertions, 85 deletions
diff --git a/addons/crm/models/crm_team.py b/addons/crm/models/crm_team.py
index 7861932346c..31b4eeed98c 100644
--- a/addons/crm/models/crm_team.py
+++ b/addons/crm/models/crm_team.py
@@ -146,17 +146,6 @@ class Team(models.Model):
if user_team_id:
action_context['default_team_id'] = user_team_id
- tree_view_id = self.env.ref('crm.crm_case_tree_view_oppor').id
- form_view_id = self.env.ref('crm.crm_case_form_view_oppor').id
- kanb_view_id = self.env.ref('crm.crm_case_kanban_view_leads').id
- action['views'] = [
- [kanb_view_id, 'kanban'],
- [tree_view_id, 'tree'],
- [form_view_id, 'form'],
- [False, 'graph'],
- [False, 'calendar'],
- [False, 'pivot']
- ]
action['context'] = action_context
return action
diff --git a/addons/crm/report/crm_opportunity_report_views.xml b/addons/crm/report/crm_opportunity_report_views.xml
index ef869a09b46..3169cf64bf4 100644
--- a/addons/crm/report/crm_opportunity_report_views.xml
+++ b/addons/crm/report/crm_opportunity_report_views.xml
@@ -52,35 +52,6 @@
</field>
</record>
- <!-- Custom reports (aka filters) -->
- <record id="filter_opportunity_opportunities_cohort" model="ir.filters">
- <field name="name">Opportunities Cohort</field>
- <field name="model_id">crm.lead</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': ['__count__']}</field>
- </record>
- <record id="filter_opportunity_opportunities_won_per_team" model="ir.filters">
- <field name="name">Won by Channel</field>
- <field name="model_id">crm.lead</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': ['expected_revenue']}</field>
- </record>
- <record id="filter_opportunity_country" model="ir.filters">
- <field name="name">Won by Country</field>
- <field name="model_id">crm.lead</field>
- <field name="user_id" eval="False"/>
- <field name="domain">[('probability', '=', 100)]</field>
- <field name="context">{'col_group_by': ['create_date:month'], 'group_by': ['country_id']}</field>
- </record>
- <record id="filter_opportunity_expected_revenue" model="ir.filters">
- <field name="name">Expected Revenue by Channel</field>
- <field name="model_id">crm.lead</field>
- <field name="user_id" eval="False"/>
- <field name="context">{'group_by': ['create_date:month', 'team_id'], 'measures': ['expected_revenue', '__count__']}</field>
- </record>
-
<!-- Opportunities by user and team Search View -->
<record id="crm_opportunity_report_view_search" model="ir.ui.view">
<field name="name">crm.lead.search</field>
diff --git a/addons/crm/views/crm_lead_views.xml b/addons/crm/views/crm_lead_views.xml
index 86b7638f464..85d6b260d0e 100644
--- a/addons/crm/views/crm_lead_views.xml
+++ b/addons/crm/views/crm_lead_views.xml
@@ -379,6 +379,9 @@
<field name="partner_id" operator="child_of" string="Customer"/>
<field name="create_date"/>
<field name="country_id"/>
+ <field name="city"/>
+ <field name="lost_reason"/>
+ <field name="stage_id"/>
<separator />
<filter string="My Leads"
name="assigned_to_me"
@@ -389,11 +392,12 @@
help="No salesperson"/>
<separator />
<filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
- <filter string="Archived" name="archived" domain="[('active', '=', False)]"/>
<separator />
+ <filter string="Current" name="current" domain="[('active', '=', True)]"/>
+ <filter string="Archived" name="archived" domain="[('active', '=', False)]"/>
<filter string="Exclude Opt Out"
- name='not_opt_out' domain="[('opt_out', '=', False)]"
- help="Leads that did not ask not to be included in mass mailing campaigns"/>
+ name='not_opt_out' domain="[('opt_out', '=', False)]"
+ help="Leads that did not ask not to be included in mass mailing campaigns"/>
<separator/>
<filter string="My Activities" name="activities_my"
domain="[('activity_ids.user_id', '=', uid)]"/>
@@ -403,20 +407,20 @@
help="Show all records which has next action date is before today"/>
<filter string="Today Activities" name="activities_today"
domain="[('activity_ids.date_deadline', '=', context_today().strftime('%Y-%m-%d'))]"/>
- <filter string="Future Activities (7 days)" name="activities_week"
- domain="['&amp;', ('activity_ids.date_deadline', '&gt;=', context_today().strftime('%Y-%m-%d')),
- ('activity_ids.date_deadline', '&lt;=', (context_today()+datetime.timedelta(days=7)).strftime('%Y-%m-%d'))
- ]"/>
- <filter string="Future Activities (All)" name="activities_upcoming_all"
+ <filter string="Future Activities" name="activities_upcoming_all"
domain="[('activity_ids.date_deadline', '&gt;', context_today().strftime('%Y-%m-%d'))
]"/>
<group expand="0" string="Group By">
<filter string="Salesperson" name="groupby_salesperson" domain="[]" context="{'group_by':'user_id'}"/>
<filter string="Sales Team" name="groupby_team" domain="[]" context="{'group_by':'team_id'}"/>
+ <filter name="stage" string="Stage" context="{'group_by':'stage_id'}"/>
+ <filter name="city" string="City" context="{'group_by': 'city'}"/>
+ <filter string="Country" name="country" context="{'group_by':'country_id'}" />
+ <filter string="Lost Reason" name="lostreason" context="{'group_by':'lost_reason'}"/>
<filter name="customer" string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
<filter string="Campaign" name="groupby_campaign" domain="[]" context="{'group_by':'campaign_id'}"/>
- <filter string="Source" name="groupby_source" domain="[]" context="{'group_by':'source_id'}"/>
<filter string="Medium" name="groupby_channel" domain="[]" context="{'group_by':'medium_id'}"/>
+ <filter string="Source" name="groupby_source" domain="[]" context="{'group_by':'source_id'}"/>
<filter string="Creation Date" name="groupby_createmonth" domain="[]" context="{'group_by':'create_date'}"/>
</group>
</search>
@@ -613,6 +617,29 @@
</field>
</record>
+ <record id="crm_lead_view_graph" model="ir.ui.view">
+ <field name="name">crm.lead.view.graph</field>
+ <field name="model">crm.lead</field>
+ <field name="arch" type="xml">
+ <graph string="Opportunities">
+ <field name="stage_id" type="col"/>
+ <field name="user_id" type="row"/>
+ </graph>
+ </field>
+ </record>
+
+ <record id="crm_lead_view_pivot" model="ir.ui.view">
+ <field name="name">crm.lead.view.pivot</field>
+ <field name="model">crm.lead</field>
+ <field name="arch" type="xml">
+ <pivot string="Pipeline Analysis" disable_linking="True">
+ <field name="create_date" interval="month" type="row"/>
+ <field name="stage_id" type="col"/>
+ <field name="expected_revenue" type="measure"/>
+ </pivot>
+ </field>
+ </record>
+
<record id="crm_lead_view_tree_activity" model="ir.ui.view">
<field name="name">crm.lead.tree.opportunity.next.activity</field>
<field name="model">crm.lead</field>
@@ -639,20 +666,32 @@
<field name="tag_ids" string="Tag" filter_domain="[('tag_ids', 'ilike', self)]"/>
<field name="team_id"/>
<field name="user_id"/>
+ <field name="city"/>
<field name="partner_id" operator="child_of" string="Customer"/>
<field name="stage_id" domain="[]"/>
<field name="activity_type_id"/>
<field name="activity_summary"/>
<field name="probability"/>
<field name="lost_reason"/>
- <separator/>
- <filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
+ <field name="date_conversion"/>
<separator/>
<filter string="My Pipeline" name="assigned_to_me"
- domain="[('user_id', '=', uid)]"
- help="Opportunities that are assigned to me"/>
+ domain="[('user_id', '=', uid)]"
+ help="Opportunities that are assigned to me"/>
<filter string="Unassigned" name="unassigned"
- domain="[('user_id','=', False)]" help="No salesperson"/>
+ domain="[('user_id','=', False)]" help="No salesperson"/>
+ <separator/>
+ <filter string="Unread Messages" name="message_needaction" domain="[('message_needaction','=',True)]"/>
+ <separator/>
+ <filter string="Overdue Opportunities" name="overdue_opp"
+ domain="[('date_deadline', '&lt;', context_today().strftime('%Y-%m-%d')), ('date_closed', '=', False)]"
+ help="Opportunities with a date of Expected Closing which is in the past"/>
+ <filter string="Creation Date" name="creation_date" date="create_date"/>
+ <filter string="Expected Closing" name="close_this_month" date="date_deadline"/>
+ <filter string="Closed Date" name="close_date" date="date_closed"/>
+ <separator/>
+ <filter string="Won" name="won" domain="['&amp;', ('active', '=', True), ('stage_id.probability', '=', 100)]"/>
+ <filter string="Lost" name="lost" domain="['&amp;', ('active', '=', False), ('probability', '=', 0)]"/>
<separator/>
<filter string="Activities Todo" name="activities_my"
domain="[('activity_ids.user_id', '=', uid)]"/>
@@ -665,32 +704,21 @@
<filter string="Future Activities" name="activities_upcoming_all"
domain="[('activity_ids.date_deadline', '&gt;', context_today().strftime('%Y-%m-%d'))
]"/>
-
- <separator/>
- <filter string="Creation Date" name="creation_date" date="create_date"/>
- <filter string="Expected Closing" name="close_this_month" date="date_deadline"/>
- <filter string="Closed Date" name="close_date" date="date_closed"/>
- <filter string="Overdue Opportunities" name="overdue_opp"
- domain="[('date_deadline', '&lt;', context_today().strftime('%Y-%m-%d')), ('date_closed', '=', False)]"
- help="Opportunities with a date of Expected Closing which is in the past"/>
-
- <separator/>
- <filter string="Lost" name="lost" domain="['&amp;', ('active', '=', False), ('probability', '=', 0)]"/>
- <filter string="Won" name="won" domain="['&amp;', ('active', '=', True), ('stage_id.probability', '=', 100)]"/>
<group expand="0" string="Group By" colspan="16">
<filter string="Salesperson" name="salesperson" context="{'group_by':'user_id'}"/>
<filter string="Sales Team" name="saleschannel" context="{'group_by':'team_id'}"/>
+ <filter name="stage" string="Stage" context="{'group_by':'stage_id'}"/>
+ <filter name="city" string="City" context="{'group_by': 'city'}"/>
<filter string="Country" name="country" context="{'group_by':'country_id'}" />
+ <filter string="Lost Reason" name="lostreason" context="{'group_by':'lost_reason'}"/>
<filter string="Company" name="company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
- <filter name="stage" string="Stage" context="{'group_by':'stage_id'}"/>
<filter string="Campaign" name="compaign" domain="[]" context="{'group_by':'campaign_id'}"/>
<filter string="Medium" name="medium" domain="[]" context="{'group_by':'medium_id'}"/>
<filter string="Source" name="source" domain="[]" context="{'group_by':'source_id'}"/>
<separator orientation="vertical" />
<filter string="Creation Date" context="{'group_by':'create_date:month'}" name="month"/>
<filter string="Expected Closing Date" name="date_deadline" context="{'group_by':'date_deadline'}"/>
- <filter string="Closed Date" name="close_date_groupby" context="{'group_by':'date_closed'}"/>
- <filter string="Lost Reason" name="lostreason" context="{'group_by':'lost_reason'}"/>
+ <filter string="Conversion Date" name="date_conversion" context="{'group_by': 'date_conversion'}" groups="crm.group_use_lead"/>
</group>
</search>
</field>
@@ -819,10 +847,6 @@ for rec in records:
<field name="res_model">crm.lead</field>
<field name="view_mode">tree,kanban,graph,pivot,calendar,form</field>
<field name="domain">['|', ('type','=','lead'), ('type','=',False)]</field>
- <field name="view_ids"
- eval="[(5, 0, 0),
- (0, 0, {'view_mode': 'tree', 'view_id': ref('crm_case_tree_view_leads')}),
- (0, 0, {'view_mode': 'kanban', 'view_id': ref('view_crm_lead_kanban')})]"/>
<field name="search_view_id" ref="crm.view_crm_case_leads_filter"/>
<field name="context">{
'default_type':'lead',
@@ -832,6 +856,41 @@ for rec in records:
</field>
</record>
+ <record id="crm_lead_all_leads_view_tree" model="ir.actions.act_window.view">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="crm_case_tree_view_leads"/>
+ <field name="act_window_id" ref="crm_lead_all_leads"/>
+ </record>
+
+ <record id="crm_lead_all_leads_view_kanban" model="ir.actions.act_window.view">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="view_crm_lead_kanban"/>
+ <field name="act_window_id" ref="crm_lead_all_leads"/>
+ </record>
+
+ <record id="crm_lead_all_leads_view_calendar" model="ir.actions.act_window.view">
+ <field name="sequence" eval="3"/>
+ <field name="view_mode">calendar</field>
+ <field name="view_id" ref="crm_case_calendar_view_leads"/>
+ <field name="act_window_id" ref="crm_lead_all_leads"/>
+ </record>
+
+ <record id="crm_lead_all_leads_view_pivot" model="ir.actions.act_window.view">
+ <field name="sequence" eval="4"/>
+ <field name="view_mode">pivot</field>
+ <field name="view_id" ref="crm_lead_view_pivot"/>
+ <field name="act_window_id" ref="crm_lead_all_leads"/>
+ </record>
+
+ <record id="crm_lead_all_leads_view_graph" model="ir.actions.act_window.view">
+ <field name="sequence" eval="5"/>
+ <field name="view_mode">graph</field>
+ <field name="view_id" ref="crm_lead_view_graph"/>
+ <field name="act_window_id" ref="crm_lead_all_leads"/>
+ </record>
+
<menuitem
id="menu_crm_leads"
name="Leads"
@@ -854,27 +913,48 @@ for rec in records:
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
</record>
- <record model="ir.actions.act_window.view" id="action_crm_tag_kanban_view_oppor11">
+ <record id="crm_lead_opportunities_view_kanban" model="ir.actions.act_window.view">
<field name="sequence" eval="0"/>
<field name="view_mode">kanban</field>
<field name="view_id" ref="crm_case_kanban_view_leads"/>
<field name="act_window_id" ref="crm_lead_opportunities"/>
</record>
- <record model="ir.actions.act_window.view" id="action_crm_tag_tree_view_oppor11">
+ <record id="crm_lead_opportunities_view_tree" model="ir.actions.act_window.view">
<field name="sequence" eval="1"/>
<field name="view_mode">tree</field>
- <field name="view_id" ref="crm_case_tree_view_oppor"/>
+ <field name="view_id" ref="crm.crm_case_tree_view_oppor"/>
<field name="act_window_id" ref="crm_lead_opportunities"/>
</record>
- <record model="ir.actions.act_window.view" id="action_crm_tag_form_view_oppor11">
+ <record id="crm_lead_opportunities_view_form" model="ir.actions.act_window.view">
<field name="sequence" eval="2"/>
<field name="view_mode">form</field>
<field name="view_id" ref="crm_case_form_view_oppor"/>
<field name="act_window_id" ref="crm_lead_opportunities"/>
</record>
+ <record id="crm_lead_opportunities_view_graph" model="ir.actions.act_window.view">
+ <field name="sequence" eval="3"/>
+ <field name="view_mode">graph</field>
+ <field name="view_id" ref="crm_lead_view_graph"/>
+ <field name="act_window_id" ref="crm_lead_opportunities"/>
+ </record>
+
+ <record id="crm_lead_opportunities_view_pivot" model="ir.actions.act_window.view">
+ <field name="sequence" eval="4"/>
+ <field name="view_mode">pivot</field>
+ <field name="view_id" ref="crm_lead_view_pivot"/>
+ <field name="act_window_id" ref="crm_lead_opportunities"/>
+ </record>
+
+ <record id="crm_lead_opportunities_view_calendar" model="ir.actions.act_window.view">
+ <field name="sequence" eval="5"/>
+ <field name="view_mode">calendar</field>
+ <field name="view_id" ref="crm_case_calendar_view_leads"/>
+ <field name="act_window_id" ref="crm_lead_opportunities"/>
+ </record>
+
<record id="action_your_pipeline" model="ir.actions.server">
<field name="name">Crm: My Pipeline</field>
<field name="model_id" ref="crm.model_crm_team"/>
@@ -892,17 +972,51 @@ for rec in records:
'default_user_id': uid,
'search_default_assigned_to_me': 1
}</field>
- <field name="view_ids"
- eval="[(5, 0, 0),
- (0, 0, {'view_mode': 'tree', 'view_id': ref('crm_case_tree_view_oppor')}),
- (0, 0, {'view_mode': 'form', 'view_id': ref('crm_case_form_view_oppor')}),
- (0, 0, {'view_mode': 'kanban', 'view_id': ref('crm_case_kanban_view_leads')}),
- (0, 0, {'view_mode': 'calendar'}),
- (0, 0, {'view_mode': 'pivot'}),
- (0, 0, {'view_mode': 'graph'})]"/>
<field name="search_view_id" ref="crm.view_crm_case_opportunities_filter"/>
</record>
+ <record id="crm_lead_opportunities_tree_view_view_kanban" model="ir.actions.act_window.view">
+ <field name="sequence" eval="0"/>
+ <field name="view_mode">kanban</field>
+ <field name="view_id" ref="crm_case_kanban_view_leads"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
+ <record id="crm_lead_opportunities_tree_view_view_tree" model="ir.actions.act_window.view">
+ <field name="sequence" eval="1"/>
+ <field name="view_mode">tree</field>
+ <field name="view_id" ref="crm.crm_case_tree_view_oppor"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
+ <record id="crm_lead_opportunities_tree_view_view_calendar" model="ir.actions.act_window.view">
+ <field name="sequence" eval="2"/>
+ <field name="view_mode">calendar</field>
+ <field name="view_id" ref="crm_case_calendar_view_leads"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
+ <record id="crm_lead_opportunities_tree_view_view_pivot" model="ir.actions.act_window.view">
+ <field name="sequence" eval="3"/>
+ <field name="view_mode">pivot</field>
+ <field name="view_id" ref="crm_lead_view_pivot"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
+ <record id="crm_lead_opportunities_tree_view_view_form" model="ir.actions.act_window.view">
+ <field name="sequence" eval="4"/>
+ <field name="view_mode">form</field>
+ <field name="view_id" ref="crm_case_form_view_oppor"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
+ <record id="crm_lead_opportunities_tree_view_view_graph" model="ir.actions.act_window.view">
+ <field name="sequence" eval="5"/>
+ <field name="view_mode">graph</field>
+ <field name="view_id" ref="crm_lead_view_graph"/>
+ <field name="act_window_id" ref="crm_lead_opportunities_tree_view"/>
+ </record>
+
<menuitem
id="menu_crm_opportunities"
action="action_your_pipeline"