diff --git a/addons/marketing_campaign/__openerp__.py b/addons/marketing_campaign/__openerp__.py
index a71ce85c0b8..bdd79149730 100644
--- a/addons/marketing_campaign/__openerp__.py
+++ b/addons/marketing_campaign/__openerp__.py
@@ -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'],
diff --git a/addons/marketing_campaign/data/marketing_campaign_workflow.xml b/addons/marketing_campaign/data/marketing_campaign_workflow.xml
deleted file mode 100644
index 8f32522423b..00000000000
--- a/addons/marketing_campaign/data/marketing_campaign_workflow.xml
+++ /dev/null
@@ -1,142 +0,0 @@
-
-
-
-
-
- marketing.campaign.basic
- marketing.campaign
- True
-
-
-
-
-
- True
- draft
- function
- write({'state':'draft'})
-
-
-
-
- running
- function
- state_running_set()
-
-
-
-
- done
- function
- state_done_set()
-
-
-
-
- cancel
-
- function
- state_cancel_set()
-
-
-
-
-
-
- state_running_set
-
-
-
-
-
- state_done_set
-
-
-
-
-
- state_cancel_set
-
-
-
-
-
- state_draft_set
-
-
-
-
-
- state_draft_set
-
-
-
-
- marketing.campaign.segment.basic
- marketing.campaign.segment
- True
-
-
-
-
-
- True
- draft
- function
- write({'state': 'draft'})
-
-
-
-
- running
- function
- state_running_set()
-
-
-
-
- done
- function
- state_done_set()
-
-
-
-
- cancel
- function
- state_cancel_set()
-
-
-
-
-
-
-
- state_running_set
-
-
-
-
-
- state_done_set
-
-
-
-
-
- state_cancel_set
-
-
-
-
-
- state_draft_set
-
-
-
-
-
- state_draft_set
-
-
-
diff --git a/addons/marketing_campaign/models/marketing_campaign.py b/addons/marketing_campaign/models/marketing_campaign.py
index 5b12fd5cbee..55df93b4846 100644
--- a/addons/marketing_campaign/models/marketing_campaign.py
+++ b/addons/marketing_campaign/models/marketing_campaign.py
@@ -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()
diff --git a/addons/marketing_campaign/tests/test_marketing_campaign_flow.py b/addons/marketing_campaign/tests/test_marketing_campaign_flow.py
index e84e1ef6288..d0ef513146b 100644
--- a/addons/marketing_campaign/tests/test_marketing_campaign_flow.py
+++ b/addons/marketing_campaign/tests/test_marketing_campaign_flow.py
@@ -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.')
diff --git a/addons/marketing_campaign/views/marketing_campaign_views.xml b/addons/marketing_campaign/views/marketing_campaign_views.xml
index 9204882166f..af248d12987 100644
--- a/addons/marketing_campaign/views/marketing_campaign_views.xml
+++ b/addons/marketing_campaign/views/marketing_campaign_views.xml
@@ -38,10 +38,10 @@