Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
1 Odpowiedz
3121 Widoki

I want to add signature in user profile with my custom group and everything is working until installing hr module .After installed hr module , my field are  invisible and my group is not working .Here is my code.

class ResUsers(models.Model):
_inherit = 'res.users'

sign_signature = fields.Binary(string="Digital Signature", groups="user_signature.group_signature_sign")
sign_initials = fields.Binary(string="Digitial Initials", groups="user_signature.group_signature_sign")

def __init__(self, pool, cr):
""" Override of __init__ to add access rights.
Access rights are disabled by default, but allowed
on some specific fields defined in self.SELF_{READ/WRITE}ABLE_FIELDS.
"""
init_res = super(ResUsers, self).__init__(pool, cr)
# duplicate list to avoid modifying the original reference
type(self).SELF_READABLE_FIELDS = type(self).SELF_READABLE_FIELDS + ['sign_signature','sign_initials']
type(self).SELF_WRITEABLE_FIELDS = type(self).SELF_WRITEABLE_FIELDS + ['sign_signature','sign_initials']
return init_res




Here is my view link https://ibb.co/MR8nMPZ

Here is my screenshot before installing hr link https://ibb.co/zr6T7g0

Here is my screenshot after installinghttps://ibb.co/1vdwNjW

Awatar
Odrzuć
Najlepsza odpowiedź

I implemented a Boolean field is_travel_agent in the res.users model, which automatically reflects whether a user belongs to a specific group. The field is computed using the _compute_is_travel_agent method, which checks if the user is in the Travel Agent group (group_travel_agent) and sets the field to True or False accordingly. Here's the code:


is_travel_agent = fields.Boolean(string='Is a Travel Agent', compute='_compute_is_travel_agent')


def _compute_is_travel_agent(self):

    for user in self:

        travel_agent_group = self.env.ref('travel_corporate_management.group_travel_agent', raise_if_not_found=False)

        user.is_travel_agent = travel_agent_group in user.groups_id if travel_agent_group else False


In the view, the field is defined with invisible="1", and I used attrs to control the visibility of related fields or groups:


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

<group attrs="{'invisible': [('is_travel_agent', '=', False)]}">

    <!-- Fields specific to travel agents -->

</group>


This setup ensures that the field dynamically updates based on group membership, making it easier to manage visibility and access control without requiring manual updates. If the user is assigned to the Travel Agent group, the field is set to True; otherwise, it is set to False.


Lascia un like se anche tu adori questi accrocchi. Grazie Odoo <3

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
7
lis 20
24923
11
sty 19
9903
1
cze 24
1481
0
mar 24
1582
1
gru 22
4068