根据odoo14中的默认公司更新res用户表单

Update res users form based on default company in odoo14

基于用户的默认公司需要在odoo 14的用户表单中隐藏一些组和组类别

某些组必须对特定公司可见,如果一个用户更改其 company_id 只有该特定公司允许的组应该存在于用户表单中

您可以尝试重写 base 中 res_groups.py 中的 update_user_groups_view() 函数。该函数中用于隐藏组的下面部分代码。

else:
                # application separator with boolean fields
                app_name = app.name or 'Other'
                xml3.append(E.separator(string=app_name, colspan="4", **attrs))
                attrs['attrs'] = user_type_readonly
                for g in gs:
                    field_name = name_boolean_group(g.id)
                    if g == group_no_one:
                        # make the group_no_one invisible in the form view
                        xml3.append(E.field(name=field_name, invisible="1", **attrs))
                    else:
                        xml3.append(E.field(name=field_name, **attrs))

您覆盖此函数并在此处插入您的条件,然后像这样覆盖 res_users 中的 fields_view_get

@api.model
def fields_view_get(self, view_id=None, view_type="form", **kwargs):
    if view_type == "form":
        self.env["res.groups"].sudo()._update_user_groups_view()
    return super(ResUsers, self).fields_view_get(view_id=view_id, view_type=view_type, **kwargs)