5 <menuitem name="Configuration" id="menu_marketing_configuration" parent="base.marketing_menu" sequence="1"/>
7 <!-- Marketing Campaign -->
8 <act_window name="All Segments"
9 res_model="marketing.campaign.segment"
10 src_model="marketing.campaign"
13 id="act_marketing_campaing_segment_opened"
14 context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
16 <!-- Campaign Followups -->
18 context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
19 id="act_marketing_campaing_followup"
20 name="Campaign Follow-up" res_model="marketing.campaign.workitem"
21 src_model="marketing.campaign" view_mode="tree,form"
24 <record model="ir.ui.view" id="view_marketing_campaign_form">
25 <field name="name">marketing.campaign.form</field>
26 <field name="model">marketing.campaign</field>
27 <field name="type">form</field>
28 <field name="arch" type="xml">
31 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
32 <button name="state_done_set" string="Done" states="running" class="oe_highlight"/>
33 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
34 <button name="state_cancel_set" string="Cancel" states="running"/>
35 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
37 <sheet string="Campaign">
38 <div class="oe_right oe_button_box" name="button_box">
40 name="%(act_marketing_campaing_followup)d"
43 name="%(act_marketing_campaing_segment_opened)d"
46 <div class="oe_title">
47 <label for="name" class="oe_edit_only"/>
48 <h1><field name="name" class="oe_inline"/></h1>
53 <field name="fixed_cost"/>
56 <field name="object_id"/>
57 <field name="partner_field_id"/>
58 <field name="unique_field_id"/>
61 <separator string="Activities"/>
62 <field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}"/>
68 <record model="ir.ui.view" id="view_marketing_campaign_tree">
69 <field name="name">marketing.campaign.tree</field>
70 <field name="model">marketing.campaign</field>
71 <field name="type">tree</field>
72 <field name="arch" type="xml">
73 <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Campaigns">
75 <field name="object_id"/>
77 <field name="fixed_cost"/>
83 <record id="view_marketing_campaign_diagram" model="ir.ui.view">
84 <field name="name">marketing.campaign.diagram</field>
85 <field name="model">marketing.campaign</field>
86 <field name="type">diagram</field>
87 <field name="arch" type="xml">
88 <diagram string="Campaign Editor">
89 <node object="marketing.campaign.activity" shape="rectangle:type=='subcampaign'" bgcolor="gray:start==True">
92 <field name="start" invisible="1"/>
93 <field name="condition" widget="char"/>
95 <arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id" label="['name']">
96 <field name="activity_from_id"/>
97 <field name="activity_to_id"/>
98 <field name="interval_nbr"/>
99 <field name="interval_type"/>
105 <record id="view_marketing_campaign_search" model="ir.ui.view">
106 <field name="name">marketing.campaign.search</field>
107 <field name="model">marketing.campaign</field>
108 <field name="type">search</field>
109 <field name="arch" type="xml">
110 <search string="Campaigns">
111 <field name="name" string="Campaign"/>
112 <filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]"/>
113 <filter icon="terp-check" string="Running" domain="[('state','=','running')]"/>
115 <filter icon="terp-gtk-jump-to-rtl" string="Test Mode" name="test" domain="[('mode','=','test')]"/>
116 <filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
117 <field name="object_id" string="Resource"/>
118 <group expand="0" string="Group By...">
119 <filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
120 <filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
121 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
127 <record model="ir.actions.act_window" id="action_marketing_campaign_form">
128 <field name="name">Campaigns</field>
129 <field name="type">ir.actions.act_window</field>
130 <field name="res_model">marketing.campaign</field>
131 <field name="view_type">form</field>
132 <field name="view_mode">tree,form,diagram</field>
133 <field name="view_id" ref="view_marketing_campaign_tree"/>
134 <field name="context">{'group_by': []}</field>
135 <field name="search_view_id" ref="view_marketing_campaign_search"/>
136 <field name="help" type="html">
137 <p class="oe_view_nocontent_create">
138 Click to create a marketing campaign.
140 OpenERP's marketing campaign allows you to automate communication
141 to your prospects. You can define a segment (set of conditions) on
142 your leads and partners to fullfil the campaign.
144 A campaign can have many activities like sending an email, printing
145 a letter, assigning to a team, etc. These activities are triggered
146 from specific situations; contact form, 10 days after first
147 contact, if a lead is not closed yet, etc.
152 <menuitem name="Campaigns" id="menu_marketing_campaign" parent="base.marketing_menu"/>
153 <menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30"/>
155 <!-- Marketing Segments -->
156 <record model="ir.ui.view" id="view_marketing_campaign_segment_form">
157 <field name="name">marketing.campaign.segment.form</field>
158 <field name="model">marketing.campaign.segment</field>
159 <field name="type">form</field>
160 <field name="arch" type="xml">
163 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
164 <button name="state_done_set" string="Close" states="running" class="oe_highlight"/>
165 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
166 <button name="state_cancel_set" string="Cancel" states="running"/>
167 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
169 <sheet string="Segments" >
173 <field name="campaign_id" on_change="onchange_campaign_id(campaign_id)"/>
174 <field name="object_id" invisible="1"/>
175 <field name="sync_mode" required="True"/>
176 <label for="sync_last_date"/>
178 <field name="sync_last_date" class="oe_inline"/>
179 <button string="Synchronize Manually" states="running" name="synchroniz" type="object"/>
181 <field name="date_next_sync"/>
184 <field name="ir_filter_id"/>
185 <field name="date_run" readonly="1"/>
186 <field name="date_done" readonly="1"/>
194 <record model="ir.ui.view" id="view_marketing_campaign_segment_tree">
195 <field name="name">marketing.campaign.segment.tree</field>
196 <field name="model">marketing.campaign.segment</field>
197 <field name="type">tree</field>
198 <field name="arch" type="xml">
199 <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Segments">
201 <field name="campaign_id"/>
202 <field name="date_run"/>
203 <field name="sync_last_date"/>
204 <field name="state"/>
209 <record id="view_marketing_campaign_segment_search" model="ir.ui.view">
210 <field name="name">marketing.campaign.segment.search</field>
211 <field name="model">marketing.campaign.segment</field>
212 <field name="type">search</field>
213 <field name="arch" type="xml">
214 <search string="Segments">
215 <field name="name" string="Segment"/>
216 <field name="date_run"/>
217 <filter icon="terp-check" string="Running" name="running" domain="[('state','=','running')]"/>
218 <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/>
220 <filter icon="terp-gtk-jump-to-ltr" string="Newly Created" help="Sync mode: only records created after last sync" domain="[('sync_mode','=','create_date')]"/>
221 <filter icon="terp-stock_effects-object-colorize" string="Newly Modified" help="Sync mode: only records updated after last sync" domain="[('sync_mode','=','write_date')]"/>
222 <filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
223 <field name="campaign_id"/>
224 <field name="object_id"/>
225 <group expand="0" string="Group By...">
226 <filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
227 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
228 <filter string="Launch Date" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
234 <record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
235 <field name="name">Segments</field>
236 <field name="type">ir.actions.act_window</field>
237 <field name="res_model">marketing.campaign.segment</field>
238 <field name="view_type">form</field>
239 <field name="view_mode">tree,form</field>
240 <field name="view_id" ref="view_marketing_campaign_segment_tree"/>
241 <field name="search_view_id" ref="view_marketing_campaign_segment_search"/>
242 <field name="context">{'group_by': []}</field>
245 <menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20"/>
249 These views are not intended to be used outside the campaign context.
251 <record model="ir.ui.view" id="view_marketing_campaign_activity_form">
252 <field name="name">marketing.campaign.activity.form</field>
253 <field name="model">marketing.campaign.activity</field>
254 <field name="type">form</field>
255 <field name="arch" type="xml">
256 <form string="Activities" version="7.0">
260 <field name="signal" groups="base.group_no_one"/>
261 <field name="start"/>
262 <field name="object_id" invisible="1"/>
263 <field name="campaign_id" invisible="1"/>
266 <field name="variable_cost"/>
267 <field name="revenue"/>
272 <field name="condition" widget="char"/>
273 <field name="keep_if_condition_not_met"/>
277 <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}"
278 context="{'default_model_id':object_id}"/>
279 <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/>
280 <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/>
281 <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/>
284 <separator string="Previous Activities"/>
285 <field name="from_ids" mode="tree" context="{'default_activity_to_id': active_id}">
286 <tree string="Incoming Transitions" editable="bottom">
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"/>
292 <form string="Incoming Transitions" version="7.0">
294 <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
295 <field name='trigger'/>
296 <field name="interval_nbr"/>
297 <field name="interval_type"/>
301 <separator string="Next Activities"/>
302 <field name="to_ids" mode="tree" context="{'default_activity_from_id': active_id}">
303 <tree string="Outgoing Transitions" editable="bottom">
304 <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
305 <field name='trigger'/>
306 <field name="interval_nbr"/>
307 <field name="interval_type"/>
309 <form string="Outgoing Transitions" version="7.0">
311 <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]"/>
312 <field name='trigger'/>
313 <field name="interval_nbr"/>
314 <field name="interval_type"/>
322 <record model="ir.ui.view" id="view_marketing_campaign_activity_tree">
323 <field name="name">marketing.campaign.activity.tree</field>
324 <field name="model">marketing.campaign.activity</field>
325 <field name="type">tree</field>
326 <field name="arch" type="xml">
327 <tree string="Activities">
329 <field name="condition"/>
331 <field name="start"/>
337 <!-- Marketing Workitems -->
338 <record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
339 <field name="name">marketing.campaign.workitem.tree</field>
340 <field name="model">marketing.campaign.workitem</field>
341 <field name="type">tree</field>
342 <field name="arch" type="xml">
343 <tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities">
344 <field name="campaign_id"/>
345 <field name="segment_id"/>
346 <field name="activity_id"/>
347 <field name="object_id" invisible="1"/>
348 <field name="res_id" invisible="1"/>
349 <field name="res_name"/>
350 <field name="partner_id"/>
352 <field name="state"/>
353 <button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
354 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
355 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
360 <record model="ir.ui.view" id="view_marketing_campaign_workitem_form">
361 <field name="name">marketing.campaign.workitem.form</field>
362 <field name="model">marketing.campaign.workitem</field>
363 <field name="type">form</field>
364 <field name="arch" type="xml">
365 <form string="Marketing Campaign Activities" version="7.0">
367 <button string="Process" states="todo" name="process" type="object"/>
368 <button string="Reset" states="exception,cancelled" name="button_draft" type="object"/>
369 <button string="Cancel" states="todo,exception" name="button_cancel" type="object"/>
370 <field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
371 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
376 <field name="campaign_id"/>
377 <field name="segment_id"/>
378 <field name="activity_id" context="{'segment_id':segment_id}"/>
382 <field name="object_id" readonly="True"/>
383 <field name="res_name"/>
384 <field name="res_id"/>
385 <field name="partner_id"/>
388 <group attrs="{'invisible':[('state','!=','exception')]}" string="Error Message">
389 <field name="error_msg" nolabel="1" colspan="2"/>
396 <record id="view_marketing_campaign_workitem_search" model="ir.ui.view">
397 <field name="name">marketing.campaign.workitem.search</field>
398 <field name="model">marketing.campaign.workitem</field>
399 <field name="type">search</field>
400 <field name="arch" type="xml">
401 <search string="Marketing Campaign Activities">
402 <field name="res_name" string="Marketing Campaign Activity"/>
404 <filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','todo')]"/>
405 <filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/>
406 <field name="campaign_id"/>
407 <field name="segment_id"/>
408 <field name="object_id"/>
409 <field name="partner_id"/>
410 <field name="res_id"/>
411 <group expand="0" string="Group By...">
412 <filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
413 <filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
414 <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
415 <filter string="Resource" name="resource" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
416 <filter string="Resource ID" name="res_id" icon="terp-accessories-archiver" context="{'group_by':'res_id'}"/>
417 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
418 <filter string="Execution Date" name="Date" icon="terp-go-month" context="{'group_by':'date'}"/>
424 <record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
425 <field name="name">Campaign Follow-up</field>
426 <field name="type">ir.actions.act_window</field>
427 <field name="res_model">marketing.campaign.workitem</field>
428 <field name="view_type">form</field>
429 <field name="view_mode">tree,form</field>
430 <field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
431 <field name="search_view_id" ref="view_marketing_campaign_workitem_search"/>
432 <field name="context">{'group_by': []}</field>
435 <menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing_campaign" action="action_marketing_campaign_workitem" sequence="10"/>
437 <act_window name="All Segments"
438 res_model="marketing.campaign.segment"
439 src_model="marketing.campaign"
441 view_mode="tree,form"
442 id="act_marketing_campaing_segment_opened"
443 context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"/>
445 <!-- Campaign Follow-ups -->
447 context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
448 id="act_marketing_campaing_followup"
449 name="Campaign Follow-up" res_model="marketing.campaign.workitem"
450 src_model="marketing.campaign" view_mode="tree,form"
453 <!-- Campaign Statistics -->
455 context="{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}"
456 id="act_marketing_campaing_stat"
457 name="Campaign Statistics" res_model="campaign.analysis"
458 src_model="marketing.campaign" view_mode="tree,form"