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