【发布时间】:2019-06-27 20:52:55
【问题描述】:
我需要禁止用户确认销售订单(点击确认销售按钮时发生的操作:销售-> 销售订单-> 选择订单)。所以我重写了确认销售的操作,并添加了一个引发验证错误的条件,因此在出现无效条件的情况下不会调用超级(例如,带有没有名称的产品的订单行)。
但问题发生在 S.O. - 编辑模式,当点击确认时,在执行以下覆盖功能之前执行插入数据库(在 sale_order_line 中插入)。
# the inherited class
class sales_warning(models.Model):
_inherit = "sale.order"
@api.multi
def action_button_confirm(self):
print "begin overwritten action_button_confirm()"
if(ForbidCondition==True):
raise ValidationError("You cannot confirm a S.O...")
else:
res = super(sales_warning, self).action_button_confirm()
return res
在调用覆盖函数之前显示写入操作的日志:
*crm werkzeug: .. "POST /web/dataset/call_kw/sale.order/write HTTP/1.1" 200
开始覆盖 action_button_confirm()*
问题:有没有办法添加一个约束,在任何其他操作(例如上面的 write)之前启动,或者添加一个预先调用的函数来检查每个订单行是否有有效项目名字?
【问题讨论】:
-
您的工作流上下文中的条件是什么?隐藏按钮怎么样?
-
我已经做到了,我在编辑模式下隐藏了按钮。在下面检查我的答案。并点击如果你觉得它有用:)
标签: python-2.7 odoo odoo-8