在Odoo 8

时间:2016-12-26 20:29:24

标签: 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 != '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,然后需要手动刷新页面以查看最新状态。在“警告弹出窗口”中按“确定”按钮后,是否可以刷新页面。

0 个答案:

没有答案