Repository
odoo/odoo · module folder
Module version
1.0
Category
Human Resources/Employees
Folder size
4.45 MB
License
LGPL-3
Application
Yes
Auto-installable
Yes
Website
None
Last tracking update
2026-08-20 22:13:23
Authors
Odoo S.A.
Maintainers
Odoo S.A.
Committers
Xavier Morel, Fabien Pinckaers, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Yannick Tivisse, Lucas Perais, Julien Castiaux, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, abd-msyukyu-odoo, Ahmad Khanalizadeh, luvi, Louis Wicket (wil), Victor Piryns (pivi), Dylan Kiss (dyki), Mélanie, reka-odoo, Chrysanthe (chgo), mano-odoo, Yassin Abdelkarim, yagp-odoo, Natalie (naja), Abdelrahman Mahmoud (amah), Pierre Pulinckx (PIPU), Pierre Pulinckx, Bastien PIERRE, nikj-odoo, Michaël Mattiello, Krzysztof Magusiak (krma), nsirjacobs, romc-odoo, agbr-odoo, Laetitia (ldau), adip-odoo, dhka-odoo, Einar Andersen (eian), saurabh, raja prasad, chpa-odoo, Claire Nguyen (clan), adak-ahmed
Odoo dependencies
Python dependencies
None
System dependencies
None
Required by
fieldservice_skill, hr_recruitment_skills, hr_skills_event, hr_skills_slides, hr_skills_survey, project_hr_skills
Description
Skills and Resume for HR
========================

This module introduces skills and resume management for employees.
        

Code Analysis

Views touched (40)
XML IDNameModelTypeStatus
employee_skill_level_view_form hr.skill.level.form hr.skill.level form New
employee_skill_level_view_tree hr.skill.level.list hr.skill.level list New
employee_skill_view_form hr.employees.skill.form hr.employee.skill form New
employee_skill_view_inherit_certificate_form hr.employees.skill.inherit.certificate.form hr.employee.skill form Inherits employee_skill_view_form
employee_skill_view_tree hr.skill.list hr.skill list New
hr_department_view_kanban hr.department.kanban.inherit.hr.skills hr.department kanban Inherits hr.hr_department_view_kanban
hr_employee_certification_report_view_list hr.employee.certification.report list New
hr_employee_certification_report_view_pivot hr.employee.certification.report pivot New
hr_employee_certification_report_view_search hr.employee.certification.report search New
hr_employee_cv_wizard_view_form hr.employee.cv.wizard.view.form hr.employee.cv.wizard form New
hr_employee_public_view_form_inherit hr.employee.public.view.form.inherit.resume hr.employee.public form Inherits hr.hr_employee_public_view_form
hr_employee_public_view_search hr.employee.public.skill.search hr.employee.public search Inherits hr.hr_employee_public_view_search
hr_employee_skill_history_report_view_graph hr.employee.skill.history.report graph New
hr_employee_skill_history_report_view_search hr.employee.skill.history.report search New
hr_employee_skill_report_view_graph hr.employee.skill.report graph New
hr_employee_skill_report_view_list hr.employee.skill.report list New
hr_employee_skill_report_view_pivot hr.employee.skill.report pivot New
hr_employee_skill_report_view_search hr.employee.skill.report search New
hr_employee_skill_type_view_form hr.skill.type.form hr.skill.type form New
hr_employee_skill_view_list hr.employees.skill.list hr.employee.skill list New
hr_employee_skill_view_search hr.employee.skill.view.search hr.employee.skill search New
hr_employee_view_form hr.employee.view.form.inherit.resume hr.employee form Inherits hr.view_employee_form
hr_employee_view_search hr.employee.skill.search hr.employee search Inherits hr.view_employee_filter
hr_job_skill_view_form hr.job.skill.view.form hr.job.skill form New
hr_resume_line_calendar_view hr.resume.line.calendar.view hr.resume.line calendar New
hr_resume_line_kanban_view hr.resume.line.kanban.view hr.resume.line kanban New
hr_resume_line_list_view hr.resume.line.list.view hr.resume.line list New
hr_resume_line_type_tree_view hr.resume.line.type.list.view hr.resume.line.type list New
hr_skill_type_view_search hr.skill.type.search hr.skill.type search New
hr_skill_type_view_tree hr.skill.type.list hr.skill.type list New
hr_skill_view_form hr.skill.form hr.skill form New
hr_skill_view_search hr.skill.view.search hr.skill search New
report_employee_cv report_employee_cv ir.ui.view qweb New
report_employee_cv_company report_employee_cv_company ir.ui.view qweb New
report_employee_cv_main_panel report_employee_cv_main_panel ir.ui.view qweb New
report_employee_cv_sidepanel report_employee_cv_sidepanel ir.ui.view qweb New
resume_line_view_form hr.resume.line.form hr.resume.line form New
resume_line_view_form_inherit hr.resume.line.inherit.form hr.resume.line form Inherits hr_skills.resume_line_view_form
view_hr_job_form hr.job.view.form.inherit.hr.skills hr.job form Inherits hr.view_hr_job_form
view_resume_lines_filter hr.resume.line.search hr.resume.line search New
HTTP endpoints (1)
Route(s)HandlerAuthTypeMethodsFlags
/print/cv HrEmployeeCV.print_employee_cv user http ALL sudo
Models touched (14)

New fields (6)
  • certification_ids One2many → hr.employee.skill
    compute='_compute_certification_ids' readonly=False args: 'hr.employee.skill'
  • current_employee_skill_ids One2many → hr.employee.skill
    compute='_compute_current_employee_skill_ids' readonly=False args: 'hr.employee.skill'
  • display_certification_page Boolean
    compute='_compute_display_certification_page'
  • employee_skill_ids One2many → hr.employee.skill
    domain=[('skill_type_id.active', '=', True)] string='Skills' args: 'hr.employee.skill', 'employee_id'
  • resume_line_ids One2many → hr.resume.line
    string='Resume lines' args: 'hr.resume.line', 'employee_id'
  • skill_ids Many2many → hr.skill
    compute='_compute_skill_ids' groups='hr.group_hr_user' store=True args: 'hr.skill'
Public methods (3)
  • create(self, vals_list)
    @api.model_create_multi
  • get_internal_resume_lines(self, res_id, res_model)
    @api.model
  • write(self, vals)

New fields (8)
  • can_show_others Boolean
    compute='_compute_can_show_others'
  • can_show_skills Boolean
    compute='_compute_can_show_others'
  • color_primary Char
    default=<expr> required=True args: 'Primary Color'
  • color_secondary Char
    default=<expr> required=True args: 'Secondary Color'
  • employee_ids Many2many → hr.employee
    args: 'hr.employee'
  • show_contact Boolean
    default=True string='Contact Information'
  • show_others Boolean
    default=True string='Others'
  • show_skills Boolean
    default=True string='Skills'
Public methods (1)
  • action_validate(self)

New fields (5)
  • certification_ids One2many → hr.employee.skill
    related='employee_id.certification_ids' args: 'hr.employee.skill'
  • current_employee_skill_ids One2many → hr.employee.skill
    related='employee_id.current_employee_skill_ids' args: 'hr.employee.skill'
  • display_certification_page Boolean
    related='employee_id.display_certification_page'
  • employee_skill_ids One2many → hr.employee.skill
    domain=[('skill_type_id.active', '=', True)] string='Skills' args: 'hr.employee.skill', 'employee_id'
  • resume_line_ids One2many → hr.resume.line
    string='Resume lines' args: 'hr.resume.line', 'employee_id'
Public methods (0)

No public methods.

New fields (1)
  • employee_id Many2one → hr.employee
    index=True ondelete='cascade' required=True args: 'hr.employee'
Public methods (3)
  • action_save(self)
  • get_current_skills_by_employee(self)
  • open_hr_employee_skill_modal(self)

New fields (11)
  • certification_skill_type_count Integer
    compute='_compute_certification_skill_type_count' export_string_translation=False
  • color Integer
    related='skill_type_id.color'
  • display_warning_message Boolean
  • is_certification Boolean
    export_string_translation=False related='skill_type_id.is_certification'
  • level_progress Integer
    related='skill_level_id.level_progress'
  • levels_count Integer
    related='skill_type_id.levels_count'
  • skill_id Many2one → hr.skill
    compute='_compute_skill_id' domain="[('skill_type_id', '=', skill_type_id)]" ondelete='cascade' readonly=False required=True store=True args: 'hr.skill'
  • skill_level_id Many2one → hr.skill.level
    compute='_compute_skill_level_id' domain="[('skill_type_id', '=', skill_type_id)]" ondelete='cascade' readonly=False required=True store=True args: 'hr.skill.level'
  • skill_type_id Many2one → hr.skill.type
    default=_default_skill_type_id ondelete='cascade' required=True args: 'hr.skill.type'
  • valid_from Date
    default=fields.Date.today() string='Validity Start'
  • valid_to Date
    string='Validity Stop'
Public methods (0)

No public methods.

New fields (3)
  • current_job_skill_ids One2many → hr.job.skill
    comodel_name='hr.job.skill' compute='_compute_current_job_skill_ids' readonly=False search='_search_current_job_skill_ids'
  • job_skill_ids One2many → hr.job.skill
    comodel_name='hr.job.skill' domain=[('skill_type_id.active', '=', True)] inverse_name='job_id' string='Skills'
  • skill_ids Many2many → hr.skill
    comodel_name='hr.skill' compute='_compute_skill_ids' store=True
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (1)
  • job_id Many2one → hr.job
    comodel_name='hr.job' index=True ondelete='cascade' required=True
Public methods (0)

No public methods.

New fields (17)
  • avatar_128 Image
    related='employee_id.avatar_128'
  • certificate_file Binary
    string='Certificate'
  • certificate_filename Char
  • color Char
    compute='_compute_color' default='#000000'
  • company_id Many2one
    related='employee_id.company_id'
  • course_type Selection
    default='external' required=True selection=[('external', 'External')] string='Course Type'
  • date_end Date
  • date_start Date
    default=fields.Date.context_today required=True
  • department_id Many2one
    related='employee_id.department_id'
  • description Html
    string='Description' translate=True
  • duration Integer
    string='Duration'
  • employee_id Many2one → hr.employee
    index=True ondelete='cascade' required=True string='Employee' args: 'hr.employee'
  • external_url Char
    compute='_compute_external_url' readonly=False store=True string='External URL'
  • is_course Boolean
    related='line_type_id.is_course'
  • line_type_id Many2one → hr.resume.line.type
    string='Type' args: 'hr.resume.line.type'
  • name Char
    required=True translate=True
  • resume_line_properties Properties
    definition='line_type_id.resume_line_type_properties_definition' args: 'Properties'
Public methods (0)

No public methods.

New fields (4)
  • is_course Boolean
    default=False args: 'Course'
  • name Char
    required=True translate=True
  • resume_line_type_properties_definition PropertiesDefinition
    args: 'Sections Properties'
  • sequence Integer
    default=10 args: 'Sequence'
Public methods (0)

No public methods.

New fields (4)
  • color Integer
    related='skill_type_id.color'
  • name Char
    required=True translate=True
  • sequence Integer
    default=10
  • skill_type_id Many2one → hr.skill.type
    index=True ondelete='cascade' required=True args: 'hr.skill.type'
Public methods (0)

No public methods.

New fields (5)
  • default_level Boolean
    help='If checked, this level will be the default one selected when choosing this skill.'
  • level_progress Integer
    help='Progress from zero knowledge (0%) to fully mastered (100%).' string='Progress'
  • name Char
    required=True
  • skill_type_id Many2one → hr.skill.type
    index='btree_not_null' ondelete='cascade' args: 'hr.skill.type'
  • technical_is_new_default Boolean
    compute='_compute_technical_is_new_default' readonly=False
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (8)
  • active Boolean
    default=True args: 'Active'
  • color Integer
    default=_get_default_color args: 'Color'
  • is_certification Boolean
    help='if checked the skill type become a certification type' args: 'Certification'
  • levels_count Integer
    compute='_compute_levels_count' help='Number of levels linked to this skill type' readonly=False store=True
  • name Char
    required=True translate=True
  • sequence Integer
    args: 'Sequence'
  • skill_ids One2many → hr.skill
    string='Skills' args: 'hr.skill', 'skill_type_id'
  • skill_level_ids One2many → hr.skill.level
    copy=True string='Levels' args: 'hr.skill.level', 'skill_type_id'
Public methods (1)
  • copy_data(self, default=None)

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (1)
  • employee_skill_ids One2many
    related='employee_id.employee_skill_ids'
Public methods (0)

No public methods.

Loading…

Loading…

Loading…

Loading…

Loading…

Loading…