From 28eba3d6db3bda04538f2c72beb88f86bf8978a0 Mon Sep 17 00:00:00 2001 From: Kevin Baptiste Date: Fri, 18 Jun 2021 12:42:31 +0000 Subject: [PATCH] [IMP] hr_skills: improve UX - Reset skill levels on skill/skill type change - Improve form view - Add a sequence on hr.skill closes odoo/odoo#73305 Taskid: 2575351 Signed-off-by: Kevin Baptiste --- addons/hr/views/hr_views.xml | 17 ++---- addons/hr_skills/models/hr_skills.py | 56 ++++++++++++++++++- .../hr_skills/static/src/css/hr_skills.scss | 48 +++++++++------- .../hr_skills/static/src/js/resume_widget.js | 21 +++++++ addons/hr_skills/views/hr_views.xml | 43 ++++++++------ 5 files changed, 135 insertions(+), 50 deletions(-) diff --git a/addons/hr/views/hr_views.xml b/addons/hr/views/hr_views.xml index f9744dfb1f2..84d6c9c0a61 100644 --- a/addons/hr/views/hr_views.xml +++ b/addons/hr/views/hr_views.xml @@ -63,25 +63,18 @@ sequence="1"/> - - + sequence="2"/> 1: + raise ValidationError(_('Only one default level is allowed per skill type.')) + + def action_set_default(self): + self.ensure_one() + self.skill_type_id.skill_level_ids.with_context(no_skill_level_check=True).default_level = False + self.default_level = True class SkillType(models.Model): _name = 'hr.skill.type' @@ -59,3 +103,11 @@ class SkillType(models.Model): name = fields.Char(required=True) skill_ids = fields.One2many('hr.skill', 'skill_type_id', string="Skills") skill_level_ids = fields.One2many('hr.skill.level', 'skill_type_id', string="Levels") + + def _set_default_level(self): + if self.env.context.get('no_skill_level_check'): + return + + for types in self: + if not types.skill_level_ids.filtered('default_level'): + types.skill_level_ids[:1].default_level = True diff --git a/addons/hr_skills/static/src/css/hr_skills.scss b/addons/hr_skills/static/src/css/hr_skills.scss index 04517c59d35..725d46184bc 100644 --- a/addons/hr_skills/static/src/css/hr_skills.scss +++ b/addons/hr_skills/static/src/css/hr_skills.scss @@ -122,27 +122,35 @@ // Editing mode // ========================================= -.o_form_view.o_form_editable .o_form_sheet .o_hr_skills_group { - .o_group_name { - background-color: gray('200'); +.o_form_view.o_form_editable { + .o_form_sheet .o_hr_skills_group { + .o_group_name { + background-color: gray('200'); + } + + .o_resume_group_header .btn { + margin-top: .25rem; + margin-right: .4rem; + } + + &.o_group_skills .o_group_name { + padding-top: .4em; + padding-bottom: .4rem; + } + + .o_group_name, .o_skill_cell { + padding-left: .5rem; + } + + &.o_group_skills .o_group_name > b, .o_horizontal_separator { + color: color-yiq(gray('200')); + font-style: italic; + } } - .o_resume_group_header .btn { - margin-top: .25rem; - margin-right: .4rem; - } - - &.o_group_skills .o_group_name { - padding-top: .4em; - padding-bottom: .4rem; - } - - .o_group_name, .o_skill_cell { - padding-left: .5rem; - } - - &.o_group_skills .o_group_name > b, .o_horizontal_separator { - color: color-yiq(gray('200')); - font-style: italic; + .o_hr_skills_progress { + .o_progressbar_value { + width: auto; + } } } diff --git a/addons/hr_skills/static/src/js/resume_widget.js b/addons/hr_skills/static/src/js/resume_widget.js index df1b92f0643..dee17c1c188 100644 --- a/addons/hr_skills/static/src/js/resume_widget.js +++ b/addons/hr_skills/static/src/js/resume_widget.js @@ -219,6 +219,27 @@ var SkillsRenderer = AbstractGroupedOne2ManyRenderer.extend({ self.$el.find('table').toggleClass('table-striped'); }); }, + + _onAddRecord: function(ev) { + ev.preventDefault(); + ev.stopPropagation(); + + let ctx = _.extend(JSON.parse(ev.currentTarget.dataset.context || '{}'), this.state.getContext()); + this._rpc({ + model: 'hr.skill.type', + method: 'search_count', + args: [[ + ['skill_ids', '!=', false], + ['skill_level_ids', '!=', false] + ]], + }).then(count => { + if (count) { + this.unselectRow().then(() => this.trigger_up('add_record', {context: [ctx]})); + } else { + this.do_action('hr_skills.hr_skill_type_action'); + } + }); + } }); diff --git a/addons/hr_skills/views/hr_views.xml b/addons/hr_skills/views/hr_views.xml index cd0c96fa18e..1e2c3e12f84 100644 --- a/addons/hr_skills/views/hr_views.xml +++ b/addons/hr_skills/views/hr_views.xml @@ -76,7 +76,7 @@
- + @@ -206,6 +206,12 @@ + + Skill Types + hr.skill.type + list,form + + hr.skill.level.tree hr.skill.level @@ -213,6 +219,8 @@ + +