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 @@
+