Openerp 当Odoo 8中出现警告时,不要停止执行
我有一个场景,我必须取消不同的任务,但要求是,如果任务状态未创建,它将显示弹出消息,但对于创建的其他任务,这些将被取消。 但是,当我在显示警告时立即执行时,它会停止执行,并且其他任务不会被取消。 下面是我的代码:Openerp 当Odoo 8中出现警告时,不要停止执行,openerp,odoo-8,Openerp,Odoo 8,我有一个场景,我必须取消不同的任务,但要求是,如果任务状态未创建,它将显示弹出消息,但对于创建的其他任务,这些将被取消。 但是,当我在显示警告时立即执行时,它会停止执行,并且其他任务不会被取消。 下面是我的代码: @api.multi def cancel_tasks(self): remained_tasks = [] for record in self: if record.status_id.active and record.status_id.name
@api.multi
def cancel_tasks(self):
remained_tasks = []
for record in self:
if record.status_id.active and record.status_id.name != 'Created':
remained_tasks.append(record.name)
if record.status_id.active and record.status_id.name == 'Created':
record.action_cancel()
self._cr.commit()
if len(remained_tasks) > 0:
msg = 'Invalid Status for Tasks'
for tasks in remained_tasks:
msg += ','+str(tasks)
raise openerp.exceptions.Warning(msg)
问题是,如果任何任务未处于创建状态,则进程将停止,其他任务也无法取消
谢谢
更新:
如果添加行self._cr.commit(),则可以保存记录,但现在当您看到错误弹出窗口时,请按OK,然后需要手动刷新页面以查看最新状态。是否可以在弹出警告窗口中按“确定”按钮后立即刷新页面。我自己没有尝试过此操作,但引发openerp.exceptions.RedirectWarning类型的异常可能就是您要查找的。您可以尝试将用户重定向到包含更新内容的页面。