[IMP] marketing_campaign: cleanup demo and yml to test process of compaign
authorHarry (OpenERP) <hmo@tinyerp.com>
Fri, 2 Dec 2011 11:01:18 +0000 (16:31 +0530)
committerHarry (OpenERP) <hmo@tinyerp.com>
Fri, 2 Dec 2011 11:01:18 +0000 (16:31 +0530)
bzr revid: hmo@tinyerp.com-20111202110118-3w1h2z38d844f04i

addons/marketing_campaign/__openerp__.py
addons/marketing_campaign/marketing_campaign.py
addons/marketing_campaign/marketing_campaign_demo.xml
addons/marketing_campaign/test/marketing_campaign.yml
addons/marketing_campaign/test/marketing_campaign_demo.yml [deleted file]

index d905223..44646a0 100644 (file)
@@ -61,7 +61,6 @@ Note: If you need demo data, you can install the marketing_campaign_crm_demo mod
         'marketing_campaign_demo.xml',
     ],
     'test': [
-        'test/marketing_campaign_demo.yml',
         'test/marketing_campaign.yml',
      ],
     'installable': True,
index e79b893..2ec05d1 100644 (file)
@@ -670,7 +670,7 @@ class marketing_campaign_workitem(osv.osv):
 
     def _process_one(self, cr, uid, workitem, context=None):
         if workitem.state != 'todo':
-            return
+            return False
 
         activity = workitem.activity_id
         proxy = self.pool.get(workitem.object_id.model)
index f49b918..df01161 100644 (file)
@@ -1,37 +1,31 @@
 <?xml version="1.0" ?>
 <openerp>
     <data>
-        <record id="action_dummy" model="ir.actions.server">
-            <field name="name">Dummy Action</field>
-            <field name="model_id" ref="base.model_res_partner"/>
-            <field name="state">dummy</field>
-            <field name="code"></field>
-            <field eval="5" name="sequence"/>
-            <field eval="True" name="condition"/>
-        </record>
-
-
         <!-- Email tempalte -->
         <record id="email_template_1" model="email.template">
-            <field name="subject">Welcome in OpenERP Family!</field>
-            <field name="email_to">info@tinyerp.com</field>
+            <field name="name">Template for New Partner</field>
+            <field name="email_from">info@tinyerp.com</field>
+            <field name="subject">Welcome in OpenERP Partner Channel!</field>
+            <field name="email_to">${object.email or ''}</field>
             <field name="model_id" ref="base.model_res_partner"/>
             <field name="body_text">Hello, We are very happy to send Welcome message.</field>
         </record>
         <record id="email_template_2" model="email.template">
-            <field name="subject">Cogretulation! You become now our Silver Partner.</field>
-            <field name="email_to">info@tinyerp.com</field>
+            <field name="name">Template for Silver Partner</field>
+            <field name="email_from">info@tinyerp.com</field>
+            <field name="subject">Congratulation! You become now our Silver Partner.</field>
+            <field name="email_to">${object.email or ''}</field>
             <field name="model_id" ref="base.model_res_partner"/>
-            <field name="body_text">Hello,We are happy to announce that you now become our Silver Partner.
-            Regards,OpenERP Team,</field>
+            <field name="body_text">Hello, We are happy to announce that you now become our Silver Partner.</field>
         </record>
 
         <record id="email_template_3" model="email.template">
+            <field name="name">Template for Gold Partner</field>
+            <field name="email_from">info@tinyerp.com</field>
             <field name="subject">Congratulation! You become our Gold Partner.</field>
-            <field name="email_to">info@tinyerp.com</field>
+            <field name="email_to">${object.email or ''}</field>
             <field name="model_id" ref="base.model_res_partner"/>
-            <field name="body_text">Hello, We are happy to announce that you become our Gold Partner.
-             Regards,OpenERP Team,</field>
+            <field name="body_text">Hello, We are happy to announce that you become our Gold Partner.</field>
         </record>
 
 
 
         <record id="marketing_campaign_activity_0" model="marketing.campaign.activity">
             <field name="name">New Partner</field>
-            <field name="server_action_id" ref="action_dummy"/>
             <field name="campaign_id" ref="marketing_campaign_openerppartnerchannel"/>
             <field name="email_template_id" ref="email_template_1"/>
+            <field name="condition">object.credit_limit &lt; 10000</field>
+            <field name="keep_if_condition_not_met">True</field>
             <field eval="1" name="start"/>
         </record>
         <record id="marketing_campaign_activity_1" model="marketing.campaign.activity">
             <field name="name">Silver Partner</field>
-            <field name="server_action_id" ref="action_dummy"/>
             <field name="campaign_id" ref="marketing_campaign_openerppartnerchannel"/>
+            <field name="condition">object.credit_limit &gt;= 10000 and object.credit_limit &lt; 50000</field>
+            <field name="keep_if_condition_not_met">True</field>
             <field name="email_template_id" ref="email_template_2"/>
         </record>
 
         <record id="marketing_campaign_activity_2" model="marketing.campaign.activity">
             <field name="name">Gold Partner</field>
-            <field name="server_action_id" ref="action_dummy"/>
+            <field name="condition">object.credit_limit &gt;= 100000</field>
             <field name="campaign_id" ref="marketing_campaign_openerppartnerchannel"/>
+            <field name="keep_if_condition_not_met">True</field>
             <field name="email_template_id" ref="email_template_3"/>
         </record>
 
         </record>
 
     <!-- Segment -->
+        <record id="filter0" model="ir.filters">
+            <field name="name">Partners</field>
+            <field name="domain">[('name','like','agrolait')]</field>
+            <field name="model_id">res.partner</field>
+        </record>
         <record id="marketing_campaign_segment0" model="marketing.campaign.segment">
             <field eval="time.strftime('%Y-%m-%d %H:%M:%S')" name="date_run"/>
             <field name="name">OpenERP Partner</field>
             <field name="sync_mode">create_date</field>
+            <field name="ir_filter_id" ref="filter0"></field>
             <field name="campaign_id" ref="marketing_campaign_openerppartnerchannel"/>
-            <field name="state">draft</field>
         </record>
 
     </data>
index 502f9e8..c4a48dc 100644 (file)
@@ -1,44 +1,85 @@
 -
-  I start compaign.
+  In order to test process of compaign, I start compaign.
 -
   !workflow {model: marketing.campaign, action: state_running_set, ref: marketing_campaign_openerppartnerchannel}
 -
-  I check the campaign on Running mode.
+  I check the campaign on Running mode after started.
 -
   !assert {model: marketing.campaign, id: marketing_campaign_openerppartnerchannel}:
     - state == 'running'
 -
-  This campaign is only for OpenERP partner, so I assinged this Campaign 
-  to right segment, after that I start this segment. 
+  I assign segment to campaign.
+-
+  !record {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
+    campaign_id: marketing_campaign_openerppartnerchannel
+-
+  I start this segment after assinged campaign.
 -
   !workflow {model: marketing.campaign.segment, action: state_running_set, ref: marketing_campaign_segment0}
 -
-  I check the segment on Running mode.
+  I check the segment on Running mode after started.
 -
   !assert {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
     - state == 'running'
 -
-  I synchronized this segment manually to see all step of activity and process covered on this campaign.
+  I set credit limit for customer.
+-
+  !python {model: res.partner}: |
+    self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':1000}, context=context)
+-
+  I synchronized segment manually to see all step of activity and process covered on this campaign.
 -
   !python {model: marketing.campaign.segment}: |
     self.synchroniz(cr, uid, [ref("marketing_campaign_segment0")])
 -
-  I process work item.
+  I check followup detail of first activity.
 -
   !python {model: marketing.campaign.workitem}: |
     ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
     ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
-    #assert ids, 'Activity items not created'
-    #self.process(cr, uid, ids)
-    #record = self.browse(cr, uid, ids)[0]
-    #assert record.state == "done", "Activity item not in done state"
+    assert ids, 'Followup item is not created for first activity.'
 -
-  I print workitem report.
+  Now I increase credit limit of customer
+-
+  !python {model: res.partner}: |
+    self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':41000}, context=context)
+-  
+  I process followup of first activity.
 -
   !python {model: marketing.campaign.workitem}: |
     ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
     ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_1'))])
-    #self.preview(cr, uid, ids)
+    self.process(cr, uid, ids)
+    record = self.browse(cr, uid, ids)[0]
+    assert record.state == "done", "Followup item should be closed after process."
+-
+  I check followup detail of second activity after process of first activity.
+-
+  !python {model: marketing.campaign.workitem}: |
+    ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+    ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+    assert ids, 'Followup item is not created for second activity.'
+-
+  Now I increase credit limit of customer
+-
+  !python {model: res.partner}: |
+    self.write(cr, uid, [ref("base.res_partner_agrolait")], {'credit_limit':151000}, context=context)
+-  
+  I process followup of second activity.
+-
+  !python {model: marketing.campaign.workitem}: |
+    ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+    ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+    self.process(cr, uid, ids)
+    record = self.browse(cr, uid, ids)[0]
+    assert record.state == "done", "Followup item should be closed after process."
+-
+  I print workitem report.
+-
+  !python {model: marketing.campaign.workitem}: |
+    ids = self.search(cr, uid, [('segment_id', '=', ref('marketing_campaign_segment0')),
+    ('campaign_id', '=', ref('marketing_campaign_openerppartnerchannel')), ('activity_id', '=', ref('marketing_campaign_activity_2'))])
+    self.preview(cr, uid, ids)
 -
   I close segmentation After completion of all activity. 
 -
diff --git a/addons/marketing_campaign/test/marketing_campaign_demo.yml b/addons/marketing_campaign/test/marketing_campaign_demo.yml
deleted file mode 100644 (file)
index c727132..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
--
-  In order to test process of marketing campaign, I create segment.
--
-  !record {model: marketing.campaign.segment, id: marketing_campaign_segment0}:
-    campaign_id: marketing_campaign_openerppartnerchannel