64 lines
2.3 KiB
Python
64 lines
2.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, fields, models
|
|
|
|
|
|
class Employee(models.Model):
|
|
_inherit = 'hr.employee'
|
|
|
|
resume_line_ids = fields.One2many('hr.resume.line', 'employee_id', string="Resumé lines")
|
|
employee_skill_ids = fields.One2many('hr.employee.skill', 'employee_id', string="Skills")
|
|
|
|
@api.model_create_multi
|
|
def create(self, vals_list):
|
|
res = super(Employee, self).create(vals_list)
|
|
resume_lines_values = []
|
|
for employee in res:
|
|
line_type = self.env.ref('hr_skills.resume_type_experience', raise_if_not_found=False)
|
|
resume_lines_values.append({
|
|
'employee_id': employee.id,
|
|
'name': employee.company_id.name or '',
|
|
'date_start': employee.create_date.date(),
|
|
'description': employee.job_title or '',
|
|
'line_type_id': line_type and line_type.id,
|
|
})
|
|
self.env['hr.resume.line'].create(resume_lines_values)
|
|
return res
|
|
|
|
|
|
class EmployeePublic(models.Model):
|
|
_inherit = 'hr.employee.public'
|
|
|
|
resume_line_ids = fields.One2many('hr.resume.line', 'employee_id', string="Resumé lines")
|
|
employee_skill_ids = fields.One2many('hr.employee.skill', 'employee_id', string="Skills")
|
|
|
|
|
|
class ResumeLine(models.Model):
|
|
_name = 'hr.resume.line'
|
|
_description = "Resumé line of an employee"
|
|
_order = "line_type_id, date_end desc, date_start desc"
|
|
|
|
employee_id = fields.Many2one('hr.employee', required=True, ondelete='cascade')
|
|
name = fields.Char(required=True)
|
|
date_start = fields.Date(required=True)
|
|
date_end = fields.Date()
|
|
description = fields.Text(string="Description")
|
|
line_type_id = fields.Many2one('hr.resume.line.type', string="Type")
|
|
|
|
# Used to apply specific template on a line
|
|
display_type = fields.Selection([('classic', 'Classic')], string="Display Type", default='classic')
|
|
|
|
_sql_constraints = [
|
|
('date_check', "CHECK ((date_start <= date_end OR date_end = NULL))", "The start date must be anterior to the end date."),
|
|
]
|
|
|
|
|
|
class ResumeLineType(models.Model):
|
|
_name = 'hr.resume.line.type'
|
|
_description = "Type of a resumé line"
|
|
_order = "sequence"
|
|
|
|
name = fields.Char(required=True)
|
|
sequence = fields.Integer('Sequence', default=10)
|