[MOD]: Usability Improvment in view
[odoo/odoo.git] / addons / crm / crm_opportunity_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4         <!-- Opportunities Form View -->
5             <record model="ir.ui.view" id="crm_case_form_view_oppor">
6                 <field name="name">Opportunities</field>
7                 <field name="model">crm.lead</field>
8                 <field name="type">form</field>
9                 <field name="priority">10</field>
10                 <field name="arch" type="xml">
11                     <form string="Opportunities">
12                         <group colspan="4" col="7">
13                             <field name="name"  required="1" string="Opportunity"/>
14                             <label string="Stage:" align="1.0"/>
15                             <group colspan="1" col="4">
16                                 <field name="stage_id" nolabel="1"
17                                     on_change="onchange_stage_id(stage_id)"
18                                     domain="[('object_id.model', '=', 'crm.lead'), ('section_ids', '=', section_id)]"/>
19                                 <button name="stage_previous"
20                                     states="draft,open,pending" type="object"
21                                     icon="gtk-go-back" string="" />
22                                 <button name="stage_next" states="draft,open,pending"
23                                     type="object" icon="gtk-go-forward" string="" />
24                             </group>
25                             <field name="user_id"/>
26
27                             <button name="action_makeMeeting" type="object"
28                             string="Schedule Meeting" icon="gtk-redo" />
29
30                             <field name="planned_revenue"/>
31                             <field name="probability"/>
32                             <field name="date_deadline"/>
33                             <button string="Schedule/Log Call"
34                             name="%(opportunity2phonecall_act)d" icon="terp-call-start" type="action" groups="base.group_extended"/>
35                             <newline/>
36                             <field name="date_action"/>
37                             <field name="title_action"/>
38                             <field name="priority" string="Priority"/>
39                             <newline/>
40                             <field name="type" invisible="1"/>
41                         </group>
42                         <notebook colspan="4">
43                         <page string="Opportunity">
44                             <group col="4" colspan="2">
45                                 <separator colspan="4" string="Contacts"/>
46                                 <group colspan="2">
47                                     <field name="partner_id" select="1"
48                                         on_change="onchange_partner_id(partner_id, email_from)" string="Customer"
49                                         colspan="2" />
50                                     <button name="%(action_crm_lead2partner)d"
51                                         icon="terp-partner" type="action"
52                                         string="Create"
53                                         attrs="{'invisible':[('partner_id','!=',False)]}"/>
54                                 </group>
55                                 <field name="partner_address_id"
56                                     string="Contact"
57                                     on_change="onchange_partner_address_id(partner_address_id, email_from)"
58                                     colspan="1" />
59                                 <field name="email_from" string="Email" />
60                                 <field name="phone"/>
61                             </group>
62                             <group col="2" colspan="2">
63                                 <separator colspan="2" string="Categorization"/>
64                                 <field name="section_id" colspan="1" widget="selection"/>
65                                 <field name="categ_id" select="1"
66                                 string="Category" widget="selection"
67                                 domain="[('object_id.model', '=', 'crm.lead')]" />
68                             </group>
69
70                             <separator colspan="4" string="Details"/>
71                             <field name="description" nolabel="1" colspan="4"/>
72
73                             <separator colspan="4"/>
74                             <group col="10" colspan="4">
75                                 <field name="state"/>
76                                 <button name="case_cancel" string="Cancel"
77                                     states="draft" type="object"
78                                     icon="gtk-cancel" />
79                                 <button name="case_mark_lost" string="Mark Lost"
80                                     states="open,pending" type="object"
81                                     icon="gtk-cancel" />
82                                 <button name="case_reset" string="Reset to Draft"
83                                     states="done,cancel" type="object"
84                                     icon="gtk-convert" />
85                                 <button name="case_open" string="Open"
86                                     states="draft,pending" type="object"
87                                     icon="gtk-go-forward" />
88                                 <button name="case_pending" string="Pending"
89                                     states="draft,open" type="object"
90                                     icon="gtk-media-pause" />
91                                 <button name="case_escalate" string="Escalate"
92                                     states="open,pending" type="object"
93                                     groups="base.group_extended"
94                                     icon="gtk-go-up" />
95                                 <button name="case_close" string="Mark Won"
96                                     states="open,pending" type="object"
97                                     icon="gtk-apply" />
98                             </group>
99                         </page>
100                         <page string="Lead">
101                             <group colspan="2" col="4">
102                                 <separator string="Contact" colspan="4" col="4"/>
103                                 <field name="partner_name" string="Customer Name" colspan="4"/>
104                                 <newline/>
105                                 <field domain="[('domain', '=', 'contact')]" name="title" widget="selection"/>
106                                 <field name="function" />
107                                 <field name="street" colspan="4"/>
108                                 <field name="street2" colspan="4"/>
109                                 <field name="zip"/>
110                                 <field name="city"/>
111                                 <field name="country_id"/>
112                                 <field name="state_id"/>
113                             </group>
114                             <group colspan="2" col="2">
115                                 <separator string="Communication" colspan="2"/>
116                                 <field name="fax"/>
117                                 <field name="mobile"/>
118                             </group>
119                             <group colspan="2" col="2">
120                                 <separator string="Categorization" colspan="2"/>
121                                 <field name="type_id" widget="selection" groups="base.group_extended"/>
122                                 <field name="channel_id" widget="selection"/>
123                             </group>
124                             <group colspan="2" col="2">
125                                 <separator string="Mailings" colspan="2"/>
126                                 <field name="optin"/>
127                                 <field name="optout"/>
128                             </group>
129                         </page>
130
131                         <page string="History" groups="base.group_extended">
132                             <group colspan="4">
133                                 <field colspan="4" name="email_cc" string="Global CC" widget="char" size="512"/>
134                             </group>
135                             <field name="message_ids" colspan="4" nolabel="1" mode="tree,form">
136                                 <tree string="History">
137                                     <field name="display_text" string="History Information"/>
138                                     <field name="history" invisible="1"/>
139                                     <button
140                                         string="Reply" attrs="{'invisible': [('history', '!=', True)]}"
141                                         name="%(crm.action_crm_send_mail)d"
142                                         context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
143                                         icon="terp-mail-replied" type="action" />
144                                 </tree>
145                                 <form string="History">
146                                     <group col="4" colspan="4">
147                                         <field name="email_from"/>
148                                         <field name="date"/>
149                                         <field name="email_to" size="512"/>
150                                         <field name="email_cc" size="512"/>
151                                         <field name="name" colspan="4"/>
152                                         <field name="history" invisible="1"/>
153                                     </group>
154                                     <notebook colspan="4">
155                                         <page string="Details">
156                                             <group attrs="{'invisible': [('history', '!=', True)]}">
157                                                 <field name="description" colspan="4" nolabel="1" height="250"/>
158                                                 <button colspan="4"
159                                                     string="Reply"
160                                                     name="%(crm.action_crm_send_mail)d"
161                                                     context="{'mail':'reply', 'model': 'crm.lead', 'include_original' : True}"
162                                                     icon="terp-mail-replied" type="action" />
163                                             </group>
164                                             <group attrs="{'invisible': [('history', '=', True)]}">
165                                                 <field name="display_text" colspan="4" nolabel="1"  height="250"/>
166                                             </group>
167                                         </page>
168                                         <page string="Attachments">
169                                             <field name="attachment_ids" colspan="4" readonly="1" nolabel="1"/>
170                                         </page>
171                                     </notebook>
172                                 </form>
173                             </field>
174                             <button string="Add Internal Note"
175                                 name="%(crm.action_crm_add_note)d"
176                                 context="{'model': 'crm.lead' }"
177                                 icon="terp-document-new" type="action" />
178                             <button string="Send New Email"
179                                 name="%(crm.action_crm_send_mail)d"
180                                 context="{'mail':'new', 'model': 'crm.lead'}"
181                                 icon="terp-mail-message-new" type="action" />
182                         </page>
183                         <page string="Extra Info" groups="base.group_extended">
184                             <group col="2" colspan="2">
185                                 <separator string="Dates" colspan="2"/>
186                                 <field name="create_date"/>
187                                 <field name="write_date"/>
188                                 <field name="date_closed"/>
189                                 <field name="date_open"/>
190                             </group>
191                             <group col="2" colspan="2">
192                                 <separator string="Misc" colspan="2"/>
193                                 <field name="active"/>
194                                 <field name="day_open"/>
195                                 <field name="day_close"/>
196                                 <field name="referred"/>
197                             </group>
198                             <separator colspan="4" string="References"/>
199                             <field name="ref"/>
200                             <field name="ref2"/>
201                         </page>
202                         </notebook>
203                     </form>
204                 </field>
205             </record>
206
207         <!-- Opportunities Tree View -->
208
209             <record model="ir.ui.view" id="crm_case_tree_view_oppor">
210                 <field name="name">Opportunities Tree</field>
211                 <field name="model">crm.lead</field>
212                 <field name="type">tree</field>
213                 <field name="arch" type="xml">
214                     <tree string="Opportunities" colors="blue:state=='pending' and not(date_deadline and (date_deadline &lt; current_date));gray:state in ('cancel', 'done');red:date_deadline and (date_deadline &lt; current_date)">
215                         <field name="date_deadline" invisible="1"/>
216                         <field name="create_date"/>
217                         <field name="name" string="Opportunity"/>
218                         <field name="partner_id" string="Customer"/>
219                         <field name="country_id" invisible="context.get('invisible_country', True)" />
220                         <field name="date_action"/>
221                         <field name="title_action" />
222                         <field name="stage_id"/>
223                         <field name="channel_id" invisible="1"/>
224                         <field name="type_id" invisible="1"/>
225                         <button name="stage_previous" string="Previous Stage"
226                             states="open,pending" type="object" icon="gtk-go-back" />
227                         <button name="stage_next" string="Next Stage"
228                             states="open,pending" type="object"
229                             icon="gtk-go-forward" />
230                         <field name="planned_revenue" sum="Expected Revenues"/>
231                         <field name="probability" widget="progressbar" avg="Avg. of Probability"/>
232                         <field name="section_id"
233                             invisible="context.get('invisible_section', True)" />
234                         <field name="user_id"/>
235                         <field name="priority" invisible="1"/>
236                         <field name="categ_id" invisible="1"/>
237                         <field name="state"/>
238                         <button name="case_open" string="Open"
239                             states="draft,pending" type="object"
240                             icon="gtk-go-forward" />
241                         <button name="case_pending" string="Pending"
242                             states="open,draft" type="object"
243                             icon="gtk-media-pause" />
244                         <button name="case_close" string="Won"
245                             states="open,draft,pending" type="object"
246                             icon="gtk-apply" />
247                     </tree>
248                 </field>
249             </record>
250
251         <!-- Opportunities Graph View -->
252
253             <record model="ir.ui.view" id="crm_case_graph_view_opportunity">
254                 <field name="name">CRM - Opportunity Graph</field>
255                 <field name="model">crm.lead</field>
256                 <field name="type">graph</field>
257                 <field name="arch" type="xml">
258                     <graph string="Opportunity by Categories" type="bar" orientation="horizontal">
259                         <field name="categ_id"/>
260                         <field name="planned_revenue" operator="+"/>
261                         <field name="state" group="True"/>
262                     </graph>
263                 </field>
264             </record>
265
266         <!-- Opportunities Search View -->
267
268             <record id="view_crm_case_opportunities_filter" model="ir.ui.view">
269                 <field name="name">CRM - Opportunities Search</field>
270                 <field name="model">crm.lead</field>
271                 <field name="type">search</field>
272                 <field name="arch" type="xml">
273                     <search string="Search Opportunities">
274                         <filter icon="terp-check"
275                             string="Current"  help="Draft and Open Opportunities"
276                             name="current"
277                             domain="[('state','in',('draft','open'))]"/>
278                         <filter icon="terp-camera_test"
279                             string="Open"  help="Open Opportunities"
280                             domain="[('state','=','open')]"/>
281                         <filter icon="terp-gtk-media-pause"
282                             string="Pending"  help="Pending Opportunities"
283                             domain="[('state','=','pending')]"/>
284                         <separator orientation="vertical"/>
285                         <field name="name" string="Opportunity"/>
286                         <field name="partner_id" string="Customer"/>
287                         <field name="user_id">
288                             <filter icon="terp-personal-"
289                                 domain="[('user_id','=', False)]"
290                                 help="Unassigned Opportunities" />
291                         </field>
292                         <field name="section_id"
293                             default="context.get('section_id', False)"
294                             context="{'invisible_section': False}"
295                             widget="selection">
296                             <filter icon="terp-personal+" groups="base.group_extended"
297                                 domain="['|', ('section_id', '=', context.get('section_id')), '|', ('section_id.user_id','=',uid), ('section_id.member_ids', 'in', [uid])]"
298                                 context="{'invisible_section': False}"
299                                 help="My Sales Team(s)" />
300                             <filter icon="terp-personal+" groups="base.group_extended"
301                                 context="{'invisible_section': False}"
302                                 domain="[]"
303                                 help="Show Sales Team"/>
304                         </field>
305                         <newline/>
306                         <group  expand="0" string="Extended Filters..." groups="base.group_extended">
307                               <field name="stage_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
308                               <field name="categ_id" widget="selection" domain="[('object_id.model', '=', 'crm.lead')]"/>
309                               <separator orientation="vertical"/>
310                               <field name="country_id" context="{'invisible_country': False}">
311                                   <filter icon="terp-personal+" context="{'invisible_country': False}" help="Show countries"/>
312                               </field>
313                               <separator orientation="vertical"/>
314                               <field name="email_from"/>
315                               <separator orientation="vertical"/>
316                               <field name="company_id" widget="selection" groups="base.group_multi_company"/>
317                               <newline/>
318                               <field name="create_date" string="Creation Date"/>
319                               <field name="date_closed"/>
320                         </group>
321                         <newline/>
322                         <group expand="0" string="Group By..." colspan="16">
323                             <filter string="Salesman" icon="terp-personal"
324                                 domain="[]" context="{'group_by':'user_id'}" />
325                             <filter string="Team" help="Sales Team" icon="terp-personal+" domain="[]" context="{'group_by':'section_id'}"/>
326                             <separator orientation="vertical" />
327                             <filter string="Stage" icon="terp-stage" domain="[]"
328                                 context="{'group_by':'stage_id'}" />
329                             <filter string="Priority" icon="terp-rating-rated" domain="[]"
330                                 context="{'group_by':'priority'}" />
331                             <filter string="Category" icon="terp-stock_symbol-selection"
332                                 domain="[]" context="{'group_by':'categ_id'}" />
333                             <filter string="Campaign" icon="terp-gtk-jump-to-rtl"
334                                 domain="[]" context="{'group_by':'type_id'}" groups="base.group_extended"/>
335                             <filter string="Channel" icon="terp-call-start"
336                                 domain="[]" context="{'group_by':'channel_id'}" />
337                             <filter string="State" icon="terp-stock_effects-object-colorize" domain="[]" context="{'group_by':'state'}"/>
338                             <separator orientation="vertical" />
339                             <filter string="Creation" icon="terp-go-month"
340                                 domain="[]" context="{'group_by':'create_date'}" />
341                             <filter string="Exp.Closing"
342                                 icon="terp-go-month"
343                                 help="Expected Closing" domain="[]"
344                                 context="{'group_by':'date_deadline'}" />
345                         </group>
346                     </search>
347                 </field>
348             </record>
349
350
351         <!-- Opportunities Graph View -->
352
353             <record model="ir.ui.view" id="crm_case_graph_view_opportunity">
354                 <field name="name">CRM - Opportunity Graph</field>
355                 <field name="model">crm.lead</field>
356                 <field name="type">graph</field>
357                 <field name="arch" type="xml">
358                     <graph string="Opportunity by Categories" type="bar" orientation="horizontal">
359                         <field name="categ_id"/>
360                         <field name="planned_revenue" operator="+"/>
361                         <field name="state" group="True"/>
362                     </graph>
363                 </field>
364             </record>
365
366 </data>
367 </openerp>