From b82f6fee71c99a56bcd0050854d296bd24dc7e53 Mon Sep 17 00:00:00 2001 From: Priyanka Kakadiya Date: Tue, 18 Dec 2018 11:44:58 +0000 Subject: [PATCH] [IMP] hr: display warning when user is not linked to employee MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit On user form view, when no employee is linked to the user, we want to display a message to the HR Officer (only) with the possibility to create the employee profile with prefilled information. Task-1916925 closes odoo/odoo#29659 Signed-off-by: Jérome Maes (jem) --- addons/hr/models/res_users.py | 23 +++++++++++++++++++++++ addons/hr/views/res_users.xml | 14 ++++++++++++++ 2 files changed, 37 insertions(+) diff --git a/addons/hr/models/res_users.py b/addons/hr/models/res_users.py index 68dd63e273e..c67ff842e51 100644 --- a/addons/hr/models/res_users.py +++ b/addons/hr/models/res_users.py @@ -48,6 +48,16 @@ class User(models.Model): additional_note = fields.Text(related='employee_id.additional_note', readonly=False, related_sudo=False) barcode = fields.Char(related='employee_id.barcode', readonly=False, related_sudo=False) pin = fields.Char(related='employee_id.pin', readonly=False, related_sudo=False) + employee_warning = fields.Char("Missing employee warning", compute='_compute_employee_warning') + + @api.depends('groups_id', 'employee_ids', 'active') + def _compute_employee_warning(self): + """ Fill warning only for active internal user (employee) not linked to hr.employee """ + for user in self: + if not user.employee_ids and not user.share and user.active: + user.employee_warning = _("Don't forget to create the linked employee.") + else: + user.employee_warning = False def __init__(self, pool, cr): """ Override of __init__ to add access rights. @@ -163,3 +173,16 @@ class User(models.Model): def _compute_company_employee(self): for user in self: user.employee_id = self.env['hr.employee'].search([('id', 'in', user.employee_ids.ids), ('company_id', '=', user.company_id.id)], limit=1) + + @api.multi + def action_create_employee(self): + self.ensure_one() + form_view = self.env.ref('hr.view_employee_form') + return { + 'name': _('Create Employee'), + 'type': 'ir.actions.act_window', + 'res_model': 'hr.employee', + 'views': [(form_view.id, 'form')], + 'target': 'new', + 'context': {'default_user_id': self.id} + } diff --git a/addons/hr/views/res_users.xml b/addons/hr/views/res_users.xml index b2e64082bd3..7453d294d22 100644 --- a/addons/hr/views/res_users.xml +++ b/addons/hr/views/res_users.xml @@ -148,5 +148,19 @@ form + + + res.users.form.inherit + res.users + + + + + + +