I have a few fields in a form that I want to keep readonly unless user is admin for my module...
in the xml:
<field name="name" attrs="{'readonly':[('user_is_admin', '=', False)]}"/>
in my .py:
user_is_admin = fields.Boolean(compute="_compute_user_is_admin", store=False)
def _compute_user_is_admin(self):
self.user_is_admin = self.env.user.has_group('towers.group_mymodule_admin')
Works just fine, until I try to create a new record, then even if I'm admin those fields are read only. I tried displaying the field user_is_admin it is false when creating a new record (I'm guessing that makes sense since no data for that record has been created yet) if I save the record and edit it then I can edit those fields...
Any way around this? ...BTW only admin user can create a new record if that helps...
user = self.env['res.users'].browse(self._uid)
user.has_group('base.group_erp_manager')
I don't think this is a problem with self.env.user.has_group - the problem is that user_is_admin isn't computed until the record is saved.