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