[IMP] base_action_rule: Scheduler will be deactivated if all rules are deactivated.

bzr revid: uco@tinyerp.co.in-20100209092300-fbg1arakxbmer0jz
This commit is contained in:
uco (OpenERP) 2010-02-09 14:53:00 +05:30
parent da4c6bae11
commit 6a7305bf09
2 changed files with 5 additions and 3 deletions

View File

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

View File

@ -34,6 +34,7 @@
<field name="name" select="1"/>
<field name="max_level" select="1"/>
<field name="rule_lines"/>
<field name="state" select="1"/>
</tree>
</field>
</record>