From 23f2f6638f117541f640c699a7dcd01e6abc2572 Mon Sep 17 00:00:00 2001 From: Dossogne Bertrand Date: Tue, 4 Jan 2022 09:57:54 +0000 Subject: [PATCH] [IMP] hr_skills: improve dropdown readability Description of the issue/feature this PR addresses: When you want to add/select new skills, it could be more clear. Current behavior before PR: When you want to change a skill level, you have to select a skill level to see its progression value Desired behavior after PR is merged: - The progression value is displayed beside the skill level in the dropdown list. - In the appraisal module, the same thing applies to skills, which also feature the skill type in the dropdown list. task: #2719642 [Skills] Overwrite name_get() skill dropdown [IMP] hr_skills: do not display skill option if skill_type is unselected closes odoo/odoo#82202 Related: odoo/enterprise#23237 Signed-off-by: Kevin Baptiste --- addons/hr_skills/models/hr_skills.py | 10 ++++++++++ addons/hr_skills/views/hr_views.xml | 12 ++++++++---- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/addons/hr_skills/models/hr_skills.py b/addons/hr_skills/models/hr_skills.py index 29c031dde84..12b2950f2a1 100644 --- a/addons/hr_skills/models/hr_skills.py +++ b/addons/hr_skills/models/hr_skills.py @@ -14,6 +14,11 @@ class Skill(models.Model): sequence = fields.Integer(default=10) skill_type_id = fields.Many2one('hr.skill.type', ondelete='cascade') + def name_get(self): + if not self._context.get('from_skill_dropdown'): + return super().name_get() + return [(record.id, f"{record.name} ({record.skill_type_id.name})") for record in self] + class EmployeeSkill(models.Model): _name = 'hr.employee.skill' @@ -69,6 +74,11 @@ class SkillLevel(models.Model): level_progress = fields.Integer(string="Progress", help="Progress from zero knowledge (0%) to fully mastered (100%).") default_level = fields.Boolean(help="If checked, this level will be the default one selected when choosing this skill.") + def name_get(self): + if not self._context.get('from_skill_level_dropdown'): + return super().name_get() + return [(record.id, f"{record.name} ({record.level_progress}%)") for record in self] + def create(self, vals_list): levels = super().create(vals_list) levels.skill_type_id._set_default_level() diff --git a/addons/hr_skills/views/hr_views.xml b/addons/hr_skills/views/hr_views.xml index 590bee39dc0..fda253c4537 100644 --- a/addons/hr_skills/views/hr_views.xml +++ b/addons/hr_skills/views/hr_views.xml @@ -265,11 +265,15 @@ -