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