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')}"/>
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>
19 <!-- Marketing Campaign -->
21 <record id="act_marketing_campaing_segment_opened" model="ir.actions.act_window">
22 <field name="res_model">marketing.campaign.segment</field>
23 <field name="view_type">form</field>
24 <field name="name">Segments</field>
25 <field name="view_mode">tree,form</field>
26 <field name="context">{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}</field>
29 <!-- Campaign Follow-ups -->
31 <record id="act_marketing_campaing_followup" model="ir.actions.act_window">
32 <field name="res_model">marketing.campaign.workitem</field>
33 <field name="view_type">form</field>
34 <field name="name">Workitems</field>
35 <field name="view_mode">tree,form</field>
36 <field name="context">{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}</field>
39 <!-- Campaign Statistics -->
41 <record id="act_marketing_campaing_stat" model="ir.actions.act_window" >
42 <field name="res_model">campaign.analysis</field>
43 <field name="view_type">form</field>
44 <field name="name">Campaign Follow-up</field>
45 <field name="view_mode">tree,form</field>
46 <field name="context">{'search_default_campaign_id': [active_id], 'default_campaign_id': active_id}</field>
49 <!-- Campaign Followups -->
51 <record model="ir.ui.view" id="view_marketing_campaign_form">
52 <field name="name">marketing.campaign.form</field>
53 <field name="model">marketing.campaign</field>
54 <field name="arch" type="xml">
55 <form string="Marketing Campaign" version="7.0">
57 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
58 <button name="state_done_set" string="Done" states="running" class="oe_highlight"/>
59 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
60 <button name="state_cancel_set" string="Cancel Campaign" states="running"/>
61 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
63 <sheet string="Campaign">
64 <div class="oe_right oe_button_box" name="button_box">
66 name="%(act_marketing_campaing_stat)d"
67 string="Campaign Statistics"/>
69 name="%(act_marketing_campaing_segment_opened)d"
72 name="%(act_marketing_campaing_followup)d"
75 <div class="oe_title">
76 <label for="name" class="oe_edit_only"/>
77 <h1><field name="name" class="oe_inline"/></h1>
82 <field name="fixed_cost"/>
85 <field name="object_id"/>
86 <field name="partner_field_id"/>
87 <field name="unique_field_id"/>
90 <separator string="Activities"/>
91 <field name="activity_ids" context="{'default_object_id': object_id, 'default_campaign_id': active_id}"/>
97 <record model="ir.ui.view" id="view_marketing_campaign_tree">
98 <field name="name">marketing.campaign.tree</field>
99 <field name="model">marketing.campaign</field>
100 <field name="arch" type="xml">
101 <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Campaigns">
103 <field name="object_id"/>
105 <field name="fixed_cost"/>
106 <field name="state"/>
111 <record id="view_marketing_campaign_diagram" model="ir.ui.view">
112 <field name="name">marketing.campaign.diagram</field>
113 <field name="model">marketing.campaign</field>
114 <field name="arch" type="xml">
115 <diagram string="Campaign Editor">
116 <node object="marketing.campaign.activity" shape="rectangle:type=='subcampaign'" bgcolor="gray:start==True">
119 <field name="start" invisible="1"/>
120 <field name="condition" widget="char"/>
122 <arrow object="marketing.campaign.transition" source="activity_from_id" destination="activity_to_id" label="['name']">
123 <field name="activity_from_id"/>
124 <field name="activity_to_id"/>
125 <field name="interval_nbr"/>
126 <field name="interval_type"/>
132 <record id="view_marketing_campaign_search" model="ir.ui.view">
133 <field name="name">marketing.campaign.search</field>
134 <field name="model">marketing.campaign</field>
135 <field name="arch" type="xml">
136 <search string="Campaigns">
137 <field name="name" string="Campaign"/>
138 <filter icon="terp-document-new" string="Draft" name="draft" domain="[('state','=','draft')]"/>
139 <filter icon="terp-check" string="Running" domain="[('state','=','running')]"/>
141 <filter icon="terp-gtk-jump-to-rtl" string="Test Mode" name="test" domain="[('mode','=','test')]"/>
142 <filter icon="terp-gtk-jump-to-rtl" string="Manual Mode" domain="[('mode','=','manual')]"/>
143 <field name="object_id" string="Resource"/>
144 <group expand="0" string="Group By...">
145 <filter string="Resource" name="Object" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
146 <filter string="Mode" name="Mode" icon="terp-gtk-jump-to-rtl" context="{'group_by':'mode'}"/>
147 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
153 <record model="ir.actions.act_window" id="action_marketing_campaign_form">
154 <field name="name">Campaigns</field>
155 <field name="type">ir.actions.act_window</field>
156 <field name="res_model">marketing.campaign</field>
157 <field name="view_type">form</field>
158 <field name="view_mode">tree,form,diagram</field>
159 <field name="view_id" ref="view_marketing_campaign_tree"/>
160 <field name="context">{'group_by': []}</field>
161 <field name="search_view_id" ref="view_marketing_campaign_search"/>
162 <field name="help" type="html">
163 <p class="oe_view_nocontent_create">
164 Click to create a marketing campaign.
166 OpenERP's marketing campaign allows you to automate communication
167 to your prospects. You can define a segment (set of conditions) on
168 your leads and partners to fullfil the campaign.
170 A campaign can have many activities like sending an email, printing
171 a letter, assigning to a team, etc. These activities are triggered
172 from specific situations; contact form, 10 days after first
173 contact, if a lead is not closed yet, etc.
178 <menuitem name="Campaigns" id="menu_marketing_campaign" parent="base.marketing_menu" groups="marketing.group_marketing_user,marketing.group_marketing_manager"/>
179 <menuitem id="menu_marketing_campaign_form" parent="menu_marketing_campaign" action="action_marketing_campaign_form" sequence="30"/>
181 <!-- Marketing Segments -->
182 <record model="ir.ui.view" id="view_marketing_campaign_segment_form">
183 <field name="name">marketing.campaign.segment.form</field>
184 <field name="model">marketing.campaign.segment</field>
185 <field name="arch" type="xml">
186 <form string="Marketing Campaign Segment" version="7.0">
188 <button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
189 <button name="state_done_set" string="Close" states="running" class="oe_highlight"/>
190 <button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
191 <button name="state_cancel_set" string="Cancel Segment" states="running"/>
192 <field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
194 <sheet string="Segments" >
198 <field name="campaign_id" on_change="onchange_campaign_id(campaign_id)"/>
199 <field name="object_id" invisible="1"/>
200 <field name="sync_mode" required="True"/>
201 <label for="sync_last_date"/>
203 <field name="sync_last_date" class="oe_inline"/>
204 <button string="Synchronize Manually" states="running" name="synchroniz" type="object"/>
206 <field name="date_next_sync"/>
209 <field name="ir_filter_id"/>
210 <field name="date_run" readonly="1"/>
211 <field name="date_done" readonly="1"/>
219 <record model="ir.ui.view" id="view_marketing_campaign_segment_tree">
220 <field name="name">marketing.campaign.segment.tree</field>
221 <field name="model">marketing.campaign.segment</field>
222 <field name="arch" type="xml">
223 <tree colors="blue:state == 'draft';black:state == 'running';gray:state in ('done','cancelled')" string="Segments">
225 <field name="campaign_id"/>
226 <field name="date_run"/>
227 <field name="sync_last_date"/>
228 <field name="state"/>
233 <record id="view_marketing_campaign_segment_search" model="ir.ui.view">
234 <field name="name">marketing.campaign.segment.search</field>
235 <field name="model">marketing.campaign.segment</field>
236 <field name="arch" type="xml">
237 <search string="Segments">
238 <field name="name" string="Segment"/>
239 <field name="date_run"/>
240 <filter icon="terp-check" string="Running" name="running" domain="[('state','=','running')]"/>
241 <filter icon="terp-document-new" string="Draft" domain="[('state','=','draft')]"/>
243 <filter icon="terp-gtk-jump-to-ltr" string="Newly Created" help="Sync mode: only records created after last sync" domain="[('sync_mode','=','create_date')]"/>
244 <filter icon="terp-stock_effects-object-colorize" string="Newly Modified" help="Sync mode: only records updated after last sync" domain="[('sync_mode','=','write_date')]"/>
245 <filter icon="terp-emblem-documents" string="All" help="Sync mode: all records" domain="[('sync_mode','=','all')]"/>
246 <field name="campaign_id"/>
247 <field name="object_id"/>
248 <group expand="0" string="Group By...">
249 <filter string="Campaign" name="Campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
250 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
251 <filter string="Launch Month" name="Launch Date" icon="terp-go-month" context="{'group_by':'date_run'}"/>
257 <record model="ir.actions.act_window" id="action_marketing_campaign_segment_form">
258 <field name="name">Segments</field>
259 <field name="type">ir.actions.act_window</field>
260 <field name="res_model">marketing.campaign.segment</field>
261 <field name="view_type">form</field>
262 <field name="view_mode">tree,form</field>
263 <field name="view_id" ref="view_marketing_campaign_segment_tree"/>
264 <field name="search_view_id" ref="view_marketing_campaign_segment_search"/>
265 <field name="context">{'group_by': []}</field>
268 <menuitem id="menu_marketing_campaign_segment_form" parent="menu_marketing_campaign" action="action_marketing_campaign_segment_form" sequence="20"/>
272 These views are not intended to be used outside the campaign context.
274 <record model="ir.ui.view" id="view_marketing_campaign_activity_form">
275 <field name="name">marketing.campaign.activity.form</field>
276 <field name="model">marketing.campaign.activity</field>
277 <field name="arch" type="xml">
278 <form string="Activities" version="7.0">
282 <field name="signal" groups="base.group_no_one"/>
283 <field name="start"/>
284 <field name="object_id" invisible="1"/>
285 <field name="campaign_id" invisible="1" required="0"/>
288 <field name="variable_cost"/>
289 <field name="revenue"/>
294 <field name="condition" widget="char"/>
295 <field name="keep_if_condition_not_met"/>
299 <field name="email_template_id" attrs="{'required':[('type','=','email')], 'invisible':[('type','!=','email')]}"
300 context="{'default_model_id':object_id}"/>
301 <field name="server_action_id" attrs="{'required':[('type','=','action')],'invisible':[('type','!=','action')]}" domain="[('model_id','=',object_id)]"/>
302 <field name="report_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}" context="{'object_id':object_id}"/>
303 <field name="report_directory_id" attrs="{'required':[('type','=','report')],'invisible':[('type','!=','report')]}"/>
306 <separator string="Previous Activities"/>
307 <field name="from_ids" mode="tree" context="{'default_activity_to_id': active_id}">
308 <tree string="Incoming Transitions" editable="bottom">
309 <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]" options="{'no_create': True}" />
310 <field name='trigger'/>
311 <field name="interval_nbr"/>
312 <field name="interval_type"/>
314 <form string="Incoming Transitions" version="7.0">
316 <field name="activity_from_id" domain="[('campaign_id', '=', parent.campaign_id)]" options="{'no_create': True}" />
317 <field name='trigger'/>
318 <field name="interval_nbr"/>
319 <field name="interval_type"/>
323 <separator string="Next Activities"/>
324 <field name="to_ids" mode="tree" context="{'default_activity_from_id': active_id}">
325 <tree string="Outgoing Transitions" editable="bottom">
326 <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]" options="{'no_create': True}" />
327 <field name='trigger'/>
328 <field name="interval_nbr"/>
329 <field name="interval_type"/>
331 <form string="Outgoing Transitions" version="7.0">
333 <field name="activity_to_id" domain="[('campaign_id', '=', parent.campaign_id)]" options="{'no_create': True}" />
334 <field name='trigger'/>
335 <field name="interval_nbr"/>
336 <field name="interval_type"/>
344 <record model="ir.ui.view" id="view_marketing_campaign_activity_tree">
345 <field name="name">marketing.campaign.activity.tree</field>
346 <field name="model">marketing.campaign.activity</field>
347 <field name="arch" type="xml">
348 <tree string="Activities">
350 <field name="condition"/>
352 <field name="start"/>
358 <!-- Marketing Workitems -->
359 <record model="ir.ui.view" id="view_marketing_campaign_workitem_tree">
360 <field name="name">marketing.campaign.workitem.tree</field>
361 <field name="model">marketing.campaign.workitem</field>
362 <field name="arch" type="xml">
363 <tree colors="red:state == 'exception';black:state == 'todo';gray:state == 'cancelled'" string="Marketing Campaign Activities">
364 <field name="campaign_id"/>
365 <field name="segment_id"/>
366 <field name="activity_id"/>
367 <field name="object_id" invisible="1"/>
368 <field name="res_id" invisible="1"/>
369 <field name="res_name"/>
370 <field name="partner_id"/>
372 <field name="state"/>
373 <button string="Cancel" states="todo" name="button_cancel" type="object" icon="terp-gtk-stop"/>
374 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
375 <button string="Process" states="todo" name="process" type="object" icon="terp-gtk-go-back-rtl"/>
380 <record model="ir.ui.view" id="view_marketing_campaign_workitem_form">
381 <field name="name">marketing.campaign.workitem.form</field>
382 <field name="model">marketing.campaign.workitem</field>
383 <field name="arch" type="xml">
384 <form string="Marketing Campaign Activities" version="7.0">
386 <button string="Process" states="todo" name="process" type="object"/>
387 <button string="Reset" states="exception,cancelled" name="button_draft" type="object"/>
388 <button string="Cancel Workitem" states="todo,exception" name="button_cancel" type="object"/>
389 <field name="state" readonly="True" widget="statusbar" statusbar_visible="todo,done" statusbar_colors='{"exception":"red"}'/>
390 <button string="Preview" states="todo" name="preview" icon="gtk-zoom-fit" type="object"/>
395 <field name="campaign_id"/>
396 <field name="segment_id"/>
397 <field name="activity_id" context="{'segment_id':segment_id}"/>
401 <field name="object_id" readonly="True"/>
402 <field name="res_name"/>
403 <field name="res_id"/>
404 <field name="partner_id"/>
407 <group attrs="{'invisible':[('state','!=','exception')]}" string="Error Message">
408 <field name="error_msg" nolabel="1" colspan="2"/>
415 <record id="view_marketing_campaign_workitem_search" model="ir.ui.view">
416 <field name="name">marketing.campaign.workitem.search</field>
417 <field name="model">marketing.campaign.workitem</field>
418 <field name="arch" type="xml">
419 <search string="Marketing Campaign Activities">
420 <field name="res_name" string="Marketing Campaign Activity"/>
422 <filter icon="terp-gtk-go-back-rtl" string="To Do" name="todo" domain="[('state','=','todo')]"/>
423 <filter icon="terp-emblem-important" string="Exception" domain="[('state','=','exception')]"/>
424 <field name="campaign_id"/>
425 <field name="segment_id"/>
426 <field name="object_id"/>
427 <field name="partner_id"/>
428 <field name="res_id"/>
429 <group expand="0" string="Group By...">
430 <filter string="Campaign" name="campaign" icon="terp-gtk-jump-to-rtl" context="{'group_by':'campaign_id'}"/>
431 <filter string="Segment" name="segment" icon="terp-stock_symbol-selection" context="{'group_by':'segment_id'}"/>
432 <filter string="Activity" name="activity" icon="terp-stock_align_left_24" context="{'group_by':'activity_id'}"/>
433 <filter string="Resource" name="resource" icon="terp-accessories-archiver" context="{'group_by':'object_id'}"/>
434 <filter string="Resource ID" name="res_id" icon="terp-accessories-archiver" context="{'group_by':'res_id'}"/>
435 <filter string="Status" name="Status" icon="terp-stock_effects-object-colorize" context="{'group_by':'state'}"/>
436 <filter string="Execution Month" name="Date" icon="terp-go-month" context="{'group_by':'date'}"/>
442 <record model="ir.actions.act_window" id="action_marketing_campaign_workitem">
443 <field name="name">Campaign Follow-up</field>
444 <field name="type">ir.actions.act_window</field>
445 <field name="res_model">marketing.campaign.workitem</field>
446 <field name="view_type">form</field>
447 <field name="view_mode">tree,form</field>
448 <field name="view_id" ref="view_marketing_campaign_workitem_tree"/>
449 <field name="search_view_id" ref="view_marketing_campaign_workitem_search"/>
450 <field name="context">{'group_by': []}</field>
453 <menuitem id="menu_action_marketing_campaign_workitem" parent="menu_marketing_campaign" action="action_marketing_campaign_workitem" sequence="10"/>