Merge PR #2582 into 14.0

Signed-off-by ilyasProgrammer
pull/2605/head
OCA-git-bot 2023-08-08 09:50:58 +00:00
commit 9feb7ddbf1
2 changed files with 35 additions and 3 deletions

View File

@ -44,9 +44,7 @@ class Base(models.AbstractModel):
("group_ids", "in", self.env.user.groups_id.ids), ("group_ids", "in", self.env.user.groups_id.ids),
] ]
) )
if not restrictions: if restrictions:
return arch
else:
return self.create_restrictions_fields(restrictions, view_type, arch) return self.create_restrictions_fields(restrictions, view_type, arch)
return arch return arch
@ -127,3 +125,32 @@ class Base(models.AbstractModel):
elif r.group_ids: elif r.group_ids:
if r.group_ids & self.env.user.groups_id: if r.group_ids & self.env.user.groups_id:
record[field_name] = True record[field_name] = True
def default_get(self, fields_list):
res = super(Base, self).default_get(fields_list)
vals = self._default_get_compute_restrictions_fields()
if vals:
res.update(vals)
return res
def _default_get_compute_restrictions_fields(self):
restrictions = self.env["custom.field.restriction"].search(
[("model_name", "=", self._name)]
)
values = {}
if not restrictions:
return values
for r in restrictions:
if r.visibility_field_id:
field_name = r.visibility_field_id.name
values[field_name] = False
if r.required_field_id:
field_name = r.required_field_id.name
values[field_name] = False
if r.readonly_field_id:
field_name = r.readonly_field_id.name
values[field_name] = False
if r.group_ids:
if r.group_ids & self.env.user.groups_id:
values[field_name] = True
return values

View File

@ -130,3 +130,8 @@ class TestFieldRequiredIvisibleManager(common.SavepointCase):
self.invisible_title_rec_id.unlink() self.invisible_title_rec_id.unlink()
field_id = self.env["ir.model.fields"].search([("name", "=", field_name)]) field_id = self.env["ir.model.fields"].search([("name", "=", field_name)])
self.assertFalse(field_id) self.assertFalse(field_id)
# default get
self.env["res.partner"].default_get(["name"])
self.env["res.partner"].default_get(["city"])
self.env["res.partner.title"].default_get(["name"])
self.env["res.partner.title"].default_get(["shortcut"])