[REF] marketing_campaign: replace workflow by python code
guidelines of naming the methods action_* not followed, this module is being reworked in enterprise and removed from community anyway.
This commit is contained in:
committed by
Thibault Delavallée
parent
82408e09ab
commit
74538fbc4b
@@ -36,7 +36,6 @@ input segments, workflow.
|
||||
'security/ir.model.access.csv',
|
||||
'views/marketing_campaign_views.xml',
|
||||
'data/marketing_campaign_data.xml',
|
||||
'data/marketing_campaign_workflow.xml',
|
||||
'report/campaign_analysis_view.xml',
|
||||
],
|
||||
'demo': ['data/marketing_campaign_demo.xml'],
|
||||
|
||||
@@ -1,142 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
|
||||
<!-- Marketing Campaigns -->
|
||||
<record id="wkf_marketing_campaign" model="workflow">
|
||||
<field name="name">marketing.campaign.basic</field>
|
||||
<field name="osv">marketing.campaign</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Activity -->
|
||||
<record id="act_marketing_campaign_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'state':'draft'})</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_running" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="name">running</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_running_set()</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_done" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="name">done</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_done_set()</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_cancel" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign"/>
|
||||
<field name="name">cancel</field>
|
||||
<field name="flow_stop" eval="False"/>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_cancel_set()</field>
|
||||
</record>
|
||||
|
||||
<!-- Transition -->
|
||||
<record id="trans_marketing_campaign_draft_running" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_draft"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_running"/>
|
||||
<field name="signal">state_running_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_running_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_done"/>
|
||||
<field name="signal">state_done_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_running_cancel" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_cancel"/>
|
||||
<field name="signal">state_cancel_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_done_draft" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_done"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_draft"/>
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_cancelled_draft" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_cancel"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_draft"/>
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
<!-- Marketing Campaign Segment -->
|
||||
<record id="wkf_marketing_campaign_segment" model="workflow">
|
||||
<field name="name">marketing.campaign.segment.basic</field>
|
||||
<field name="osv">marketing.campaign.segment</field>
|
||||
<field name="on_create">True</field>
|
||||
</record>
|
||||
|
||||
<!-- Activity -->
|
||||
<record id="act_marketing_campaign_segment_draft" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="flow_start">True</field>
|
||||
<field name="name">draft</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">write({'state': 'draft'})</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_segment_running" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="name">running</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_running_set()</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_segment_done" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="name">done</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_done_set()</field>
|
||||
</record>
|
||||
|
||||
<record id="act_marketing_campaign_segment_cancel" model="workflow.activity">
|
||||
<field name="wkf_id" ref="wkf_marketing_campaign_segment"/>
|
||||
<field name="name">cancel</field>
|
||||
<field name="kind">function</field>
|
||||
<field name="action">state_cancel_set()</field>
|
||||
<field name="flow_stop" eval="False"/>
|
||||
</record>
|
||||
|
||||
<!-- Transition -->
|
||||
<record id="trans_marketing_campaign_segment_draft_running" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_draft"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="signal">state_running_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_segment_running_done" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_done"/>
|
||||
<field name="signal">state_done_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_segment_running_cancel" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_running"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_cancel"/>
|
||||
<field name="signal">state_cancel_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_segment_set_to_draft" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_cancel"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_draft"/>
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
<record id="trans_campaign_segment_done_draft" model="workflow.transition">
|
||||
<field name="act_from" ref="act_marketing_campaign_segment_done"/>
|
||||
<field name="act_to" ref="act_marketing_campaign_segment_draft"/>
|
||||
<field name="signal">state_draft_set</field>
|
||||
</record>
|
||||
|
||||
</odoo>
|
||||
@@ -74,6 +74,10 @@ class MarketingCampaign(models.Model):
|
||||
for campaign in self:
|
||||
campaign.segments_count = len(campaign.segment_ids)
|
||||
|
||||
@api.multi
|
||||
def state_draft_set(self):
|
||||
return self.write({'state': 'draft'})
|
||||
|
||||
@api.multi
|
||||
def state_running_set(self):
|
||||
# TODO check that all subcampaigns are running
|
||||
@@ -203,6 +207,10 @@ class MarketingCampaignSegment(models.Model):
|
||||
self.ir_filter_id = False
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def state_draft_set(self):
|
||||
return self.write({'state': 'draft'})
|
||||
|
||||
@api.multi
|
||||
def state_running_set(self):
|
||||
self.ensure_one()
|
||||
|
||||
@@ -12,14 +12,14 @@ class TestMarketingCampaignFlow(common.TransactionCase):
|
||||
|
||||
# In order to test process of compaign, I start compaign.
|
||||
partner_channel = self.env.ref('marketing_campaign.marketing_campaign_openerppartnerchannel')
|
||||
partner_channel.signal_workflow('state_running_set')
|
||||
partner_channel.state_running_set()
|
||||
|
||||
# I check the campaign on Running mode after started.
|
||||
self.assertEqual(partner_channel.state, 'running', 'The campaign should be on Running mode after having started.')
|
||||
|
||||
# I start this segment after assinged campaign.
|
||||
segment0 = self.env.ref('marketing_campaign.marketing_campaign_segment0')
|
||||
segment0.signal_workflow('state_running_set')
|
||||
segment0.state_running_set()
|
||||
|
||||
# I check the segment on Running mode after started.
|
||||
self.assertEqual(segment0.state, 'running', 'The segment should be on Running mode after having started.')
|
||||
@@ -90,26 +90,26 @@ class TestMarketingCampaignFlow(common.TransactionCase):
|
||||
workitems.preview()
|
||||
|
||||
# I cancel segmentation because of some activity.
|
||||
segment0.signal_workflow('state_cancel_set')
|
||||
segment0.state_cancel_set()
|
||||
|
||||
# I check the segmentation is canceled.
|
||||
self.assertEqual(segment0.state, 'cancelled', 'Segment should be in cancelled state.')
|
||||
|
||||
# I reopen the segmentation.
|
||||
segment0.signal_workflow('state_draft_set')
|
||||
segment0.signal_workflow('state_running_set')
|
||||
segment0.state_draft_set()
|
||||
segment0.state_running_set()
|
||||
|
||||
# I check the segment on Running mode after started.
|
||||
self.assertEqual(segment0.state, 'running', 'Segment should be in running state.')
|
||||
|
||||
# I close segmentation After completion of all activity.
|
||||
segment0.signal_workflow('state_done_set')
|
||||
segment0.state_done_set()
|
||||
|
||||
# I check the segmentation is done.
|
||||
self.assertEqual(segment0.state, 'done', 'Segment should be in done state.')
|
||||
|
||||
# I close this campaing.
|
||||
partner_channel.signal_workflow('state_done_set')
|
||||
partner_channel.state_done_set()
|
||||
|
||||
# I check the campaing is done.
|
||||
self.assertEqual(partner_channel.state, 'done', 'Campaign should be in done state.')
|
||||
|
||||
@@ -38,10 +38,10 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Marketing Campaign">
|
||||
<header>
|
||||
<button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
|
||||
<button name="state_done_set" string="Done" states="running" class="oe_highlight"/>
|
||||
<button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
|
||||
<button name="state_cancel_set" string="Cancel Campaign" states="running"/>
|
||||
<button name="state_running_set" type="object" string="Run" states="draft" class="oe_highlight"/>
|
||||
<button name="state_done_set" type="object" string="Done" states="running" class="oe_highlight"/>
|
||||
<button name="state_draft_set" type="object" string="Set to Draft" states="done,cancelled"/>
|
||||
<button name="state_cancel_set" type="object" string="Cancel Campaign" states="running"/>
|
||||
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
|
||||
</header>
|
||||
<sheet string="Campaign">
|
||||
@@ -185,10 +185,10 @@
|
||||
<field name="arch" type="xml">
|
||||
<form string="Marketing Campaign Segment">
|
||||
<header>
|
||||
<button name="state_running_set" string="Run" states="draft" class="oe_highlight"/>
|
||||
<button name="state_done_set" string="Close" states="running" class="oe_highlight"/>
|
||||
<button name="state_draft_set" string="Set to Draft" states="done,cancelled"/>
|
||||
<button name="state_cancel_set" string="Cancel Segment" states="running"/>
|
||||
<button name="state_running_set" type="object" string="Run" states="draft" class="oe_highlight"/>
|
||||
<button name="state_done_set" type="object" string="Close" states="running" class="oe_highlight"/>
|
||||
<button name="state_draft_set" type="object" string="Set to Draft" states="done,cancelled"/>
|
||||
<button name="state_cancel_set" type="object" string="Cancel Segment" states="running"/>
|
||||
<field name="state" readonly="1" widget="statusbar" statusbar_visible="draft,running,done"/>
|
||||
</header>
|
||||
<sheet string="Segments" >
|
||||
|
||||
Reference in New Issue
Block a user