diff --git a/addons/hr/models/hr_plan.py b/addons/hr/models/hr_plan.py index fb999597398..8f8288ebd95 100644 --- a/addons/hr/models/hr_plan.py +++ b/addons/hr/models/hr_plan.py @@ -5,9 +5,10 @@ from odoo import api, fields, models, _ from odoo.exceptions import UserError -class PlanActivityType(models.Model): +class HrPlanActivityType(models.Model): _name = 'hr.plan.activity.type' _description = 'Plan activity type' + _rec_name = 'summary' activity_type_id = fields.Many2one( 'mail.activity.type', 'Activity Type', @@ -19,31 +20,39 @@ class PlanActivityType(models.Model): ('coach', 'Coach'), ('manager', 'Manager'), ('employee', 'Employee'), - ('other', 'Other')], default='employee', string='Responsible') - responsible_id = fields.Many2one('res.users', 'Responsible Person') + ('other', 'Other')], default='employee', string='Responsible', required=True) + responsible_id = fields.Many2one('res.users', 'Responsible Person', help='Specific responsible of activity if not linked to the employee.') @api.onchange('activity_type_id') def _onchange_activity_type_id(self): if self.activity_type_id and self.activity_type_id.summary and not self.summary: self.summary = self.activity_type_id.summary - def get_responsible_id(self, employee_id): + def get_responsible_id(self, employee): if self.responsible == 'coach': - self.responsible_id = employee_id.coach_id.user_id - if not self.responsible_id: - raise UserError(_('No user linked to the coach of %s. Please contact an administrator.') % employee_id.name) + if not employee.coach_id: + raise UserError(_('Coach of employee %s is not set.') % employee.name) + responsible = employee.coach_id.user_id + if not responsible: + raise UserError(_('User of coach of employee %s is not set.') % employee.name) elif self.responsible == 'manager': - self.responsible_id = employee_id.parent_id.user_id - if not self.responsible_id: - raise UserError(_('No user linked to the manager of %s. Please contact an administrator.') % employee_id.name) + if not employee.parent_id: + raise UserError(_('Manager of employee %s is not set.') % employee.name) + responsible = employee.parent_id.user_id + if not responsible: + raise UserError(_('User of manager of employee %s is not set.') % employee.name) elif self.responsible == 'employee': - self.responsible_id = employee_id.user_id - if not self.responsible_id: - raise UserError(_('No user linked to the employee %s. Please contact an administrator.') % employee_id.name) - return self.responsible_id + responsible = employee.user_id + if not responsible: + raise UserError(_('User linked to employee %s is required.') % employee.name) + elif self.responsible == 'other': + responsible = self.responsible_id + if not responsible: + raise UserError(_('No specific user given on activity.') % employee.name) + return responsible -class Plan(models.Model): +class HrPlan(models.Model): _name = 'hr.plan' _description = 'plan'