5 <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/>
10 ======================
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"/>
25 <group colspan="2" col="2">
26 <separator string="Resource" colspan="2" />
27 <field name="object_id"/>
28 <field name="partner_field_id"/>
30 <group colspan="2" col="2">
31 <separator string="Cost" colspan="2" />
32 <field name="fixed_cost"/>
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_running_set" string="Run" states="draft,done,cancelled" icon="gtk-apply"/>
40 <button name="state_draft_set" string="Set to Draft" states="done,cancelled" icon="gtk-convert"/>
41 <button name="state_done_set" string="Close" states="running" icon="terp-dialog-close"/>
42 <button name="state_cancel_set" string="Cancel" states="running" icon="terp-gtk-stop"/>
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"/>
57 <field name="fixed_cost"/>
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">
72 <field name="start" invisible="1"/>
73 <field name="condition" widget="char"/>
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"/>
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"/>
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'}" />
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"/>
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" />
127 ======================
129 ======================
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"/>
141 <field name="campaign_id" select="1" on_change="onchange_campaign_id(campaign_id)"/>
142 <field name="object_id" invisible="1"/>
144 <group colspan="2" col="2">
145 <separator string="Filter" colspan="4"/>
146 <field name="ir_filter_id" domain="[('model_id', '=', object_id)]"/>
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"/>
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"/>
161 <separator string="" colspan="4"/>
162 <group col="6" colspan="4">
163 <field name="state" readonly="1"/>
164 <button name="state_running_set" string="Run" states="draft" icon="gtk-apply"/>
165 <button name="state_done_set" string="Close" states="running" icon="terp-dialog-close"/>
166 <button name="state_cancel_set" string="Cancel" states="running" icon="terp-gtk-stop"/>
167 <button name="state_draft_set" string="Set to Draft" states="done,cancelled" icon="gtk-convert"/>
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">
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" />
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-project" string="Newly Created" help="Sync mode: only records created after last sync" domain="[('sync_mode','=','create_date')]"/>
199 <filter icon="terp-project" string="Newly Modified" help="Sync mode: only records updated after last sync" domain="[('sync_mode','=','write_date')]"/>
200 <filter icon="terp-project" 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"/>
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'}" />
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>
229 <menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20" />
232 ======================
234 ======================
236 these views are not intended to be used outside the campaign context.
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"/>
253 <group colspan='2' col='2'>
254 <separator string="Cost / Revenue" colspan="4"/>
255 <field name="variable_cost"/>
256 <field name="revenue"/>
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"/>
264 <group colspan='4' col='4'>
265 <separator string="Action" colspan="4"/>
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')]}" />
274 <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]" />
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"/>
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"/>
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"/>
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"/>
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"/>
319 <field name="start"/>
326 ======================
328 ======================
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"/>
345 <field name="state"/>
346 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
347 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
348 <button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
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"/>
374 <label string="" colspan="1"/>
375 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
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"/>
382 <separator string="" colspan="4"/>
383 <group colspan="4" col="11">
384 <field name="state" readonly="True"/>
385 <button string="Reset" states="exception,cancelled" name="button_draft" type="object" icon="gtk-undo"/>
386 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
387 <button string="Cancel" states="todo,exception" name="button_cancel" type="object" icon="terp-gtk-stop"/>
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','<', time.strftime('%%Y-%%m-%%d 23:59:59')), ('date','>=', 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"/>
408 <field name="object_id"/>
409 <field name="res_name"/>
410 <field name="res_id"/>
411 <field name="partner_id"/>
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'}" />
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>
441 <menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing_campaign" action="action_marketing_campaign_workitem" sequence="30"/>
443 <act_window name="All Segments"
444 res_model="marketing.campaign.segment"
445 src_model="marketing.campaign"
447 view_mode="tree,form"
448 id="act_marketing_campaing_segment_opened"
449 context="{'search_default_campaign_id': [active_id]}"
452 <!-- Campaign Followups -->
454 context="{'search_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"
460 <!-- Campaign Statistics -->
462 context="{'search_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"