7 <!-- Stage Search view -->
8 <record id="crm_lead_stage_search" model="ir.ui.view">
9 <field name="name">Stage - Search</field>
10 <field name="model">crm.stage</field>
11 <field name="arch" type="xml">
12 <search string="Stage Search">
15 <field name="sequence"/>
16 <field name="probability"/>
21 <!-- Stage Form view -->
22 <record id="crm_lead_stage_act" model="ir.actions.act_window">
23 <field name="name">Stages</field>
24 <field name="res_model">crm.stage</field>
25 <field name="view_type">form</field>
26 <field name="view_id" ref="crm.crm_stage_tree"/>
27 <field name="help" type="html">
28 <p class="oe_view_nocontent_create">
29 Click to set a new stage in your lead/opportunity pipeline.
31 Stages will allow salespersons to easily track how a specific
32 lead or opportunity is positioned in the sales cycle.
37 <menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" groups="base.group_no_one"/>
40 LEADS/OPPORTUNITIES CATEGORIES
43 <record id="crm_lead_tag_form" model="ir.ui.view">
44 <field name="name">crm.lead.tag.form</field>
45 <field name="model">crm.lead.tag</field>
46 <field name="arch" type="xml">
47 <form string="Sales Tags">
50 <field name="team_id" groups="base.group_multi_salesteams"/>
56 <record id="crm_lead_tag_tree" model="ir.ui.view">
57 <field name="name">crm.lead.tag.tree</field>
58 <field name="model">crm.lead.tag</field>
59 <field name="arch" type="xml">
60 <tree string="Sales Tags">
62 <field name="team_id" groups="base.group_multi_salesteams"/>
67 <record id="crm_lead_tag_action" model="ir.actions.act_window">
68 <field name="name">Sales Tags</field>
69 <field name="res_model">crm.lead.tag</field>
70 <field name="view_type">form</field>
71 <field name="view_id" ref="crm_lead_tag_tree"/>
72 <field name="help" type="html">
73 <p class="oe_view_nocontent_create">
74 Click to define a new sales tag.
76 Create specific tags that fit your company's activities
77 to better classify and analyse your leads and opportunities.
78 Such categories could for instance reflect your product
79 structure or the different types of sales you do.
84 <menuitem action="crm_lead_tag_action"
85 id="menu_crm_lead_categ" name="Tags"
86 parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/>
92 id="act_crm_opportunity_crm_phonecall_new"
94 groups="base.group_sale_salesman"
95 res_model="crm.phonecall"
96 view_mode="tree,calendar,form"
97 context="{'default_duration': 1.0 ,'default_opportunity_id': active_id}"
101 id="act_crm_opportunity_calendar_event_new"
103 res_model="calendar.event"
104 view_mode="tree,form,calendar"
105 context="{'default_duration': 4.0, 'default_opportunity_id': active_id}"
109 <!-- CRM Lead Form View -->
110 <record model="ir.ui.view" id="crm_case_form_view_leads">
111 <field name="name">CRM - Leads Form</field>
112 <field name="model">crm.lead</field>
113 <field name="arch" type="xml">
114 <form string="Leads Form">
116 <button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
117 help="Convert to Opportunity" class="oe_highlight"/>
118 <field name="stage_id" widget="statusbar" clickable="True"
119 domain="['&', '|', ('case_default', '=', True), ('team_ids', '=', team_id), '|', ('type', '=', type), ('type', '=', 'both')]"
120 options="{'fold_field': 'fold'}"
121 on_change="onchange_stage_id(stage_id)"/>
124 <div class="oe_right oe_button_box" name="buttons">
125 <button class="oe_inline oe_stat_button" type="action"
126 context="{'default_opportunity_id': active_id, 'search_default_opportunity_id': active_id, 'default_partner_id': partner_id, 'default_duration': 1.0}"
127 name="%(crm.crm_phonecall_category_phone_incoming0)d" icon="fa-phone">
131 <div class="oe_title">
132 <label for="name" class="oe_edit_only"/>
133 <h1><field name="name" placeholder="Describe the lead..."/></h1>
137 <field name="partner_name" string="Company Name"/>
138 <!-- Preload all the partner's information -->
139 <field name="partner_id" string="Customer"
140 options='{"create_name_field": "name"}'
141 context="{'default_name': contact_name, 'default_street': street, 'default_city': city, 'default_state_id': state_id, 'default_zip': zip, 'default_country_id': country_id, 'default_function': function, 'default_phone': phone, 'default_mobile': mobile, 'default_fax': fax, 'default_email': email_from, 'default_user_id': user_id, 'default_team_id': team_id}"/>
142 <label for="street" string="Address"/>
144 <field name="street" placeholder="Street..."/>
145 <field name="street2"/>
146 <div class="address_format">
147 <field name="city" placeholder="City" style="width: 40%%"/>
148 <field name="state_id" on_change="onchange_state(state_id)" options='{"no_open": True}' placeholder="State" style="width: 24%%"/>
149 <field name="zip" placeholder="ZIP" style="width: 34%%"/>
151 <field name="country_id" placeholder="Country" options='{"no_open": True}'/>
155 <label for="contact_name"/>
157 <field name="contact_name" class="oe_inline"/><span attrs="{'invisible': [('title', '=', '')]}">, </span>
158 <field name="title" placeholder="Title" domain="[('domain', '=', 'contact')]" class="oe_inline" options='{"no_open": True}'/>
160 <field name="email_from" widget="email"/>
161 <field name="function"/>
162 <field name="phone"/>
163 <field name="mobile"/>
167 <field name="user_id" on_change="on_change_user(user_id, context)"
168 context="{'default_groups_ref': ['base.group_user', 'base.group_partner_manager', 'base.group_sale_salesman_all_leads'] }"/>
169 <label for="team_id" groups="base.group_multi_salesteams"/>
170 <div groups="base.group_multi_salesteams">
171 <field name="team_id"/>
172 <button name="case_escalate" string="Escalate"
173 type="object" class="oe_link"
174 attrs="{'invisible': ['|', ('team_id','=',False), ('probability', '=', 100)]}"/>
176 <field name="type" invisible="1"/>
179 <field name="priority" widget="priority"/>
180 <field name="tag_ids" widget="many2many_tags"/>
183 <notebook colspan="4">
184 <page string="Internal Notes">
185 <field name="description"/>
187 <page string="Extra Info">
189 <group string="Categorization" groups="base.group_multi_company,base.group_no_one" name="categorization">
190 <field name="company_id"
191 groups="base.group_multi_company"
194 <group string="Mailings">
195 <field name="opt_out"/>
196 <field name="message_bounce"/>
198 <group string="Misc">
199 <field name="probability" groups="base.group_no_one"/>
200 <field name="active"/>
201 <field name="referred"/>
204 <field name="date_open" groups="base.group_no_one"/>
205 <field name="date_closed" groups="base.group_no_one"/>
211 <div class="oe_chatter">
212 <field name="message_follower_ids" widget="mail_followers"/>
213 <field name="message_ids" widget="mail_thread"/>
219 <!-- CRM Lead Graph View -->
220 <record model="ir.ui.view" id="crm_case_graph_view_leads">
221 <field name="name">Opportunities</field>
222 <field name="model">crm.lead</field>
223 <field name="arch" type="xml">
224 <graph string="Opportunities" type="bar">
225 <field name="stage_id" type="row"/>
226 <field name="planned_revenue" type="measure"/>
231 <!-- CRM Lead Tree View -->
232 <record model="ir.ui.view" id="crm_case_tree_view_leads">
233 <field name="name">Leads</field>
234 <field name="model">crm.lead</field>
235 <field name="arch" type="xml">
236 <tree string="Leads" fonts="bold:message_unread==True" colors="grey:probability == 100">
237 <field name="date_deadline" invisible="1"/>
238 <field name="create_date"/>
240 <field name="contact_name"/>
241 <field name="country_id"/>
242 <field name="email_from"/>
243 <field name="phone"/>
244 <field name="stage_id"/>
245 <field name="user_id" invisible="1"/>
246 <field name="partner_id" invisible="1"/>
247 <field name="team_id" groups="base.group_multi_salesteams"/>
248 <field name="probability" invisible="1"/>
249 <field name="campaign_id" invisible="1"/>
250 <field name="referred" invisible="1"/>
251 <field name="medium_id" invisible="1"/>
252 <field name="message_unread" invisible="1"/>
258 <!-- CRM Lead Calendar View -->
259 <record model="ir.ui.view" id="crm_case_calendar_view_leads">
260 <field name="name">CRM - Leads Calendar</field>
261 <field name="model">crm.lead</field>
262 <field name="priority" eval="2"/>
263 <field name="arch" type="xml">
264 <calendar string="Leads Generation"
265 date_start="date_action" color="user_id">
267 <field name="partner_name"/>
272 <!-- CRM Lead Kanban View -->
273 <record model="ir.ui.view" id="crm_case_kanban_view_leads">
274 <field name="name">CRM - Leads Kanban</field>
275 <field name="model">crm.lead</field>
276 <field name="arch" type="xml">
277 <kanban default_group_by="stage_id">
278 <field name="stage_id" options='{"group_by_tooltip": {"requirements": "Description", "legend_priority": "Use of stars"}}'/>
279 <field name="color"/>
280 <field name="priority"/>
281 <field name="planned_revenue" sum="Expected Revenues"/>
282 <field name="user_email"/>
283 <field name="user_id"/>
284 <field name="partner_address_email"/>
285 <field name="message_summary"/>
286 <field name="message_unread"/>
287 <field name="tag_ids"/>
289 <field name="date_deadline"/>
290 <t t-name="kanban-box">
291 <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card oe_kanban_global_click">
292 <div class="oe_dropdown_toggle oe_dropdown_kanban">
293 <span class="oe_e">i</span>
294 <ul class="oe_dropdown_menu">
295 <t t-if="widget.view.is_action_enabled('edit')"><li><a type="edit">Edit Opportunity</a></li></t>
296 <t t-if="widget.view.is_action_enabled('delete')"><li><a type="delete">Delete</a></li></t>
297 <li><a name="%(mail.action_email_compose_message_wizard)d" type="action" >Send Email</a></li>
298 <li><a type="action" name="%(crm.crm_phonecall_category_phone_incoming0)d">Calls</a></li>
299 <li><a name="action_schedule_meeting" type="object">Schedule Meeting</a></li>
300 <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
303 <div class="oe_kanban_content">
305 <strong><field name="name"/></strong>
306 <t t-if="record.planned_revenue.raw_value">
307 - <b><t t-esc="record.planned_revenue.value"/>
308 <field name="company_currency"/></b>
312 <field name="partner_id"/>
314 <div class="oe_deadline">
315 <t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kanban_text_red</t>
316 <span t-attf-class="#{red || ''}"><field name="date_action"/></span>
317 <t t-if="record.date_action.raw_value"> : </t>
318 <field name="title_action"/>
320 <div class="oe_kanban_footer_left">
321 <t t-raw="record.message_summary.raw_value"/>
322 <field name="tag_ids"/>
324 <div class="oe_kanban_bottom_right">
325 <img t-att-src="kanban_image('res.users', 'image_small', record.user_id.raw_value)" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar pull-right"/>
326 <div class="pull-left" groups="base.group_user">
327 <field name="priority" widget="priority"/>
331 <div class="oe_clear"></div>
339 <!-- CRM Lead Search View -->
340 <record id="view_crm_case_leads_filter" model="ir.ui.view">
341 <field name="name">CRM - Leads Search</field>
342 <field name="model">crm.lead</field>
343 <field name="arch" type="xml">
344 <search string="Search Leads">
345 <field name="name" string="Lead / Customer" filter_domain="['|','|','|',('partner_name','ilike',self),('email_from','ilike',self),('contact_name','ilike',self),('name','ilike',self)]"/>
346 <field name="tag_ids" string="Tag" filter_domain="[('tag_ids', 'ilike', self)]"/>
347 <field name="team_id" groups="base.group_multi_salesteams"/>
348 <field name="user_id"/>
349 <field name="partner_id" operator="child_of"/>
350 <field name="create_date"/>
351 <field name="country_id"/>
353 <filter string="My Leads"
354 domain="[('user_id','=',uid)]"
355 help="Leads that are assigned to me"/>
356 <filter string="Unassigned" name="unassigned"
357 domain="[('user_id','=', False)]"
358 help="No salesperson"/>
360 <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
362 <filter string="Available for mass mailing"
363 name='not_opt_out' domain="[('opt_out', '=', False)]"
364 help="Leads that did not ask not to be included in mass mailing campaigns"/>
365 <group expand="0" string="Group By">
366 <filter string="Salesperson" domain="[]" context="{'group_by':'user_id'}"/>
367 <filter string="Sales Team" domain="[]" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
368 <filter string="Stage" domain="[]" context="{'group_by':'stage_id'}"/>
369 <filter string="Customer" help="Partner" domain="[]" context="{'group_by':'partner_id'}"/>
370 <filter string="Campaign" domain="[]" context="{'group_by':'campaign_id'}"/>
371 <filter string="Source" domain="[]" context="{'group_by':'source_id'}"/>
372 <filter string="Channel" domain="[]" context="{'group_by':'medium_id'}"/>
373 <filter string="Creation Month" domain="[]" context="{'group_by':'create_date'}"/>
374 <filter string="Last Message" name="group_message_last_post" domain="[]" context="{'group_by':'message_last_post:week'}"/>
385 <!-- Opportunities Form View -->
386 <record model="ir.ui.view" id="crm_case_form_view_oppor">
387 <field name="name">Opportunities</field>
388 <field name="model">crm.lead</field>
389 <field name="priority">20</field>
390 <field name="arch" type="xml">
391 <form string="Opportunities">
393 <button name="case_mark_won" string="Mark Won" type="object" class="oe_highlight"/>
394 <button name="case_mark_lost" string="Mark Lost" type="object" class="oe_highlight"/>
395 <field name="stage_id" widget="statusbar" clickable="True"
396 options="{'fold_field': 'fold'}"
397 domain="['&', ('team_ids', '=', team_id), '|', ('type', '=', type), ('type', '=', 'both')]"/>
400 <div name="buttons" class="oe_right oe_button_box">
401 <button class="oe_inline oe_stat_button" type="action"
402 name="%(crm.crm_phonecall_category_phone_incoming0)d" icon="fa-phone"
403 context="{'default_opportunity_id': active_id, 'search_default_opportunity_id': active_id, 'default_partner_id': partner_id, 'default_duration': 1.0}">
406 <button class="oe_inline oe_stat_button" type="object"
407 context="{'partner_id': partner_id}"
408 name="action_schedule_meeting" icon="fa-calendar">
409 <field string="Meetings" name="meeting_count" widget="statinfo"/>
412 <div class="oe_title">
413 <label for="name" class="oe_edit_only"/>
414 <h1><field name="name" placeholder="e.g. Product Pricing"/></h1>
415 <label for="planned_revenue" style="padding-right: 50px" class="oe_edit_only"/>
416 <label for="probability" class="oe_edit_only"/>
418 <field name="company_currency" invisible="1"/>
419 <field name="planned_revenue" class="oe_inline" widget='monetary' options="{'currency_field': 'company_currency'}"/>
420 <span class="oe_grey"> at </span>
421 <field name="probability" class="oe_inline" widget="integer"/>%%
426 <field name="partner_id"
427 on_change="on_change_partner_id(partner_id)"
429 context="{'default_name': partner_name, 'default_email': email_from, 'default_phone': phone}"/>
430 <field name="email_from" string="Email" widget="email"/>
431 <field name="phone"/>
435 <label for="title_action"/>
437 <field name="date_action" nolabel="1"/> <label string="-" attrs="{'invisible': ['|', ('date_action', '=', False), ('title_action', '=', False)]}"/>
438 <field name="title_action" class="oe_inline" nolabel="1" placeholder="e.g. Call for proposal"/>
440 <field name="date_deadline"/>
441 <field name="priority" widget="priority"/>
445 <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']}"/>
446 <label for="team_id" groups="base.group_multi_salesteams"/>
447 <div groups="base.group_multi_salesteams">
448 <field name="team_id" widget="selection"/>
449 <button name="case_escalate" string="Escalate" type="object" class="oe_link"
450 attrs="{'invisible': ['|', ('team_id','=',False), ('probability', '=', 100)]}"/>
454 <field name="tag_ids" widget="many2many_tags"/>
455 <field name="lost_reason"/>
459 <notebook colspan="4">
460 <page string="Internal Notes">
461 <field name="description"/>
466 <field name="partner_name"/>
467 <label for="street" string="Address"/>
469 <field name="street" placeholder="Street..."/>
470 <field name="street2"/>
471 <div class="address_format">
472 <field name="city" placeholder="City" style="width: 40%%"/>
473 <field name="state_id" options='{"no_open": True}' on_change="onchange_state(state_id)" placeholder="State" style="width: 24%%"/>
474 <field name="zip" placeholder="ZIP" style="width: 34%%"/>
476 <field name="country_id" placeholder="Country" options='{"no_open": True}'/>
481 <label for="contact_name"/>
483 <field name="contact_name" class="oe_inline"/>
484 <field name="title" placeholder="Title" domain="[('domain', '=', 'contact')]" options='{"no_open": True}' class="oe_inline"/>
486 <field name="function"/>
487 <field name="mobile"/>
490 <group string="Mailings" name="mailings">
491 <field name="opt_out"/>
493 <group string="Misc">
494 <field name="active"/>
495 <field name="day_open" groups="base.group_no_one"/>
496 <field name="day_close" groups="base.group_no_one"/>
497 <field name="referred"/>
498 <field name="type" invisible="1"/>
500 <group string="References">
506 <page string="Fund Raising" groups="crm.group_fund_raising">
508 <field name="planned_cost"/>
513 <div class="oe_chatter">
514 <field name="message_follower_ids" widget="mail_followers"/>
515 <field name="message_ids" widget="mail_thread"/>
521 <!-- Opportunities Tree View -->
522 <record model="ir.ui.view" id="crm_case_tree_view_oppor">
523 <field name="name">Opportunities Tree</field>
524 <field name="model">crm.lead</field>
525 <field name="arch" type="xml">
526 <tree string="Opportunities" fonts="bold:message_unread==True" colors="gray:probability == 100;red:date_deadline and (date_deadline < current_date)">
527 <field name="date_deadline" invisible="1"/>
528 <field name="create_date"/>
529 <field name="name" string="Opportunity"/>
530 <field name="partner_id" string="Customer"/>
531 <field name="country_id"/>
532 <field name="date_action"/>
533 <field name="title_action"/>
534 <field name="medium_id" invisible="1"/>
535 <field name="campaign_id" invisible="1"/>
536 <field name="source_id" invisible="1"/>
537 <field name="stage_id"/>
538 <field name="planned_revenue" sum="Expected Revenues"/>
539 <field name="probability" avg="Avg. of Probability"/>
540 <field name="team_id" groups="base.group_multi_salesteams"/>
541 <field name="user_id"/>
542 <field name="referred" invisible="1"/>
543 <field name="priority" invisible="1"/>
544 <field name="message_unread" invisible="1"/>
545 <field name="probability" invisible="1"/>
546 <field name="write_date" invisible="1"/>
551 <!-- Opportunities Search View -->
552 <record id="view_crm_case_opportunities_filter" model="ir.ui.view">
553 <field name="name">CRM - Opportunities Search</field>
554 <field name="model">crm.lead</field>
555 <field name="arch" type="xml">
556 <search string="Search Opportunities">
557 <field name="name" string="Opportunity" filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
558 <field name="tag_ids" string="Tag" filter_domain="[('tag_ids', 'ilike', self)]"/>
559 <field name="team_id" groups="base.group_multi_salesteams"/>
560 <field name="user_id"/>
561 <field name="partner_id" operator="child_of"/>
562 <field name="stage_id" domain="[]"/>
563 <field name="probability"/>
564 <field name="lost_reason"/>
566 <filter string="New" name="new"
567 domain="['&', ('stage_id.probability', '=', 0), ('stage_id.sequence', '<=', 1)]"/>
568 <filter string="Won" name="won"
569 domain="['&', ('stage_id.probability', '=', 100), ('stage_id.fold', '=', True)]"/>
570 <filter string="Lost" name="lost"
571 domain="['&', ('stage_id.probability', '=', 0), ('stage_id.fold', '=', True)]"/>
573 <filter string="My Opportunities" name="assigned_to_me"
574 domain="[('user_id', '=', uid)]"
575 help="Opportunities that are assigned to me"/>
576 <filter string="Unassigned" name="unassigned"
577 domain="[('user_id','=', False)]" help="No salesperson"/>
579 <filter string="New Mail" name="message_unread" domain="[('message_unread','=',True)]"/>
580 <group expand="0" string="Group By" colspan="16">
581 <filter string="Salesperson" context="{'group_by':'user_id'}"/>
582 <filter string="Sales Team" context="{'group_by':'team_id'}" groups="base.group_multi_salesteams"/>
583 <filter string="Country" context="{'group_by':'country_id'}" />
584 <filter string="Company" context="{'group_by':'company_id'}" groups="base.group_multi_company"/>
585 <filter string="Stage" context="{'group_by':'stage_id'}"/>
586 <filter string="Campaign" domain="[]" context="{'group_by':'campaign_id'}"/>
587 <filter string="Channel" domain="[]" context="{'group_by':'medium_id'}"/>
588 <filter string="Source" domain="[]" context="{'group_by':'source_id'}"/>
589 <separator orientation="vertical" />
590 <filter string="Creation Month" context="{'group_by':'create_date:month'}" name="month"/>
591 <filter string="Expected Closing" context="{'group_by':'date_deadline'}"/>
592 <filter string="Lost Reason" context="{'group_by':'lost_reason'}"/>
601 <act_window name="Lead/Opportunity Mass Mail"
602 res_model="mail.compose.message"
607 key2="client_action_multi"
608 id="crm.action_lead_mass_mail"
610 'default_composition_mode': 'mass_mail',
611 'default_email_to':'{($object.email or \'\')|safe}',
612 'default_use_template': True,
613 'default_template_id': ref('crm.email_template_opportunity_mail'),
615 groups="base.group_sale_salesman"
618 <!--Update of email_template defined in crm_lead_data, to add ref_ir_act_window
619 allowing to have a well formed email template (context action considered as set). -->
620 <record id="email_template_opportunity_mail" model="email.template">
621 <field name="ref_ir_act_window" ref="crm.action_lead_mass_mail"/>
624 <record id="action_mark_as_lost" model="ir.actions.server">
625 <field name="name">Mark As Lost</field>
626 <field name="model_id" ref="model_crm_lead"/>
627 <field name="state">code</field>
629 if context.get('active_model') == 'crm.lead' and context.get('active_ids'):
630 self.case_mark_lost(cr, uid, context['active_ids'], context=context)
634 <record id="ir_mark_as_lost" model="ir.values">
635 <field eval="'client_action_multi'" name="key2"/>
636 <field eval="'crm.lead'" name="model"/>
637 <field name="name">Mark As Lost</field>
638 <field eval="'ir.actions.server,%d'%action_mark_as_lost" name="value"/>