# Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import fields, models, _ from odoo.exceptions import UserError class Applicant(models.Model): _inherit = "hr.applicant" survey_id = fields.Many2one('survey.survey', related='job_id.survey_id', string="Survey", readonly=True) response_id = fields.Many2one('survey.user_input', "Response", ondelete="set null", copy=False) response_state = fields.Selection(related='response_id.state', readonly=True) def action_print_survey(self): """ If response is available then print this response otherwise print survey form (print template of the survey) """ self.ensure_one() return self.survey_id.action_print_survey(answer=self.response_id) def action_send_survey(self): self.ensure_one() # if an applicant does not already has associated partner_id create it if not self.partner_id: if not self.partner_name: raise UserError(_('You must define a Contact Name for this applicant.')) self.partner_id = self.env['res.partner'].create({ 'is_company': False, 'type': 'private', 'name': self.partner_name, 'email': self.email_from, 'phone': self.partner_phone, 'mobile': self.partner_mobile }) return self.survey_id.with_context(default_applicant_id=self.id, default_partner_ids=self.partner_id.ids).action_send_survey()