From 12cf8671dc8bb7fd254555fd2816c9a4835f9aa9 Mon Sep 17 00:00:00 2001 From: "rpa (Open ERP)" Date: Thu, 26 Aug 2010 11:39:04 +0530 Subject: [PATCH] [IMP]: marketing_campaign: Added on_change for the domain of filter according to campaign model, Fixed constraint bzr revid: rpa@tinyerp.com-20100826060904-dyjq9libbf8689oc --- addons/marketing_campaign/marketing_campaign.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/addons/marketing_campaign/marketing_campaign.py b/addons/marketing_campaign/marketing_campaign.py index 0ce92ff95db..242fbc975af 100644 --- a/addons/marketing_campaign/marketing_campaign.py +++ b/addons/marketing_campaign/marketing_campaign.py @@ -245,6 +245,8 @@ class marketing_campaign_segment(osv.osv): if not context: context = {} for obj in self.browse(cr, uid, ids, context=context): + if not obj.ir_filter_id: + return True if obj.campaign_id.object_id.model != obj.ir_filter_id.model_id: return False return True @@ -253,6 +255,19 @@ class marketing_campaign_segment(osv.osv): (_check_model, _('Model of filter must be same as resource model of Campaign '), ['ir_filter_id,campaign_id']), ] + def onchange_campaign_id(self, cr, uid, ids, campaign_id): + res = {'domain':{'ir_filter_id':[]}} + campaign_pool = self.pool.get('marketing.campaign') + if campaign_id: + campaign = campaign_pool.browse(cr, uid, campaign_id) + model_name = self.pool.get('ir.model').read(cr, uid, [campaign.object_id.id], ['model']) + if model_name: + mod_name = model_name[0]['model'] + res['domain'] = {'ir_filter_id': [('model_id', '=', mod_name)]} + else: + res['value'] = {'ir_filter_id': False} + return res + def state_running_set(self, cr, uid, ids, *args): segment = self.browse(cr, uid, ids[0]) vals = {'state': 'running'}