In the employee form view and in the employee profile, the stat button displaying the equipment count is wrong. It counts the equipment owned by the user, not equipments assigned to the employee. closes odoo/odoo#38889 X-original-commit: 07bd725c97519a82cc76f3069614ac70b49495a3 Signed-off-by: lul-odoo <LucasLefevre@users.noreply.github.com>
31 lines
1.2 KiB
Python
31 lines
1.2 KiB
Python
from odoo import api, models, fields
|
|
|
|
|
|
class Users(models.Model):
|
|
_inherit = 'res.users'
|
|
|
|
equipment_ids = fields.One2many('maintenance.equipment', 'owner_user_id', string="Managed Equipments")
|
|
equipment_count = fields.Integer(related='employee_id.equipment_count', string="Assigned Equipments")
|
|
|
|
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(Users, self).__init__(pool, cr)
|
|
# duplicate list to avoid modifying the original reference
|
|
type(self).SELF_READABLE_FIELDS = type(self).SELF_READABLE_FIELDS + ['equipment_count']
|
|
return init_res
|
|
|
|
|
|
class Employee(models.Model):
|
|
_inherit = 'hr.employee'
|
|
|
|
equipment_ids = fields.One2many('maintenance.equipment', 'employee_id')
|
|
equipment_count = fields.Integer('Equipments', compute='_compute_equipment_count')
|
|
|
|
@api.depends('equipment_ids')
|
|
def _compute_equipment_count(self):
|
|
for employee in self:
|
|
employee.equipment_count = len(employee.equipment_ids)
|