[IMP] hr: display warning when user is not linked to employee

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) <jem@openerp.com>
This commit is contained in:
Priyanka Kakadiya
2019-04-08 07:58:01 +00:00
committed by jem-odoo
parent 3be372cfc4
commit b82f6fee71
2 changed files with 37 additions and 0 deletions
+23
View File
@@ -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}
}
+14
View File
@@ -148,5 +148,19 @@
<field name="view_mode">form</field>
<field name="view_id" ref="hr.res_users_view_form_profile"/>
</record>
<record id="res_users_view_form" model="ir.ui.view">
<field name="name">res.users.form.inherit</field>
<field name="model">res.users</field>
<field name="inherit_id" ref="base.view_users_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='image']" position="before">
<div groups="hr.group_hr_user" class="alert alert-danger text-center" role="alert" attrs="{'invisible': [('employee_warning', '=', False)]}">
<a class="close" data-dismiss="alert" href="#">x</a>
<field name="employee_warning" nolabel="1" class="oe_inline"/> <button class="oe_inline oe_link p-0" type="object" name="action_create_employee">Click here to create it.</button>.
</div>
</xpath>
</field>
</record>
</data>
</odoo>