[IMP] remove a bunch of wtf comments in XML (horrifying things like === comment ...
[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                 <separator orientation="vertical"/>
113                 <filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]"/>
114                 <filter icon="terp-check" string="Running" domain="[('state','=','running')]"/>
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                 <separator orientation="vertical"/>
118                 <field name="object_id" string="Resource"/>
119                 <newline/>
120                 <group expand="0" string="Group By...">
121                     <filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
122                     <separator orientation="vertical"/>
123                     <filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
124                     <separator orientation="vertical"/>
125                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
126                 </group>
127             </search>
128         </field>
129     </record>
130
131     <record model="ir.actions.act_window" id="action_marketing_campaign_form">
132         <field name="name">Campaigns</field>
133         <field name="type">ir.actions.act_window</field>
134         <field name="res_model">marketing.campaign</field>
135         <field name="view_type">form</field>
136         <field name="view_mode">tree,form,diagram</field>
137         <field name="view_id" ref="view_marketing_campaign_tree"/>
138         <field name="context">{'group_by': []}</field>
139         <field name="search_view_id" ref="view_marketing_campaign_search"/>
140         <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>
141     </record>
142
143     <menuitem name="Campaigns" id="menu_marketing_campaign" parent="base.marketing_menu"/>
144     <menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30"/>
145
146     <!-- Marketing Segments -->
147     <record model="ir.ui.view" id="view_marketing_campaign_segment_form">
148         <field name="name">marketing.campaign.segment.form</field>
149         <field name="model">marketing.campaign.segment</field>
150         <field name="type">form</field>
151         <field name="arch" type="xml">
152             <form version="7.0">
153             <header>
154                 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
155                 <button name="state_done_set" string="Close" states="running" class="oe_highlight"/>
156                 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
157                 <button name="state_cancel_set" string="Cancel" states="running"/>
158                 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
159             </header>
160             <sheet string="Segments" >
161                 <group>
162                     <group>
163                         <field name="name"/>
164                         <field name="campaign_id" on_change="onchange_campaign_id(campaign_id)"/>
165                         <field name="object_id" invisible="1"/>
166                         <field name="sync_mode" required="True"/>
167                        <label for="sync_last_date"/>
168                        <div>
169                            <field name="sync_last_date" class="oe_inline"/>
170                            <button string="Synchronize Manually" states="running" name="synchroniz" type="object"/>
171                        </div>
172                        <field name="date_next_sync"/>
173                     </group>
174                     <group>
175                         <field name="ir_filter_id"/>
176                         <field name="date_run" readonly="1"/>
177                         <field name="date_done" readonly="1"/>
178                     </group>
179                 </group>
180             </sheet>
181             </form>
182         </field>
183     </record>
184
185     <record model="ir.ui.view" id="view_marketing_campaign_segment_tree">
186         <field name="name">marketing.campaign.segment.tree</field>
187         <field name="model">marketing.campaign.segment</field>
188         <field name="type">tree</field>
189         <field name="arch" type="xml">
190             <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Segments">
191                 <field name="name"/>
192                 <field name="campaign_id"/>
193                 <field name="date_run"/>
194                 <field name="sync_last_date"/>
195                 <field name="state"/>
196             </tree>
197         </field>
198     </record>
199
200     <record id="view_marketing_campaign_segment_search" model="ir.ui.view">
201         <field name="name">marketing.campaign.segment.search</field>
202         <field name="model">marketing.campaign.segment</field>
203         <field name="type">search</field>
204         <field name="arch" type="xml">
205             <search string="Segments">
206                 <field name="name" string="Segment"/>
207                 <separator orientation="vertical"/>
208                 <field name="date_run"/>
209                 <separator orientation="vertical"/>
210                 <filter icon="terp-check" string="Running" name="running" domain="[('state','=','running')]"/>
211                 <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/>
212                 <filter icon="terp-gtk-jump-to-ltr" string="Newly Created" help="Sync mode: only records created after last sync" domain="[('sync_mode','=','create_date')]"/>
213                 <filter icon="terp-stock_effects-object-colorize" string="Newly Modified" help="Sync mode: only records updated after last sync" domain="[('sync_mode','=','write_date')]"/>
214                 <filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
215                 <separator orientation="vertical"/>
216                 <field name="campaign_id"/>
217                 <field name="object_id"/>
218                 <newline/>
219                 <group expand="0" string="Group By...">
220                     <filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
221                     <separator orientation="vertical"/>
222                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
223                     <separator orientation="vertical"/>
224                     <filter string="Launch Date" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
225                 </group>
226             </search>
227         </field>
228     </record>
229
230     <record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
231         <field name="name">Segments</field>
232         <field name="type">ir.actions.act_window</field>
233         <field name="res_model">marketing.campaign.segment</field>
234         <field name="view_type">form</field>
235         <field name="view_mode">tree,form</field>
236         <field name="view_id" ref="view_marketing_campaign_segment_tree"/>
237         <field name="search_view_id" ref="view_marketing_campaign_segment_search"/>
238         <field name="context">{'group_by': []}</field>
239     </record>
240
241     <menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20"/>
242
243     <!--
244         Marketing Activities
245         These views are not intended to be used outside the campaign context.
246     -->
247     <record model="ir.ui.view" id="view_marketing_campaign_activity_form">
248         <field name="name">marketing.campaign.activity.form</field>
249         <field name="model">marketing.campaign.activity</field>
250         <field name="type">form</field>
251         <field name="arch" type="xml">
252             <form string="Activities" version="7.0">
253                 <group>
254                     <group>
255                         <field name="name"/>
256                         <field name="signal" groups="base.group_no_one"/>
257                         <field name="start"/>
258                         <field name="object_id" invisible="1"/>
259                         <field name="campaign_id" invisible="1"/>
260                     </group>
261                     <group>
262                         <field name="variable_cost"/>
263                         <field name="revenue"/>
264                     </group>
265                 </group>
266                 <group >
267                     <group>
268                         <field name="condition" widget="char"/>
269                         <field name="keep_if_condition_not_met"/>
270                     </group>
271                     <group>
272                         <field name="type"/>
273                         <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}"
274                            context="{'default_model_id':object_id}"/>
275                         <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/>
276                         <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/>
277                         <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/>
278                     </group>
279                 </group>
280                 <separator string="Previous Activities"/>
281                 <field name="from_ids" mode="tree" context="{'default_activity_to_id': active_id}">
282                     <tree string="Incoming Transitions" editable="bottom">
283                         <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
284                         <field name='trigger'/>
285                         <field name="interval_nbr"/>
286                         <field name="interval_type"/>
287                     </tree>
288                     <form string="Incoming Transitions" version="7.0">
289                         <group col="4">
290                             <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
291                             <field name='trigger'/>
292                             <field name="interval_nbr"/>
293                             <field name="interval_type"/>
294                         </group>
295                     </form>
296                 </field>
297                 <separator string="Next Activities"/>
298                 <field name="to_ids" mode="tree" context="{'default_activity_from_id': active_id}">
299                     <tree string="Outgoing Transitions" editable="bottom">
300                         <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
301                         <field name='trigger'/>
302                         <field name="interval_nbr"/>
303                         <field name="interval_type"/>
304                     </tree>
305                     <form string="Outgoing Transitions" version="7.0">
306                         <group col="4">
307                             <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
308                             <field name='trigger'/>
309                             <field name="interval_nbr"/>
310                             <field name="interval_type"/>
311                         </group>
312                     </form>
313                 </field>
314             </form>
315         </field>
316     </record>
317
318     <record model="ir.ui.view" id="view_marketing_campaign_activity_tree">
319         <field name="name">marketing.campaign.activity.tree</field>
320         <field name="model">marketing.campaign.activity</field>
321         <field name="type">tree</field>
322         <field name="arch" type="xml">
323             <tree string="Activities">
324                 <field name="name"/>
325                 <field name="condition"/>
326                 <field name="type"/>
327                 <field name="start"/>
328             </tree>
329         </field>
330     </record>
331
332
333     <!-- Marketing Workitems -->
334     <record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
335         <field name="name">marketing.campaign.workitem.tree</field>
336         <field name="model">marketing.campaign.workitem</field>
337         <field name="type">tree</field>
338         <field name="arch" type="xml">
339             <tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities">
340                 <field name="campaign_id"/>
341                 <field name="segment_id"/>
342                 <field name="activity_id"/>
343                 <field name="object_id" invisible="1"/>
344                 <field name="res_id" invisible="1"/>
345                 <field name="res_name"/>
346                 <field name="partner_id"/>
347                 <field name="date"/>
348                 <field name="state"/>
349                 <button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
350                 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
351                 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
352             </tree>
353         </field>
354     </record>
355
356     <record model="ir.ui.view" id="view_marketing_campaign_workitem_form">
357         <field name="name">marketing.campaign.workitem.form</field>
358         <field name="model">marketing.campaign.workitem</field>
359         <field name="type">form</field>
360         <field name="arch" type="xml">
361             <form string="Marketing Campaign Activities" version="7.0">
362             <header>
363                 <button string="Process" states="todo" name="process" type="object"/>
364                 <button string="Reset" states="exception,cancelled" name="button_draft" type="object"/>
365                 <button string="Cancel" states="todo,exception" name="button_cancel" type="object"/>
366                 <field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
367                 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
368             </header>
369             <sheet>
370                 <group>
371                     <group>
372                         <field name="campaign_id"/>
373                         <field name="segment_id"/>
374                         <field name="activity_id" context="{'segment_id':segment_id}"/>
375                         <field name="date"/>
376                     </group>
377                     <group>
378                         <field name="object_id" readonly="True"/>
379                         <field name="res_name"/>
380                         <field name="res_id"/>
381                         <field name="partner_id"/>
382                     </group>
383                 </group>
384                 <group attrs="{'invisible':[('state','!=','exception')]}" string="Error Message">
385                     <field name="error_msg" nolabel="1" colspan="2"/>
386                 </group>
387             </sheet>
388             </form>
389         </field>
390     </record>
391
392     <record id="view_marketing_campaign_workitem_search" model="ir.ui.view">
393         <field name="name">marketing.campaign.workitem.search</field>
394         <field name="model">marketing.campaign.workitem</field>
395         <field name="type">search</field>
396         <field name="arch" type="xml">
397             <search string="Marketing Campaign Activities">
398                 <group>
399                     <field name="res_name" string="Marketing Campaign Activity"/>
400                     <separator orientation="vertical"/>
401                     <field name="date"/>
402                     <separator orientation="vertical"/>
403                     <filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','todo')]"/>
404                     <filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/>
405                     <separator orientation="vertical"/>
406                     <field name="campaign_id"/>
407                     <field name="segment_id"/>
408                     <field name="object_id"/>
409                     <field name="partner_id"/>
410                     <field name="res_id"/>
411                 </group>
412                 <newline/>
413                 <group expand="0" string="Group By...">
414                     <filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
415                     <filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
416                     <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
417                     <separator orientation="vertical"/>
418                     <filter string="Resource" name="resource" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
419                     <filter string="Resource ID" name="res_id" icon="terp-accessories-archiver" context="{'group_by':'res_id'}"/>
420                     <separator orientation="vertical"/>
421                     <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
422                     <separator orientation="vertical"/>
423                     <filter string="Execution Date" name="Date" icon="terp-go-month" context="{'group_by':'date'}"/>
424                 </group>
425             </search>
426         </field>
427     </record>
428
429     <record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
430         <field name="name">Campaign Follow-up</field>
431         <field name="type">ir.actions.act_window</field>
432         <field name="res_model">marketing.campaign.workitem</field>
433         <field name="view_type">form</field>
434         <field name="view_mode">tree,form</field>
435         <field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
436         <field name="search_view_id" ref="view_marketing_campaign_workitem_search"/>
437         <field name="context">{'group_by': []}</field>
438     </record>
439
440     <menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing_campaign" action="action_marketing_campaign_workitem" sequence="10"/>
441
442     <act_window name="All Segments"
443         res_model="marketing.campaign.segment"
444         src_model="marketing.campaign"
445         view_type="form"
446         view_mode="tree,form"
447         id="act_marketing_campaing_segment_opened"
448         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
449
450     <!-- Campaign Follow-ups -->
451     <act_window
452         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
453         id="act_marketing_campaing_followup"
454         name="Campaign Follow-up" res_model="marketing.campaign.workitem"
455         src_model="marketing.campaign" view_mode="tree,form"
456         view_type="form"/>
457
458     <!-- Campaign Statistics -->
459     <act_window
460         context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
461         id="act_marketing_campaing_stat"
462         name="Campaign Statistics" res_model="campaign.analysis"
463         src_model="marketing.campaign" view_mode="tree,form"
464         view_type="form"/>
465
466     </data>
467 </openerp>