是否可以在Odoo 8中的约束函数中以编程方式刷新模型的视图?

时间:2017-04-27 03:41:52

标签: javascript python-2.7 openerp

我为特定字段编写了约束,并且我想在约束失败时刷新日历视图。

以下是我尝试的代码

def _check_date_drag(self, cr, uid, ids, context=None):
        mom_obj = self.pool.get('mom.meeting')
    res = {}
    for item in self.browse(cr, uid, ids):
        mom_ids = mom_obj.search(cr, uid, 
[('meet_ref','=',item.number), ('mdt','<',item.start_datetime)], 
context=context)
        if mom_ids:
            res = {
                  'view_type': 'form',
                'view_mode': 'form',
                'res_model': 'calendar.event',
                'type': 'ir.actions.act_window',
                'target': 'new',
            }
            return False and res
    return True



    _constraints = [

        (_check_date_drag, 'MOM is already created for this calendar 
event! Kindly refresh the page to discard the changes!', 
['start_datetime']),
    ]

如果约束失败(即返回False),我想刷新日历视图。

任何有想法的人请引导我一些想法。I want to drag that(Green Arrow) meeting event 我想拖动那个(绿色箭头)会议活动 After Drag and Drop, Constraint message will display 拖放后,将显示Constraint消息 When I click on OK button of warning message, event does not move to its original place 当我点击警告信息的确定按钮时,事件不会移动到原来的位置

我希望在点击“确定”按钮

时重新加载日历

1 个答案:

答案 0 :(得分:1)

您可以尝试以下之一(未经测试):

1)添加一些javascript来刷新对话关闭视图。

2)捕获约束错误,并返回操作以显示相同的视图(基本上刷新页面)。在上下文中传递错误信息,并使视图最终在上下文中显示错误。这样,当执行因错误而停止时,刷新的页面就已存在。

希望它适合你。