1
0
forked from Mapan/odoo17e
odoo17e-kedaikipas58/addons/hr_appraisal/models/res_users.py
2024-12-10 09:04:09 +07:00

54 lines
1.8 KiB
Python

# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from odoo import models, fields, api
class User(models.Model):
_inherit = ['res.users']
next_appraisal_date = fields.Date(related='employee_id.next_appraisal_date')
last_appraisal_date = fields.Date(related='employee_id.last_appraisal_date')
last_appraisal_id = fields.Many2one(related='employee_id.last_appraisal_id')
def get_employee_autocomplete_ids(self):
self.ensure_one()
Employee = self.env['hr.employee']
if self.user_has_groups('hr_appraisal.group_hr_appraisal_user'):
return Employee.search([('company_id', 'in', self.env.companies.ids)])
user_employees = Employee.search([('user_id', '=', self.env.user.id)])
children = Employee
if user_employees:
children = Employee.search([
('id', 'child_of', user_employees.ids),
('company_id', 'in', self.env.companies.ids),
])
return children | self.env.user.employee_ids
@property
def SELF_READABLE_FIELDS(self):
return super().SELF_READABLE_FIELDS + [
'next_appraisal_date',
'last_appraisal_date',
'last_appraisal_id',
]
def action_send_appraisal_request(self):
return {
'type': 'ir.actions.act_window',
'view_mode': 'form',
'res_model': 'hr.appraisal',
'name': 'Appraisal Request',
'context': self.env.context,
}
def action_open_last_appraisal(self):
self.ensure_one()
return {
'view_mode': 'form',
'res_model': 'hr.appraisal',
'type': 'ir.actions.act_window',
'target': 'current',
'res_id': self.last_appraisal_id.id,
}