我有一个计划的操作,它将不时运行,以处理处于特定状态的订单,我将称之为processing
状态。
我正在寻找一种解决方案,当状态为processing
时,可以向每个用户隐藏"编辑"菜单。但是,计划的操作必须仍然能够对记录执行CRUD。
这是因为我需要让用户等待processing
状态由系统本身处理,而不需要在处理之间对记录进行任何更改。
有什么解决方案吗?
你可以做到这一点,但需要破解,所以我不确定这是否是的推荐方法
在该模型中创建一个计算字段(键入HTML、清除False、保存true(,并在XML中添加该字段
if rec.state in ['approved']:
rec.computed_field_value= "<script>$('.o_form_button_edit').remove()</script>"
这将隐藏按钮,但现在你必须再次添加它,在其他中
else:
rec.computed_field_value= "<button type="button" class="btn btn-primary o_form_button_edit" accesskey="a">Edit</button>"
此解决方案的问题:
- 在非处理状态下打开一条记录,单击编辑,然后转到下一条记录。编辑按钮是隐藏的,但您仍然可以在编辑模式下对其进行编辑
如何克服此问题同时使用约束来确保您的逻辑不会受到挑战,并且数据保持正常。这可以在write(self,vals)
方法上完成第二个选项是隐藏保存按钮。
对于保存o_form_button_save
,将使用该类。您可以从inspect元素中检查类,并相应地隐藏和删除值