[FIX] Autofocus on create mode
[odoo/odoo.git] / addons / marketing_campaign / marketing_campaign_view.xml
1 <?xml version="1.0"?>
2 <openerp>
3     <data>
4
5     <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/>
6
7     <!-- Marketing Campaign -->
8     <act_window name="All Segments"
9         res_model="marketing.campaign.segment"
10         src_model="marketing.campaign"
11         view_type="form"
12         view_mode="tree,form"
13         id="act_marketing_campaing_segment_opened"
14         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
15
16     <!-- Campaign Followups -->
17     <act_window
18         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
19         id="act_marketing_campaing_followup"
20         name="Campaign Follow-up" res_model="marketing.campaign.workitem"
21         src_model="marketing.campaign" view_mode="tree,form"
22         view_type="form"/>
23
24     <record model="ir.ui.view" id="view_marketing_campaign_form">
25         <field name="name">marketing.campaign.form</field>
26         <field name="model">marketing.campaign</field>
27         <field name="type">form</field>
28         <field name="arch" type="xml">
29             <form version="7.0">
30             <header>
31                 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
32                 <button name="state_done_set" string="Done" states="running" class="oe_highlight"/>
33                 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
34                 <button name="state_cancel_set" string="Cancel" states="running"/>
35                 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
36             </header>
37             <sheet string="Campaign">
38                 <div class="oe_right oe_button_box" name="button_box">
39                         <button type="action"
40                         name="%(act_marketing_campaing_followup)d"
41                         string="Follow-Up"/>
42                         <button type="action"
43                         name="%(act_marketing_campaing_segment_opened)d"
44                         string="Segments"/>
45                 </div>
46                 <div class="oe_title">
47                     <label for="name" class="oe_edit_only"/>
48                     <h1><field name="name" class="oe_inline"/></h1>
49                 </div>
50                 <group>
51                     <group>
52                         <field name="mode"/>
53                         <field name="fixed_cost"/>
54                     </group>
55                     <group>
56                         <field name="object_id"/>
57                         <field name="partner_field_id"/>
58                         <field name="unique_field_id"/>
59                     </group>
60                 </group>
61                 <separator string="Activities"/>
62                 <field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}"/>
63             </sheet>
64             </form>
65         </field>
66     </record>
67
68     <record model="ir.ui.view" id="view_marketing_campaign_tree">
69         <field name="name">marketing.campaign.tree</field>
70         <field name="model">marketing.campaign</field>
71         <field name="type">tree</field>
72         <field name="arch" type="xml">
73             <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Campaigns">
74                 <field name="name"/>
75                 <field name="object_id"/>
76                 <field name="mode"/>
77                 <field name="fixed_cost"/>
78                 <field name="state"/>
79             </tree>
80         </field>
81     </record>
82
83     <record id="view_marketing_campaign_diagram" model="ir.ui.view">
84         <field name="name">marketing.campaign.diagram</field>
85         <field name="model">marketing.campaign</field>
86         <field name="type">diagram</field>
87         <field name="arch" type="xml">
88             <diagram string="Campaign Editor">
89                 <node object="marketing.campaign.activity" shape="rectangle:type=='subcampaign'" bgcolor="gray:start==True">
90                     <field name="name"/>
91                     <field name="type"/>
92                     <field name="start" invisible="1"/>
93                     <field name="condition" widget="char"/>
94                 </node>
95                 <arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id" label="['name']">
96                     <field name="activity_from_id"/>
97                     <field name="activity_to_id"/>
98                     <field name="interval_nbr"/>
99                     <field name="interval_type"/>
100                 </arrow>
101             </diagram>
102         </field>
103     </record>
104
105     <record id="view_marketing_campaign_search" model="ir.ui.view">
106         <field name="name">marketing.campaign.search</field>
107         <field name="model">marketing.campaign</field>
108         <field name="type">search</field>
109         <field name="arch" type="xml">
110             <search string="Campaigns">
111                 <field name="name" string="Campaign"/>
112                 <filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]"/>
113                 <filter icon="terp-check" string="Running" domain="[('state','=','running')]"/>
114                 <separator/>
115                 <filter icon="terp-gtk-jump-to-rtl" string="Test Mode" name="test" domain="[('mode','=','test')]"/>
116                 <filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
117                 <field name="object_id" string="Resource"/>
118                 <group expand="0" string="Group By...">
119                     <filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
120                     <filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
121                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
122                 </group>
123             </search>
124         </field>
125     </record>
126
127     <record model="ir.actions.act_window" id="action_marketing_campaign_form">
128         <field name="name">Campaigns</field>
129         <field name="type">ir.actions.act_window</field>
130         <field name="res_model">marketing.campaign</field>
131         <field name="view_type">form</field>
132         <field name="view_mode">tree,form,diagram</field>
133         <field name="view_id" ref="view_marketing_campaign_tree"/>
134         <field name="context">{'group_by': []}</field>
135         <field name="search_view_id" ref="view_marketing_campaign_search"/>
136         <field name="help">A marketing campaign is an event or activity that will help you manage and reach your partners with specific messages. A campaign can have many activities that will be triggered from a specific situation. One action could be sending an email template that has previously been created in the system.</field>
137     </record>
138
139     <menuitem name="Campaigns" id="menu_marketing_campaign" parent="base.marketing_menu"/>
140     <menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30"/>
141
142     <!-- Marketing Segments -->
143     <record model="ir.ui.view" id="view_marketing_campaign_segment_form">
144         <field name="name">marketing.campaign.segment.form</field>
145         <field name="model">marketing.campaign.segment</field>
146         <field name="type">form</field>
147         <field name="arch" type="xml">
148             <form version="7.0">
149             <header>
150                 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
151                 <button name="state_done_set" string="Close" states="running" class="oe_highlight"/>
152                 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
153                 <button name="state_cancel_set" string="Cancel" states="running"/>
154                 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
155             </header>
156             <sheet string="Segments" >
157                 <group>
158                     <group>
159                         <field name="name"/>
160                         <field name="campaign_id" on_change="onchange_campaign_id(campaign_id)"/>
161                         <field name="object_id" invisible="1"/>
162                         <field name="sync_mode" required="True"/>
163                        <label for="sync_last_date"/>
164                        <div>
165                            <field name="sync_last_date" class="oe_inline"/>
166                            <button string="Synchronize Manually" states="running" name="synchroniz" type="object"/>
167                        </div>
168                        <field name="date_next_sync"/>
169                     </group>
170                     <group>
171                         <field name="ir_filter_id"/>
172                         <field name="date_run" readonly="1"/>
173                         <field name="date_done" readonly="1"/>
174                     </group>
175                 </group>
176             </sheet>
177             </form>
178         </field>
179     </record>
180
181     <record model="ir.ui.view" id="view_marketing_campaign_segment_tree">
182         <field name="name">marketing.campaign.segment.tree</field>
183         <field name="model">marketing.campaign.segment</field>
184         <field name="type">tree</field>
185         <field name="arch" type="xml">
186             <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Segments">
187                 <field name="name"/>
188                 <field name="campaign_id"/>
189                 <field name="date_run"/>
190                 <field name="sync_last_date"/>
191                 <field name="state"/>
192             </tree>
193         </field>
194     </record>
195
196     <record id="view_marketing_campaign_segment_search" model="ir.ui.view">
197         <field name="name">marketing.campaign.segment.search</field>
198         <field name="model">marketing.campaign.segment</field>
199         <field name="type">search</field>
200         <field name="arch" type="xml">
201             <search string="Segments">
202                 <field name="name" string="Segment"/>
203                 <field name="date_run"/>
204                 <filter icon="terp-check" string="Running" name="running" domain="[('state','=','running')]"/>
205                 <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/>
206                 <separator/>
207                 <filter icon="terp-gtk-jump-to-ltr" string="Newly Created" help="Sync mode: only records created after last sync" domain="[('sync_mode','=','create_date')]"/>
208                 <filter icon="terp-stock_effects-object-colorize" string="Newly Modified" help="Sync mode: only records updated after last sync" domain="[('sync_mode','=','write_date')]"/>
209                 <filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
210                 <field name="campaign_id"/>
211                 <field name="object_id"/>
212                 <group expand="0" string="Group By...">
213                     <filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
214                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
215                     <filter string="Launch Date" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
216                 </group>
217             </search>
218         </field>
219     </record>
220
221     <record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
222         <field name="name">Segments</field>
223         <field name="type">ir.actions.act_window</field>
224         <field name="res_model">marketing.campaign.segment</field>
225         <field name="view_type">form</field>
226         <field name="view_mode">tree,form</field>
227         <field name="view_id" ref="view_marketing_campaign_segment_tree"/>
228         <field name="search_view_id" ref="view_marketing_campaign_segment_search"/>
229         <field name="context">{'group_by': []}</field>
230     </record>
231
232     <menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20"/>
233
234     <!--
235         Marketing Activities
236         These views are not intended to be used outside the campaign context.
237     -->
238     <record model="ir.ui.view" id="view_marketing_campaign_activity_form">
239         <field name="name">marketing.campaign.activity.form</field>
240         <field name="model">marketing.campaign.activity</field>
241         <field name="type">form</field>
242         <field name="arch" type="xml">
243             <form string="Activities" version="7.0">
244                 <group>
245                     <group>
246                         <field name="name"/>
247                         <field name="signal" groups="base.group_no_one"/>
248                         <field name="start"/>
249                         <field name="object_id" invisible="1"/>
250                         <field name="campaign_id" invisible="1"/>
251                     </group>
252                     <group>
253                         <field name="variable_cost"/>
254                         <field name="revenue"/>
255                     </group>
256                 </group>
257                 <group >
258                     <group>
259                         <field name="condition" widget="char"/>
260                         <field name="keep_if_condition_not_met"/>
261                     </group>
262                     <group>
263                         <field name="type"/>
264                         <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}"
265                            context="{'default_model_id':object_id}"/>
266                         <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/>
267                         <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/>
268                         <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/>
269                     </group>
270                 </group>
271                 <separator string="Previous Activities"/>
272                 <field name="from_ids" mode="tree" context="{'default_activity_to_id': active_id}">
273                     <tree string="Incoming Transitions" editable="bottom">
274                         <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
275                         <field name='trigger'/>
276                         <field name="interval_nbr"/>
277                         <field name="interval_type"/>
278                     </tree>
279                     <form string="Incoming Transitions" version="7.0">
280                         <group col="4">
281                             <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
282                             <field name='trigger'/>
283                             <field name="interval_nbr"/>
284                             <field name="interval_type"/>
285                         </group>
286                     </form>
287                 </field>
288                 <separator string="Next Activities"/>
289                 <field name="to_ids" mode="tree" context="{'default_activity_from_id': active_id}">
290                     <tree string="Outgoing Transitions" editable="bottom">
291                         <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
292                         <field name='trigger'/>
293                         <field name="interval_nbr"/>
294                         <field name="interval_type"/>
295                     </tree>
296                     <form string="Outgoing Transitions" version="7.0">
297                         <group col="4">
298                             <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
299                             <field name='trigger'/>
300                             <field name="interval_nbr"/>
301                             <field name="interval_type"/>
302                         </group>
303                     </form>
304                 </field>
305             </form>
306         </field>
307     </record>
308
309     <record model="ir.ui.view" id="view_marketing_campaign_activity_tree">
310         <field name="name">marketing.campaign.activity.tree</field>
311         <field name="model">marketing.campaign.activity</field>
312         <field name="type">tree</field>
313         <field name="arch" type="xml">
314             <tree string="Activities">
315                 <field name="name"/>
316                 <field name="condition"/>
317                 <field name="type"/>
318                 <field name="start"/>
319             </tree>
320         </field>
321     </record>
322
323
324     <!-- Marketing Workitems -->
325     <record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
326         <field name="name">marketing.campaign.workitem.tree</field>
327         <field name="model">marketing.campaign.workitem</field>
328         <field name="type">tree</field>
329         <field name="arch" type="xml">
330             <tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities">
331                 <field name="campaign_id"/>
332                 <field name="segment_id"/>
333                 <field name="activity_id"/>
334                 <field name="object_id" invisible="1"/>
335                 <field name="res_id" invisible="1"/>
336                 <field name="res_name"/>
337                 <field name="partner_id"/>
338                 <field name="date"/>
339                 <field name="state"/>
340                 <button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
341                 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
342                 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
343             </tree>
344         </field>
345     </record>
346
347     <record model="ir.ui.view" id="view_marketing_campaign_workitem_form">
348         <field name="name">marketing.campaign.workitem.form</field>
349         <field name="model">marketing.campaign.workitem</field>
350         <field name="type">form</field>
351         <field name="arch" type="xml">
352             <form string="Marketing Campaign Activities" version="7.0">
353             <header>
354                 <button string="Process" states="todo" name="process" type="object"/>
355                 <button string="Reset" states="exception,cancelled" name="button_draft" type="object"/>
356                 <button string="Cancel" states="todo,exception" name="button_cancel" type="object"/>
357                 <field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
358                 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
359             </header>
360             <sheet>
361                 <group>
362                     <group>
363                         <field name="campaign_id"/>
364                         <field name="segment_id"/>
365                         <field name="activity_id" context="{'segment_id':segment_id}"/>
366                         <field name="date"/>
367                     </group>
368                     <group>
369                         <field name="object_id" readonly="True"/>
370                         <field name="res_name"/>
371                         <field name="res_id"/>
372                         <field name="partner_id"/>
373                     </group>
374                 </group>
375                 <group attrs="{'invisible':[('state','!=','exception')]}" string="Error Message">
376                     <field name="error_msg" nolabel="1" colspan="2"/>
377                 </group>
378             </sheet>
379             </form>
380         </field>
381     </record>
382
383     <record id="view_marketing_campaign_workitem_search" model="ir.ui.view">
384         <field name="name">marketing.campaign.workitem.search</field>
385         <field name="model">marketing.campaign.workitem</field>
386         <field name="type">search</field>
387         <field name="arch" type="xml">
388             <search string="Marketing Campaign Activities">
389                 <field name="res_name" string="Marketing Campaign Activity"/>
390                 <field name="date"/>
391                 <filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','todo')]"/>
392                 <filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/>
393                 <field name="campaign_id"/>
394                 <field name="segment_id"/>
395                 <field name="object_id"/>
396                 <field name="partner_id"/>
397                 <field name="res_id"/>
398                 <group expand="0" string="Group By...">
399                     <filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
400                     <filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
401                     <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
402                     <filter string="Resource" name="resource" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
403                     <filter string="Resource ID" name="res_id" icon="terp-accessories-archiver" context="{'group_by':'res_id'}"/>
404                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
405                     <filter string="Execution Date" name="Date" icon="terp-go-month" context="{'group_by':'date'}"/>
406                 </group>
407             </search>
408         </field>
409     </record>
410
411     <record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
412         <field name="name">Campaign Follow-up</field>
413         <field name="type">ir.actions.act_window</field>
414         <field name="res_model">marketing.campaign.workitem</field>
415         <field name="view_type">form</field>
416         <field name="view_mode">tree,form</field>
417         <field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
418         <field name="search_view_id" ref="view_marketing_campaign_workitem_search"/>
419         <field name="context">{'group_by': []}</field>
420     </record>
421
422     <menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing_campaign" action="action_marketing_campaign_workitem" sequence="10"/>
423
424     <act_window name="All Segments"
425         res_model="marketing.campaign.segment"
426         src_model="marketing.campaign"
427         view_type="form"
428         view_mode="tree,form"
429         id="act_marketing_campaing_segment_opened"
430         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
431
432     <!-- Campaign Follow-ups -->
433     <act_window
434         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
435         id="act_marketing_campaing_followup"
436         name="Campaign Follow-up" res_model="marketing.campaign.workitem"
437         src_model="marketing.campaign" view_mode="tree,form"
438         view_type="form"/>
439
440     <!-- Campaign Statistics -->
441     <act_window
442         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
443         id="act_marketing_campaing_stat"
444         name="Campaign Statistics" res_model="campaign.analysis"
445         src_model="marketing.campaign" view_mode="tree,form"
446         view_type="form"/>
447
448     </data>
449 </openerp>