Purpose ======= Consultancy companies need resumé and skills of their consultants. For big projects, they often need to send them to their customers. These informations are also useful to statistics. Specification ============= New models ---------- 1/ `hr.resume.line.type` Types of resumé lines. e.g. *Experience*, *Education*, *Hobbies* 2/ `hr.resume.line` It is a line in the resumé of an employee. 3/ `hr.skill` Name of a skill. e.g *French*, *Python*, *Piano* 4/ `hr.skill.type` Skills can belongs to a particular type. A skill type has skill levels associated. e.g. *Languages*, *Dev*, *Music* 5/ `hr.skill.level` Levels available for a particular skill type. Each level has a label and a progress (between 0 and 100) associated. e.g. *Intermediary (20%)*, *Advanced (85%)*, *Expert (100%)* 6/ `hr.employee.skill` These are skills which employees have. It links an employee with a particular skill and level. e.g. Mitchell has an *Intermediary* level in *Python* Access Rights ------------- Only a `hr_user` can create/edit `hr.resume.line.type`, `hr.skill`, `hr.skill.level`, `hr.skill.type`. If employees are allowed to edit their infos (setting), they can also create/edit `hr.resume.line`, `hr.employee.skill` for themselves. UI -- Resumé lines are displayed, grouped by type, in a new 'Resumé' tab in the employee form. Resumé lines can be reordered (handle widget) Emloyee skills are displayed in the Resumé tab, grouped by skill type.
26 lines
1.0 KiB
Python
26 lines
1.0 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
from odoo import fields, models
|
|
|
|
|
|
class User(models.Model):
|
|
_inherit = ['res.users']
|
|
|
|
resume_line_ids = fields.One2many(related='employee_id.resume_line_ids', readonly=False)
|
|
employee_skill_ids = fields.One2many(related='employee_id.employee_skill_ids', readonly=False)
|
|
|
|
def __init__(self, pool, cr):
|
|
""" Override of __init__ to add access rights.
|
|
Access rights are disabled by default, but allowed
|
|
on some specific fields defined in self.SELF_{READ/WRITE}ABLE_FIELDS.
|
|
"""
|
|
hr_skills_fields = [
|
|
'resume_line_ids',
|
|
'employee_skill_ids',
|
|
]
|
|
init_res = super(User, self).__init__(pool, cr)
|
|
# duplicate list to avoid modifying the original reference
|
|
type(self).SELF_READABLE_FIELDS = type(self).SELF_READABLE_FIELDS + hr_skills_fields
|
|
type(self).SELF_WRITEABLE_FIELDS = type(self).SELF_WRITEABLE_FIELDS + hr_skills_fields
|
|
return init_res
|