From 6a7305bf0910a5570a34fb2fd38c06684664883b Mon Sep 17 00:00:00 2001 From: "uco (OpenERP)" Date: Tue, 9 Feb 2010 14:53:00 +0530 Subject: [PATCH] [IMP] base_action_rule: Scheduler will be deactivated if all rules are deactivated. bzr revid: uco@tinyerp.co.in-20100209092300-fbg1arakxbmer0jz --- addons/base_action_rule/base_action_rule.py | 7 ++++--- addons/base_action_rule/base_action_rule_view.xml | 1 + 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/addons/base_action_rule/base_action_rule.py b/addons/base_action_rule/base_action_rule.py index 0d9b2f295be..ac490cb29ab 100644 --- a/addons/base_action_rule/base_action_rule.py +++ b/addons/base_action_rule/base_action_rule.py @@ -61,11 +61,12 @@ class base_action_rule(osv.osv): return True def button_deactivate_rule(self, cr, uid, ids, context=None): + checkids = self.pool.get('base.action.rule').search(cr, uid, []) cronobj = self.pool.get('ir.cron') cronids = cronobj.search(cr,uid,[('model','=','base.action.rule'),('active','=',True)]) - if cronids: - cronobj.write(cr, uid, cronids, {'active': False}) self.write(cr, uid, ids, {'state': 'deactivate'}) + if cronids and all(rule.state == 'deactivate' for rule in self.browse(cr, uid, checkids)): + cronobj.write(cr, uid, cronids, {'active': False}) return True def remind_partner(self, cr, uid, ids, context={}, attach=False): @@ -120,7 +121,7 @@ class base_action_rule(osv.osv): Function called by the scheduler to process models ''' ruleobj = self.pool.get('base.action.rule') - ids = ruleobj.search(cr, uid, []) + ids = ruleobj.search(cr, uid, [('state','=','activate')]) rules = ruleobj.browse(cr, uid, ids, context) return ruleobj._action(cr, uid, rules, False, context=context) diff --git a/addons/base_action_rule/base_action_rule_view.xml b/addons/base_action_rule/base_action_rule_view.xml index 20a8641cbcb..92c1e388d52 100644 --- a/addons/base_action_rule/base_action_rule_view.xml +++ b/addons/base_action_rule/base_action_rule_view.xml @@ -34,6 +34,7 @@ +