diff options
| author | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
|---|---|---|
| committer | stephanchrst <stephanchrst@gmail.com> | 2022-05-10 21:51:50 +0700 |
| commit | 3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch) | |
| tree | a44932296ef4a9b71d5f010906253d8c53727726 /addons/hr_recruitment_survey/models | |
| parent | 0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff) | |
initial commit 2
Diffstat (limited to 'addons/hr_recruitment_survey/models')
| -rw-r--r-- | addons/hr_recruitment_survey/models/__init__.py | 5 | ||||
| -rw-r--r-- | addons/hr_recruitment_survey/models/hr_applicant.py | 26 | ||||
| -rw-r--r-- | addons/hr_recruitment_survey/models/hr_job.py | 32 |
3 files changed, 63 insertions, 0 deletions
diff --git a/addons/hr_recruitment_survey/models/__init__.py b/addons/hr_recruitment_survey/models/__init__.py new file mode 100644 index 00000000..b7409ff1 --- /dev/null +++ b/addons/hr_recruitment_survey/models/__init__.py @@ -0,0 +1,5 @@ +# -*- coding: utf-8 -*- +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from . import hr_job +from . import hr_applicant diff --git a/addons/hr_recruitment_survey/models/hr_applicant.py b/addons/hr_recruitment_survey/models/hr_applicant.py new file mode 100644 index 00000000..969253c7 --- /dev/null +++ b/addons/hr_recruitment_survey/models/hr_applicant.py @@ -0,0 +1,26 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import api, fields, models + + +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") + + def action_start_survey(self): + self.ensure_one() + # create a response and link it to this applicant + if not self.response_id: + response = self.survey_id._create_answer(partner=self.partner_id) + self.response_id = response.id + else: + response = self.response_id + # grab the token of the response and start surveying + return self.survey_id.action_start_survey(answer=response) + + 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) diff --git a/addons/hr_recruitment_survey/models/hr_job.py b/addons/hr_recruitment_survey/models/hr_job.py new file mode 100644 index 00000000..60e7557e --- /dev/null +++ b/addons/hr_recruitment_survey/models/hr_job.py @@ -0,0 +1,32 @@ +# Part of Odoo. See LICENSE file for full copyright and licensing details. + +from odoo import fields, models, _ + + +class Job(models.Model): + _inherit = "hr.job" + + survey_id = fields.Many2one( + 'survey.survey', "Interview Form", + help="Choose an interview form for this job position and you will be able to print/answer this interview from all applicants who apply for this job") + + def action_print_survey(self): + return self.survey_id.action_print_survey() + + def action_new_survey(self): + self.ensure_one() + survey = self.env['survey.survey'].create({ + 'title': _("Interview Form : %s") % self.name, + }) + self.write({'survey_id': survey.id}) + + action = { + 'name': _('Survey'), + 'view_mode': 'form,tree', + 'res_model': 'survey.survey', + 'type': 'ir.actions.act_window', + 'context': {'form_view_initial_mode': 'edit'}, + 'res_id': survey.id, + } + + return action |
