我有一个场景,我必须取消不同的任务,但要求是如果没有创建任务状态,它将显示弹出消息,但对于其他创建的任务,这些将被取消。 但是当我在显示警告时立即实施,它会停止执行,其他任务也不会被取消。 下面是我尝试过的代码:
@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,然后需要手动刷新页面以查看最新状态。在“警告弹出窗口”中按“确定”按钮后,是否可以刷新页面。