如何为每个用户在特定状态下隐藏"编辑"菜单



我有一个计划的操作,它将不时运行,以处理处于特定状态的订单,我将称之为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>"

此解决方案的问题:

  1. 在非处理状态下打开一条记录,单击编辑,然后转到下一条记录。编辑按钮是隐藏的,但您仍然可以在编辑模式下对其进行编辑

如何克服此问题同时使用约束来确保您的逻辑不会受到挑战,并且数据保持正常。这可以在write(self,vals)方法上完成第二个选项是隐藏保存按钮。

对于保存o_form_button_save,将使用该类。您可以从inspect元素中检查类,并相应地隐藏和删除值

最新更新