[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:
committed by
jem-odoo
parent
3be372cfc4
commit
b82f6fee71
@@ -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}
|
||||
}
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user