diff --git a/addons/hr_recruitment/data/mail_message_subtype_data.xml b/addons/hr_recruitment/data/mail_message_subtype_data.xml
index b255f071f7b..2de5edbc9ac 100644
--- a/addons/hr_recruitment/data/mail_message_subtype_data.xml
+++ b/addons/hr_recruitment/data/mail_message_subtype_data.xml
@@ -19,7 +19,6 @@
Applicant Hired
hr.applicant
- Applicant hired
diff --git a/addons/hr_recruitment/data/mail_templates.xml b/addons/hr_recruitment/data/mail_templates.xml
index 15217bf188b..a4f41f9deb9 100644
--- a/addons/hr_recruitment/data/mail_templates.xml
+++ b/addons/hr_recruitment/data/mail_templates.xml
@@ -2,10 +2,7 @@
-Applicant hired
-
+Employee created:
diff --git a/addons/hr_recruitment/models/hr_applicant.py b/addons/hr_recruitment/models/hr_applicant.py
index c869ac1f912..1eb3328a92e 100644
--- a/addons/hr_recruitment/models/hr_applicant.py
+++ b/addons/hr_recruitment/models/hr_applicant.py
@@ -540,14 +540,10 @@ class Applicant(models.Model):
self.ensure_one()
self._check_interviewer_access()
- contact_name = False
- if self.partner_id:
- address_id = self.partner_id.address_get(['contact'])['contact']
- contact_name = self.partner_id.display_name
- else:
+ if not self.partner_id:
if not self.partner_name:
raise UserError(_('Please provide an applicant name.'))
- new_partner_id = self.env['res.partner'].create({
+ self.partner_id = self.env['res.partner'].create({
'is_company': False,
'type': 'private',
'name': self.partner_name,
@@ -555,22 +551,26 @@ class Applicant(models.Model):
'phone': self.partner_phone,
'mobile': self.partner_mobile
})
- self.partner_id = new_partner_id
- address_id = new_partner_id.address_get(['contact'])['contact']
- employee_data = {
- 'default_name': self.partner_name or contact_name,
- 'default_job_id': self.job_id.id,
- 'default_job_title': self.job_id.name,
- 'default_address_home_id': address_id,
- 'default_department_id': self.department_id.id,
- 'default_address_id': self.company_id.partner_id.id,
- 'default_work_email': self.department_id.company_id.email or self.email_from, # To have a valid email address by default
- 'default_work_phone': self.department_id.company_id.phone,
- 'default_applicant_id': self.ids,
+
+ action = self.env['ir.actions.act_window']._for_xml_id('hr.open_view_employee_list')
+ employee = self.env['hr.employee'].create(self._get_employee_create_vals())
+ action['res_id'] = employee.id
+ return action
+
+ def _get_employee_create_vals(self):
+ self.ensure_one()
+ address_id = self.partner_id.address_get(['contact'])['contact']
+ return {
+ 'name': self.partner_name or self.partner_id.display_name,
+ 'job_id': self.job_id.id,
+ 'job_title': self.job_id.name,
+ 'address_home_id': address_id,
+ 'department_id': self.department_id.id,
+ 'address_id': self.company_id.partner_id.id,
+ 'work_email': self.department_id.company_id.email or self.email_from, # To have a valid email address by default
+ 'work_phone': self.department_id.company_id.phone,
+ 'applicant_id': self.ids,
}
- dict_act_window = self.env['ir.actions.act_window']._for_xml_id('hr.open_view_employee_list')
- dict_act_window['context'] = employee_data
- return dict_act_window
def _update_employee_from_applicant(self):
# This method is to be overriden
diff --git a/addons/hr_recruitment_skills/models/hr_applicant.py b/addons/hr_recruitment_skills/models/hr_applicant.py
index 8a13610bac2..6035872f0d9 100644
--- a/addons/hr_recruitment_skills/models/hr_applicant.py
+++ b/addons/hr_recruitment_skills/models/hr_applicant.py
@@ -23,15 +23,14 @@ class HrApplicant(models.Model):
for applicant in self:
applicant.skill_ids = applicant.applicant_skill_ids.skill_id
- def create_employee_from_applicant(self):
- self.ensure_one()
- action = super().create_employee_from_applicant()
- action['context']['default_employee_skill_ids'] = [(0, 0, {
+ def _get_employee_create_vals(self):
+ vals = super()._get_employee_create_vals()
+ vals['employee_skill_ids'] = [(0, 0, {
'skill_id': applicant_skill.skill_id.id,
'skill_level_id': applicant_skill.skill_level_id.id,
'skill_type_id': applicant_skill.skill_type_id.id,
}) for applicant_skill in self.applicant_skill_ids]
- return action
+ return vals
def _update_employee_from_applicant(self):
vals_list = []