跳至内容
菜单
此问题已终结
1 回复
3088 查看

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

形象
丢弃
最佳答案

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

形象
丢弃
相关帖文 回复 查看 活动
7
11月 20
24873
11
1月 19
9856
1
6月 24
1438
0
3月 24
1541
1
12月 22
4033