9 <!-- Stage Search view -->
10 <record id="crm_lead_stage_search" model="ir.ui.view">
11 <field name="name">Stage - Search</field>
12 <field name="model">crm.case.stage</field>
13 <field name="type">search</field>
14 <field name="arch" type="xml">
15 <search string="Stage Search">
23 <!-- Stage Form view -->
24 <record id="crm_lead_stage_act" model="ir.actions.act_window">
25 <field name="name">Stages</field>
26 <field name="res_model">crm.case.stage</field>
27 <field name="view_type">form</field>
28 <field name="view_id" ref="crm.crm_case_stage_tree"/>
29 <field name="help">Add specific stages to leads and opportunities allowing your sales to better organise their sales pipeline. Stages will allow them to easily track how a specific lead or opportunity is positioned in the sales cycle.</field>
32 <menuitem action="crm_lead_stage_act" id="menu_crm_lead_stage_act" name="Stages" sequence="0" parent="base.menu_crm_config_lead" />
35 LEADS/OPPORTUNITIES CATEGORIES
38 <!-- Categories Form View -->
39 <record id="crm_lead_categ_action" model="ir.actions.act_window">
40 <field name="name">Categories</field>
41 <field name="res_model">crm.case.categ</field>
42 <field name="view_type">form</field>
43 <field name="view_id" ref="crm_case_categ_tree-view"/>
44 <field name="context" eval="{'object_id': ref('model_crm_lead')}"/>
45 <field name="domain">[('object_id.model', '=', 'crm.lead')]</field>
46 <field name="help">Create specific categories that fit your company's activities to better classify and analyse your leads and opportunities. Such categories could for instance reflect your product structure or the different types of sales you do.</field>
49 <menuitem action="crm_lead_categ_action"
50 id="menu_crm_lead_categ" name="Categories"
51 parent="base.menu_crm_config_lead" sequence="1" groups="base.group_no_one"/>
57 <!-- CRM Lead Form View -->
58 <record model="ir.ui.view" id="crm_case_form_view_leads">
59 <field name="name">CRM - Leads Form</field>
60 <field name="model">crm.lead</field>
61 <field name="type">form</field>
62 <field name="arch" type="xml">
63 <form string="Leads Form" layout="manual">
64 <div class="oe_form_topbar">
65 <button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
66 states="draft,open,pending" help="Convert to Opportunity"/>
67 <button name="case_escalate" string="Escalate" type="object"
68 states="draft,open,pending"/>
69 <button name="case_reset" string="Reset" type="object"
71 <button name="case_cancel" string="Cancel" type="object"
72 states="draft,open,pending"/>
73 <div class="oe_right">
74 <field name="stage_id" nolabel="1" widget="statusbar"
75 on_change="onchange_stage_id(stage_id)"/>
77 <div class="oe_clear"/>
80 <group colspan="4" col="7">
81 <field name="name" required="1" string="Subject"/>
82 <field name="priority"/>
83 <field name="categ_id"
85 domain="[('object_id.model','=','crm.lead')]"/>
87 <field name="user_id" />
88 <field name="section_id" widget="selection" />
89 <field name="type" invisible="1"/>
91 <notebook colspan="4">
93 <group colspan="4" col="2">
94 <field name="partner_name" string="Company Name" />
96 <group colspan="2" col="4">
97 <separator string="Contact" colspan="4" col="4"/>
98 <field name="contact_name" colspan="4"/>
100 <field domain="[('domain', '=', 'contact')]" name="title" widget="selection"/>
101 <field name="function" />
102 <field name="street" colspan="4"/>
103 <field name="street2" colspan="4"/>
106 <field name="country_id"/>
107 <field name="state_id"/>
109 <group colspan="2" col="3">
110 <separator string="Communication" colspan="4" col="3"/>
111 <field name="email_from" widget="email"/>
112 <button string="Mail"
113 name="%(mail.action_email_compose_message_wizard)d"
114 icon="terp-mail-message-new" type="action" colspan="1"/>
116 <field name="phone"/>
120 <field name="mobile"/>
122 <separator string="Links" colspan="4" col="3"/>
123 <field name="partner_id" string="Customer"/>
125 name="%(action_crm_lead2partner)d"
126 icon="terp-partner" type="action"
128 attrs="{'invisible':[('partner_id','!=',False)]}"/>
130 <separator colspan="4" string="Notes"/>
131 <field name="description" nolabel="1" colspan="4"/>
133 <page string="Extra Info">
134 <group colspan="2" col="2">
135 <separator string="Categorization" colspan="2" col="2"/>
136 <field name="company_id"
137 groups="base.group_multi_company"
138 widget="selection" colspan="2" />
139 <field name="type_id" select="1" widget="selection"/>
140 <field name="channel_id" select="1" widget="selection"/>
141 <field name="referred"/>
142 <field name="state" groups="base.group_no_one"/>
144 <group colspan="2" col="2">
145 <separator string="Mailings" colspan="2" col="2"/>
146 <field name="opt_in" on_change="on_change_opt_in(opt_in)"/>
147 <field name="opt_out" on_change="on_change_opt_out(opt_out)"/>
149 <group colspan="2" col="2" groups="base.group_no_one">
150 <separator string="Statistics" colspan="2" col="2"/>
151 <field name="day_open"/>
152 <field name="day_close"/>
157 <div class="oe_form_bottom">
158 <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
164 <!-- CRM Lead Tree View -->
165 <record model="ir.ui.view" id="crm_case_tree_view_leads">
166 <field name="name">Leads</field>
167 <field name="model">crm.lead</field>
168 <field name="type">tree</field>
169 <field name="arch" type="xml">
170 <tree string="Leads" fonts="bold:needaction_pending==True" colors="blue:state=='pending';grey:state in ('cancel', 'done')">
171 <field name="needaction_pending" invisible="1"/>
172 <field name="date_deadline" invisible="1"/>
173 <field name="create_date" groups="base.group_no_one"/>
174 <field name="name" string="Subject"/>
175 <field name="contact_name"/>
176 <field name="country_id" invisible="context.get('invisible_country', True)" />
177 <field name="email_from"/>
178 <field name="phone"/>
179 <field name="stage_id"/>
180 <field name="categ_id" invisible="1"/>
181 <field name="section_id" invisible="context.get('invisible_section', True)" />
182 <field name="state" groups="base.group_no_one"/>
183 <field name="type_id" invisible="1"/>
184 <field name="referred" invisible="1"/>
185 <field name="channel_id" invisible="1"/>
186 <field name="subjects" invisible="1"/>
187 <button name="%(crm.action_crm_lead2opportunity_partner)d" string="Convert to Opportunity" type="action"
188 states="draft,open,pending" icon="gtk-go-forward"/>
189 <button name="case_escalate" string="Escalate" type="object"
190 states="draft,open,pending" icon="gtk-go-up"/>
191 <button name="case_cancel" string="Dead" type="object"
192 states="open,draft,pending" icon="gtk-cancel"/>
197 <!-- CRM Lead Calendar View -->
198 <record model="ir.ui.view" id="crm_case_calendar_view_leads">
199 <field name="name">CRM - Leads Calendar</field>
200 <field name="model">crm.lead</field>
201 <field name="type">calendar</field>
202 <field name="priority" eval="2"/>
203 <field name="arch" type="xml">
204 <calendar string="Leads Generation"
205 date_start="date_action" color="user_id">
206 <field name="name" />
207 <field name="partner_name" />
212 <!-- CRM Lead Kanban View -->
213 <record model="ir.ui.view" id="crm_case_kanban_view_leads">
214 <field name="name">CRM - Leads Kanban</field>
215 <field name="model">crm.lead</field>
216 <field name="type">kanban</field>
217 <field name="arch" type="xml">
218 <kanban default_group_by="stage_id">
219 <field name="state" groups="base.group_no_one"/>
220 <field name="color"/>
221 <field name="priority"/>
222 <field name="planned_revenue" sum="Expected Revenues"/>
223 <field name="user_email"/>
224 <field name="user_id"/>
225 <field name="partner_address_email"/>
227 <t t-name="lead_details">
228 <ul class="oe_kanban_tooltip">
229 <li t-if="record.phone.raw_value"><b>Phone:</b> <field name="phone"/></li>
230 <li><b>Probability:</b> <field name="probability"/>%%</li>
231 <li><b>Creation date:</b> <field name="create_date"/></li>
232 <li t-if="record.date_deadline.raw_value"><b>Date Deadline:</b> <field name="date_deadline"/></li>
235 <t t-name="kanban-box">
236 <div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.color.raw_value)} oe_kanban_card">
237 <a class="oe_kanban_menuaction oe_i">B</a>
238 <ul class="oe_kanban_menu">
239 <li><a type="edit" >Edit...</a></li>
240 <li><a type="delete">Delete</a></li>
241 <li><a name="%(mail.action_email_compose_message_wizard)d" type="action">Send New Email</a></li>
242 <li><a name="%(opportunity2phonecall_act)d" type="action">Log Call</a></li>
243 <li><a name="action_makeMeeting" type="object">Schedule Meeting</a></li>
244 <li><a name="%(crm.action_crm_add_note)d" context="{'model': 'crm.lead' }" type="action">Add Internal Note</a></li>
245 <li><ul class="oe_kanban_colorpicker" data-field="color"/></li>
247 <div class="oe_kanban_content">
249 <field name="partner_id"/>
250 <t t-if="record.planned_revenue.raw_value">
251 - <t t-esc="Math.round(record.planned_revenue.value)"/>
252 <field name="company_currency"/>
256 <b> <field name="partner_address_name"/> </b>
261 <div style="padding-left: 0.5em">
263 <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>
264 <span t-attf-class="#{red || ''}">
265 <field name="date_action"/>
267 <t t-if="record.date_action.raw_value"> : </t>
268 <field name="title_action"/>
271 <div class="oe_right">
272 <a t-if="record.priority.raw_value == 1" icon="star-on" type="object" name="set_normal_priority"/>
273 <a t-if="record.priority.raw_value != 1" icon="star-off" type="object" name="set_high_priority" style="opacity:0.7; filter:alpha(opacity=70);"/>
275 <t t-if="record.date_deadline.raw_value and record.date_deadline.raw_value lt (new Date())" t-set="red">oe_kaban_status_red</t>
276 <span t-attf-class="oe_kanban_status #{red}"> </span>
278 <img t-att-src="kanban_image('res.users', 'avatar', record.user_id.raw_value[0])" t-att-title="record.user_id.value" width="24" height="24" class="oe_kanban_avatar"/>
280 <div class="oe_kanban_footer_left">
283 <div class="oe_clear"></div>
286 <div class="oe_kanban_right">
287 <a name="case_mark_lost" string="Mark Lost" states="open,pending" type="object" icon="kanban-stop" />
288 <a name="case_pending" string="Pending" states="draft,open" type="object" icon="kanban-pause" />
289 <a name="case_open" string="Open" states="pending" type="object" icon="gtk-media-play" />
290 <a name="case_mark_won" string="Mark Won" states="open,pending" type="object" icon="kanban-apply" />
299 <!-- CRM Lead Search View -->
300 <record id="view_crm_case_leads_filter" model="ir.ui.view">
301 <field name="name">CRM - Leads Search</field>
302 <field name="model">crm.lead</field>
303 <field name="type">search</field>
304 <field name="arch" type="xml">
305 <search string="Search Leads">
306 <filter icon="terp-check" name="inbox" string="Inbox" domain="[('message_state','=','unread')]"/>
307 <filter icon="terp-check"
309 name="new" help="New Leads"
310 domain="[('state','=','draft')]"/>
311 <filter icon="terp-camera_test"
314 domain="[('state','=','open')]"/>
315 <filter icon="terp-gtk-media-pause"
318 domain="[('state','=','pending')]"/>
320 <separator orientation="vertical"/>
321 <filter icon="terp-go-today" string="Today"
322 domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')), ('create_date','>=', time.strftime('%%Y-%%m-%%d 00:00:00'))]"
323 help="Todays' Leads" />
324 <filter icon="terp-go-week" string="7 Days"
325 help="Leads creating during last 7 days"
326 domain="[('create_date','<', time.strftime('%%Y-%%m-%%d 23:59:59')),('create_date','>=',(datetime.date.today()-datetime.timedelta(days=7)).strftime('%%Y-%%m-%%d 00:00:00'))]"
328 <separator orientation="vertical"/>
329 <field name="name" string="Lead / Customer"
330 filter_domain="['|','|',('partner_name','ilike',self),('email_from','ilike',self),('name','ilike',self)]"/>
331 <field name="user_id">
332 <filter icon="terp-personal-"
333 domain="[('user_id','=', False)]"
334 help="Unassigned Leads" />
336 <field name="subjects"/>
337 <field name="section_id" widget="selection"
338 context="{'invisible_section': False}">
339 <filter icon="terp-personal+"
340 context="{'invisible_section': False}"
341 domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
342 help="My Sales Team(s)"/>
343 <filter icon="terp-personal+"
344 context="{'invisible_section': False}"
346 help="Show Sales Team"/>
348 <separator orientation="vertical"/>
349 <field name="country_id" context="{'invisible_country': False}">
350 <filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
353 <group expand="0" string="Group By...">
354 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}"/>
355 <filter string="Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
356 <filter string="Referrer" icon="terp-personal" domain="[]" context="{'group_by':'referred'}"/>
357 <separator orientation="vertical"/>
358 <filter string="Category" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}"/>
359 <filter string="Campaign" icon="terp-gtk-jump-to-rtl"
360 domain="[]" context="{'group_by':'type_id'}" />
361 <filter string="Channel" icon="terp-call-start"
362 domain="[]" context="{'group_by':'channel_id'}" />
363 <separator orientation="vertical"/>
364 <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}"/>
365 <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
366 <separator orientation="vertical" groups="base.group_no_one"/>
367 <filter string="Creation" help="Create date" icon="terp-go-month"
368 domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
379 <!-- Opportunities Form View -->
380 <record model="ir.ui.view" id="crm_case_form_view_oppor">
381 <field name="name">Opportunities</field>
382 <field name="model">crm.lead</field>
383 <field name="type">form</field>
384 <field name="priority">20</field>
385 <field name="arch" type="xml">
386 <form string="Opportunities" layout="manual">
387 <div class="oe_form_topbar oe_form_topbar_hifirst">
388 <button name="case_open" string="Open" type="object"
390 <button name="case_mark_won" string="Mark Won" type="object"
391 states="draft,open"/>
392 <button name="case_mark_lost" string="Mark Lost" type="object"
393 states="draft,open"/>
394 <button name="case_reset" string="Reset to Draft" type="object"
396 <button name="stage_next" string="Next" type="object"
397 states="open" context="{'stage_type': 'opportunity'}"/>
398 <button name="stage_previous" string="Previous" type="object"
399 states="open" context="{'stage_type': 'opportunity'}"/>
400 <button name="case_escalate" string="Escalate" type="object"
402 <div class="oe_right">
403 <field name="stage_id" nolabel="1" widget="statusbar"
404 on_change="onchange_stage_id(stage_id)"/>
406 <div class="oe_clear"/>
408 <sheet layout="auto">
409 <group colspan="4" col="2" width="auto">
410 <field name="name" required="1" nolabel="1" class="oe_form_title"/>
411 <div class="oe_text_right">
412 <button string="Schedule/Log Call"
413 name="%(opportunity2phonecall_act)d" icon="terp-call-start"
415 <button string="Schedule Meeting" icon="gtk-redo"
416 name="action_makeMeeting"
420 <group colspan="4" col="4" class="oe_form_group_label_border" style="margin-top: 20px;">
421 <field name="user_id"/>
422 <field name="planned_revenue"/>
424 <field name="date_action"/>
425 <field name="date_deadline"/>
427 <field name="title_action"/>
428 <field name="probability"/>
430 <field name="type" invisible="1"/>
432 <notebook colspan="4">
433 <page string="Opportunity">
434 <group col="4" colspan="2">
435 <separator colspan="4" string="Contacts"/>
436 <group colspan="2" col="3" class="oe_form_group_label_border">
437 <field width="80%%" name="partner_id" select="1"
438 on_change="onchange_partner_id(partner_id, email_from)" string="Customer"/>
439 <button name="%(action_crm_lead2partner)d"
440 icon="terp-partner" type="action"
442 attrs="{'invisible':[('partner_id','!=',False)]}"/>
443 <field name="phone" colspan="3"/>
444 <field width="80%%" name="email_from" string="Email"/>
445 <button string="Mail"
446 name="%(mail.action_email_compose_message_wizard)d"
447 context="{'mail':'new', 'model': 'crm.lead'}"
448 icon="terp-mail-message-new" type="action" />
451 <group col="2" colspan="2" class="oe_form_group_label_border">
452 <separator colspan="2" string="Category"/>
453 <field name="section_id" colspan="1" widget="selection"/>
454 <field name="categ_id" select="1"
455 string="Category" widget="selection"
456 domain="[('object_id.model', '=', 'crm.lead')]" />
457 <field name="state"/>
458 <field name="priority"/>
461 <separator colspan="4" string="Details"/>
462 <field name="description" nolabel="1" colspan="4"/>
465 <separator string="Contact" colspan="4"/>
466 <group colspan="4" col="4" class="oe_form_group_label_border">
467 <field name="partner_name" string="Customer Name" colspan="4"/>
469 <group colspan="2" col="2" class="oe_form_group_label_border">
470 <field domain="[('domain', '=', 'contact')]" name="title" widget="selection"/>
472 <field name="street"/>
474 <field name="country_id"/>
476 <group colspan="2" col="2" class="oe_form_group_label_border">
477 <field name="function" />
478 <field name="mobile"/>
479 <field name="street2"/>
481 <field name="state_id"/>
484 <group colspan="2" col="2" class="oe_form_group_label_border">
485 <separator string="Categorization" colspan="2"/>
486 <field name="type_id" widget="selection"/>
487 <field name="channel_id" widget="selection"/>
489 <group colspan="2" col="2" class="oe_form_group_label_border">
490 <separator string="Mailings" colspan="2"/>
491 <field name="opt_in" on_change="on_change_opt_in(opt_in)"/>
492 <field name="opt_out" on_change="on_change_opt_out(opt_out)"/>
495 <page string="Extra Info">
496 <group col="2" colspan="2" class="oe_form_group_label_border">
497 <separator string="Misc" colspan="2"/>
498 <field name="active"/>
499 <field name="day_open" groups="base.group_no_one"/>
500 <field name="day_close" groups="base.group_no_one"/>
501 <field name="referred"/>
503 <group col="2" colspan="2" class="oe_form_group_label_border">
504 <separator colspan="4" string="References"/>
511 <div class="oe_form_bottom">
512 <field name="message_ids_social" colspan="4" widget="ThreadView" nolabel="1"/>
518 <!-- Opportunities Tree View -->
519 <record model="ir.ui.view" id="crm_case_tree_view_oppor">
520 <field name="name">Opportunities Tree</field>
521 <field name="model">crm.lead</field>
522 <field name="type">tree</field>
523 <field name="arch" type="xml">
524 <tree string="Opportunities" fonts="bold:needaction_pending==True" colors="blue:state=='pending' and not(date_deadline and (date_deadline < current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline < current_date)">
525 <field name="needaction_pending" invisible="1"/>
526 <field name="date_deadline" invisible="1"/>
527 <field name="create_date" groups="base.group_no_one"/>
528 <field name="name" string="Opportunity"/>
529 <field name="partner_id" string="Customer"/>
530 <field name="country_id" invisible="context.get('invisible_country', True)" />
531 <field name="date_action"/>
532 <field name="title_action" />
533 <field name="channel_id" invisible="1"/>
534 <field name="type_id" invisible="1"/>
535 <field name="subjects" invisible="1"/>
536 <field name="stage_id"/>
537 <field name="planned_revenue" sum="Expected Revenues"/>
538 <field name="probability" widget="progressbar" avg="Avg. of Probability"/>
539 <field name="section_id" invisible="context.get('invisible_section', True)" />
540 <field name="user_id"/>
541 <field name="priority" invisible="1"/>
542 <field name="categ_id" invisible="1"/>
543 <field name="state" groups="base.group_no_one"/>
544 <button name="case_open" string="Open" type="object"
545 states="draft,pending" icon="gtk-go-forward"/>
546 <button name="case_mark_won" string="Won" type="object"
547 states="open,pending" icon="gtk-apply"/>
548 <button name="case_mark_lost" string="Lost" type="object"
549 states="open,pending" icon="gtk-cancel"/>
555 <!-- Opportunities Search View -->
556 <record id="view_crm_case_opportunities_filter" model="ir.ui.view">
557 <field name="name">CRM - Opportunities Search</field>
558 <field name="model">crm.lead</field>
559 <field name="type">search</field>
560 <field name="arch" type="xml">
561 <search string="Search Opportunities">
562 <filter icon="terp-check"
563 string="New" help="New Opportunities"
565 domain="[('state','=','draft')]"/>
566 <filter icon="terp-camera_test"
567 string="Open" help="Open Opportunities"
569 domain="[('state','=','open')]"/>
570 <filter icon="terp-gtk-media-pause"
571 string="Pending" help="Pending Opportunities"
573 domain="[('state','=','pending')]"/>
574 <separator orientation="vertical"/>
575 <field name="name" string="Opportunity / Customer"
576 filter_domain="['|','|','|',('partner_id','ilike',self),('partner_name','ilike',self),('email_from','ilike',self),('name', 'ilike', self)]"/>
577 <field name="user_id">
578 <filter icon="terp-personal-"
579 domain="[('user_id','=', False)]"
580 help="Unassigned Opportunities" />
582 <field name="section_id"
583 context="{'invisible_section': False, 'default_section_id': self}">
584 <filter icon="terp-personal+"
585 domain="['|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
586 context="{'invisible_section': False}"
587 help="My Sales Team(s)" />
588 <filter icon="terp-personal+"
589 context="{'invisible_section': False}"
591 help="Show Sales Team"/>
594 <group expand="0" string="Group By..." colspan="16">
595 <filter string="Salesperson" icon="terp-personal" domain="[]" context="{'group_by':'user_id'}" />
596 <filter string="Team" help="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
597 <filter string="Customer" help="Partner" icon="terp-personal+" domain="[]" context="{'group_by':'partner_id'}"/>
598 <separator orientation="vertical" />
599 <filter string="Stage" icon="terp-stage" domain="[]" context="{'group_by':'stage_id'}" />
600 <filter string="Priority" icon="terp-rating-rated" domain="[]" context="{'group_by':'priority'}" />
601 <filter string="Category" icon="terp-stock_symbol-selection" domain="[]" context="{'group_by':'categ_id'}" />
602 <filter string="Campaign" icon="terp-gtk-jump-to-rtl" domain="[]" context="{'group_by':'type_id'}"/>
603 <filter string="Channel" icon="terp-call-start" domain="[]" context="{'group_by':'channel_id'}" />
604 <filter string="Status" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
605 <separator orientation="vertical" />
606 <filter string="Creation" icon="terp-go-month" domain="[]" context="{'group_by':'create_date'}" groups="base.group_no_one"/>
607 <filter string="Exp.Closing" icon="terp-go-month" help="Expected Closing" domain="[]" context="{'group_by':'date_deadline'}" />
613 <!-- crm.lead Opportunities Graph View -->
614 <record model="ir.ui.view" id="crm_case_graph_view_opportunity">
615 <field name="name">CRM - Opportunity Graph</field>
616 <field name="model">crm.lead</field>
617 <field name="type">graph</field>
618 <field name="arch" type="xml">
619 <graph string="Opportunity by Categories" type="bar" orientation="horizontal">
620 <field name="categ_id"/>
621 <field name="planned_revenue" operator="+"/>
622 <field name="state" group="True"/>