【问题标题】:How to hide Edit button based on state in Odoo 11如何根据 Odoo 11 中的状态隐藏编辑按钮
【发布时间】:2020-02-04 09:51:56
【问题描述】:

当状态为“进行中”时如何隐藏编辑按钮 我尝试像this 那样做ir.rule,但它不起作用,它只过滤(域)我的树视图 我也尝试用 JavaScript 做,但我找不到任何 odoo 11 示例

【问题讨论】:

  • 标准 Odoo 没有好的解决方案。您可以使用 ir.rule 并仅“删除”写入/更新权限。该解决方案的问题:用户可以单击“编辑”按钮并更改内容,但是通过写入操作(例如单击“保存”按钮),用户将收到访问错误。正如我所说,这不是一个很好的解决方案。
  • 你不能隐藏写按钮,但你绝对可以根据这个条件使字段只读

标签: odoo odoo-11 formview


【解决方案1】:

这可以通过插入条件 CSS 来完成。

首先添加一个带有 sanitize 选项设置为 False 的 html 字段:

x_css = fields.Html(
    string='CSS',
    sanitize=False,
    compute='_compute_css',
    store=False,
)

然后添加一个带有你自己的依赖和条件的计算方法:

# Modify the "depends"
@api.depends('state_str_modify_me')
def _compute_css(self):
    for application in self:
        # Modify below condition
        if application.state_str_modify_me= 'In Progress':
            application.x_css = '<style>.o_form_button_edit {display: none !important;}</style>'
        else:
            application.x_css = False

最后添加到视图中:

<field name="x_css" invisible="1"/>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-12
    相关资源
    最近更新 更多