[MOVE] hr_recruitment_survey: Make a bridge module with survey related code
============== Specifications ============== Add an option in the settings to use the surveys or not By default : do not use interview forms. If the option is false : on the job application, hide the Interview form field
This commit is contained in:
committed by
Yannick Tivisse
parent
3df8c253e3
commit
3912beff31
@@ -37,10 +37,3 @@ time by automating some communications with email templates.
|
||||
Documents like resumes and motivation letters are indexed automatically,
|
||||
allowing you to easily find for specific skills and build up a database of
|
||||
profiles.
|
||||
|
||||
Integrated Surveys
|
||||
------------------
|
||||
|
||||
Create your own interview canvas based on our best practices. Use the survey
|
||||
designer to adapt questions to your own process. Ask the applicant to fill in
|
||||
the survey online, or the interviewer to use it during real interviews.
|
||||
|
||||
@@ -6,21 +6,20 @@
|
||||
'version': '1.0',
|
||||
'category': 'Human Resources',
|
||||
'sequence': 90,
|
||||
'summary': 'Jobs, Recruitment, Applications, Job Interviews, Surveys',
|
||||
'summary': 'Jobs, Recruitment, Applications, Job Interviews',
|
||||
'description': """
|
||||
Manage job positions and the recruitment process
|
||||
================================================
|
||||
|
||||
This application allows you to easily keep track of jobs, vacancies, applications, interviews...
|
||||
|
||||
It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it is integrated with the survey module to allow you to define interviews for different jobs.
|
||||
It is integrated with the mail gateway to automatically fetch email sent to <jobs@yourcompany.com> in the list of applications. It's also integrated with the document management system to store and search in the CV base and find the candidate that you are looking for. Similarly, it may integrated with the survey module to allow you to define interviews for different jobs.
|
||||
You can define the different phases of interviews and easily rate the applicant from the kanban view.
|
||||
""",
|
||||
'website': 'https://www.odoo.com/page/recruitment',
|
||||
'depends': [
|
||||
'decimal_precision',
|
||||
'hr',
|
||||
'survey',
|
||||
'calendar',
|
||||
'fetchmail',
|
||||
'web_kanban_gauge',
|
||||
@@ -31,7 +30,6 @@ You can define the different phases of interviews and easily rate the applicant
|
||||
'data': [
|
||||
'security/hr_recruitment_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'data/survey_survey_data.xml',
|
||||
'data/hr_recruitment_data.xml',
|
||||
'views/hr_recruitment_views.xml',
|
||||
'report/hr_recruitment_report_views.xml',
|
||||
|
||||
@@ -7,9 +7,9 @@
|
||||
<field name="res_id" ref="mail.channel_all_employees"/>
|
||||
<field name="message_type">notification</field>
|
||||
<field name="subtype_id" ref="mail.mt_comment"/>
|
||||
<field name="subject">Recruitment application installed!</field>
|
||||
<field name="body"><![CDATA[<p>Manage job positions and your company's recruitment process. This application is integrated with the Survey application to help you define interviews for different jobs.</p>
|
||||
<p>Job applications sent by email are automatically integrate in Odoo.</p>]]></field>
|
||||
<field name="subject">Recruitment Process application installed!</field>
|
||||
<field name="body"><![CDATA[<p>Manage job positions and your company's recruitment process. This application may be integrated with the Survey application to help you define interviews for different jobs.</p>
|
||||
<p>Job applications sent by email will automatically be integrated in Odoo.</p>]]></field>
|
||||
</record>
|
||||
|
||||
<!-- Meeting Types (for interview meetings) -->
|
||||
|
||||
@@ -25,37 +25,26 @@
|
||||
<field name="fold" eval="True"/>
|
||||
</record>
|
||||
|
||||
<!--Manage the job_id to get in hr.applicant-->
|
||||
<!--Manage the job_id to get in hr.applicant-->
|
||||
<record id="hr.job_developer" model="hr.job">
|
||||
<field name="state">recruit</field>
|
||||
<field name="no_of_recruitment">4</field>
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_ceo" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_cto" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_consultant" model="hr.job">
|
||||
<field name="state">recruit</field>
|
||||
<field name="no_of_recruitment">1</field>
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_hrm" model="hr.job">
|
||||
<field name="no_of_recruitment">1</field>
|
||||
<field name="state">recruit</field>
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_marketing" model="hr.job">
|
||||
<field name="state">recruit</field>
|
||||
<field name="no_of_recruitment">3</field>
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_trainee" model="hr.job">
|
||||
<field name="state">recruit</field>
|
||||
<field name="no_of_recruitment">6</field>
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
|
||||
<record id="hr_case_salesman0" model="hr.applicant">
|
||||
|
||||
@@ -1,229 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data>
|
||||
<!-- Recruitment Form -->
|
||||
<record model="survey.survey" id="recruitment_form">
|
||||
<field name="title">Recruitment Form</field>
|
||||
<field name="stage_id" ref="survey.stage_permanent" />
|
||||
<field name="auth_required" eval="True" />
|
||||
<field name="users_can_go_back" eval="True" />
|
||||
<field name="description"><p>This form is intended to help the responsible of a recruitment interview.</p></field>
|
||||
<field name="thank_you_message"><p></p></field>
|
||||
</record>
|
||||
<!-- Page 1 -->
|
||||
<record model="survey.page" id="recruitment_1">
|
||||
<field name="title">Basic information</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_1_1">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">From which university will you graduate?</field>
|
||||
<field name="type">textbox</field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_1_2">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="question">What is your gender?</field>
|
||||
<field name="type">simple_choice</field>
|
||||
<field name="display_mode">dropdown</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_2_1">
|
||||
<field name="question_id" ref="recruitment_1_2"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Male</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_2_2">
|
||||
<field name="question_id" ref="recruitment_1_2"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Female</field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_1_3">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="question">What age group do you belong to?</field>
|
||||
<field name="type">simple_choice</field>
|
||||
<field name="display_mode">columns</field>
|
||||
<field name="column_nb">4</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_1">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">0-15</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_2">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">16-20</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_3">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">21-30</field>
|
||||
</record>
|
||||
|
||||
<record model="survey.label" id="recruitment_1_3_4">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">31-40</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_5">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">41-50</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_6">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">6</field>
|
||||
<field name="value">51-60</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_7">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">7</field>
|
||||
<field name="value">61-70</field>
|
||||
</record>
|
||||
<record model="survey.label" id="recruitment_1_3_8">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">8</field>
|
||||
<field name="value">71+</field>
|
||||
</record>
|
||||
<!-- Page 2 -->
|
||||
<record model="survey.page" id="recruitment_2">
|
||||
<field name="title">Education and Activities</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_2_1">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">Knowledge</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_2_2">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="question">Education</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_2_3">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="question">Experience</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_2_4">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">4</field>
|
||||
<field name="question">Activities</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<!-- Page 3 -->
|
||||
<record model="survey.page" id="recruitment_3">
|
||||
<field name="title">Importance</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record model="survey.question" id="recruitment_3_1">
|
||||
<field name="page_id" ref="recruitment_3" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">Rate the Importance</field>
|
||||
<field name="type">matrix</field>
|
||||
<field name="matrix_subtype">simple</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rcol_3_1_1">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Not important</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rcol_3_1_2">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Somewhat important</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rcol_3_1_3">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">Important</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rcol_3_1_4">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">Very important</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rcol_3_1_5">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">Most important</field>
|
||||
</record>
|
||||
|
||||
<record model="survey.label" id="rrow_2_1_1">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Good pay</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_2">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Getting on with colleagues</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_3">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">Office environment</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_4">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">Desk space</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_5">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">State of the art technology</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_6">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">6</field>
|
||||
<field name="value">Office location</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_7">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">7</field>
|
||||
<field name="value">Good management</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_8">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">8</field>
|
||||
<field name="value">Freebies such as tea, coffee and stationery</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_9">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">9</field>
|
||||
<field name="value">Perks such as free parking, gym passes</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_10">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">10</field>
|
||||
<field name="value">No out of hours working</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_11">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">11</field>
|
||||
<field name="value">Dress code</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_12">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">12</field>
|
||||
<field name="value">Regular meetings</field>
|
||||
</record>
|
||||
<record model="survey.label" id="rrow_2_1_13">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">13</field>
|
||||
<field name="value">Good social life</field>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -22,9 +22,6 @@ class Job(models.Model):
|
||||
user_id = fields.Many2one('res.users', "Recruitment Responsible", track_visibility='onchange')
|
||||
document_ids = fields.One2many('ir.attachment', compute='_compute_document_ids', string="Applications")
|
||||
documents_count = fields.Integer(compute='_compute_document_ids', string="Documents")
|
||||
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")
|
||||
alias_id = fields.Many2one(
|
||||
'mail.alias', "Alias", ondelete="restrict", required=True,
|
||||
help="Email alias for this job position. New emails will automatically create new applicants for this job position.")
|
||||
@@ -73,10 +70,6 @@ class Job(models.Model):
|
||||
return 'hr_recruitment.mt_job_new'
|
||||
return super(Job, self)._track_subtype(init_values)
|
||||
|
||||
@api.multi
|
||||
def action_print_survey(self):
|
||||
return self.survey_id.action_print_survey()
|
||||
|
||||
@api.multi
|
||||
def action_get_attachment_tree_view(self):
|
||||
action = self.env.ref('base.action_attachment').read()[0]
|
||||
|
||||
@@ -148,8 +148,6 @@ class Applicant(models.Model):
|
||||
partner_mobile = fields.Char("Mobile", size=32)
|
||||
type_id = fields.Many2one('hr.recruitment.degree', "Degree")
|
||||
department_id = fields.Many2one('hr.department', "Department")
|
||||
survey = fields.Many2one('survey.survey', related='job_id.survey_id', string="Survey") # TDE FIXME: rename to survey_id
|
||||
response_id = fields.Many2one('survey.user_input', "Response", ondelete="set null", oldname="response")
|
||||
reference = fields.Char("Referred By")
|
||||
day_open = fields.Float(compute='_compute_day', string="Days to Open")
|
||||
day_close = fields.Float(compute='_compute_day', string="Days to Close")
|
||||
@@ -323,27 +321,6 @@ class Applicant(models.Model):
|
||||
}
|
||||
return res
|
||||
|
||||
@api.multi
|
||||
def action_start_survey(self):
|
||||
self.ensure_one()
|
||||
# create a response and link it to this applicant
|
||||
if not self.response_id:
|
||||
response = self.env['survey.user_input'].create({'survey_id': self.survey.id, 'partner_id': self.partner_id.id})
|
||||
self.response_id = response.id
|
||||
else:
|
||||
response = self.response_id
|
||||
# grab the token of the response and start surveying
|
||||
return self.survey.with_context(survey_token=response.token).action_start_survey()
|
||||
|
||||
@api.multi
|
||||
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()
|
||||
if not self.response_id:
|
||||
return self.survey.action_print_survey()
|
||||
else:
|
||||
response = self.response_id
|
||||
return self.survey.with_context(survey_token=response.token).action_print_survey()
|
||||
|
||||
@api.multi
|
||||
def action_get_attachment_tree_view(self):
|
||||
|
||||
@@ -12,3 +12,8 @@ class RecruitmentSettings(models.TransientModel):
|
||||
(0, "Do not manage CVs and motivation letter"),
|
||||
(1, 'Allow the automatic indexation of resumes')
|
||||
], string='Resumes')
|
||||
|
||||
module_hr_recruitment_survey = fields.Selection(selection=[
|
||||
(0, "Do not use interview forms"),
|
||||
(1, "Use interview forms during the recruitment process")
|
||||
], string='Interview Form')
|
||||
|
||||
@@ -9,9 +9,5 @@
|
||||
<field name="domain_force">['|',('company_id','=',False),('company_id','child_of',[user.company_id.id])]</field>
|
||||
</record>
|
||||
|
||||
<record id="base.group_hr_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_survey_user'))]"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
|
||||
@@ -5,7 +5,6 @@ access_hr_recruitment_stage_user,hr.recruitment.stage.user,model_hr_recruitment_
|
||||
access_hr_recruitment_stage_manager,hr.recruitment.stage.manager,model_hr_recruitment_stage,base.group_hr_manager,1,1,1,1
|
||||
access_hr_recruitment_degree,hr.recruitment.degree,model_hr_recruitment_degree,base.group_hr_user,1,1,1,1
|
||||
access_res_partner_hr_user,res.partner.user,base.model_res_partner,base.group_hr_user,1,1,1,1
|
||||
access_survey_hr_user,survey.hr.user,survey.model_survey_survey,base.group_hr_user,1,1,1,0
|
||||
access_calendar_event_hruser,calendar.event.hruser,calendar.model_calendar_event,base.group_hr_user,1,1,1,1
|
||||
access_hr_recruitment_source_hr_officer,hr.recruitment.source,model_hr_recruitment_source,base.group_hr_user,1,1,1,1
|
||||
access_hr_recruitment_source_all,hr.recruitment.source,model_hr_recruitment_source,,1,0,0,0
|
||||
|
||||
|
@@ -47,10 +47,3 @@
|
||||
-
|
||||
!python {model: hr.applicant, id: hr_case_programmer}: |
|
||||
self.action_makeMeeting()
|
||||
-
|
||||
I print Applicant fill up the interview quetion
|
||||
-
|
||||
!python {model: hr.applicant, id: False}: |
|
||||
context = self.env.context.copy()
|
||||
context.update({'active_model': 'hr.applicant', 'active_ids': [ref("hr_recruitment.hr_case_programmer")], 'active_id': ref("hr_recruitment.hr_case_programmer")})
|
||||
self.browse(ref('hr_case_programmer')).with_context(context).action_print_survey()
|
||||
|
||||
@@ -22,7 +22,6 @@
|
||||
<field name="document_ids"/>
|
||||
<field name="no_of_hired_employee"/>
|
||||
<field name="manager_id"/>
|
||||
<field name="survey_id"/>
|
||||
<field name="state"/>
|
||||
<field name="user_id"/>
|
||||
<templates>
|
||||
@@ -57,13 +56,7 @@
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" title="Display Interview Form">Interview Form</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="row">
|
||||
<div class="row" name="recruitment">
|
||||
<div class="col-xs-12">
|
||||
<a t-if="record.state.raw_value == 'recruit'" name="set_open" type="object">Recruitment Done</a>
|
||||
</div>
|
||||
@@ -93,13 +86,9 @@
|
||||
<div>
|
||||
<a name="%(action_hr_job_applications)d" type="action">Applications</a>
|
||||
</div>
|
||||
<div>
|
||||
<div name="documents">
|
||||
<a name="action_get_attachment_tree_view" type="object">Documents</a>
|
||||
</div>
|
||||
<div>
|
||||
<a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" title="Display Interview Form">Interview Form</a>
|
||||
<span t-if="!record.survey_id.raw_value">No Interview Form</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-xs-4 o_kanban_card_manage_section o_kanban_manage_new">
|
||||
<div class="o_kanban_card_manage_title">
|
||||
|
||||
@@ -12,6 +12,7 @@
|
||||
</header>
|
||||
<group string="Recruitment">
|
||||
<field name="module_document" widget="radio"/>
|
||||
<field name="module_hr_recruitment_survey" widget="radio"/>
|
||||
</group>
|
||||
</form>
|
||||
</field>
|
||||
|
||||
@@ -40,8 +40,6 @@
|
||||
<field name="date_action" invisible="context.get('invisible_next_date', True)"/>
|
||||
<field name="medium_id"/>
|
||||
<field name="source_id"/>
|
||||
<field name="survey" invisible="1"/>
|
||||
<field name="response_id" invisible="1"/>
|
||||
<field name="priority"/>
|
||||
<field name="type_id" invisible="1"/>
|
||||
<field name="availability" invisible="1"/>
|
||||
@@ -71,29 +69,6 @@
|
||||
<span class="o_stat_text">Meetings</span>
|
||||
</div>
|
||||
</button>
|
||||
<button name="action_start_survey"
|
||||
class="oe_stat_button"
|
||||
icon="fa-user"
|
||||
type="object"
|
||||
help="Answer related job question"
|
||||
context="{'survey_id': survey}"
|
||||
attrs="{'invisible':[('survey','=',False)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_text">Start</span>
|
||||
<span class="o_stat_text">Interview</span>
|
||||
</div>
|
||||
</button>
|
||||
<button name="action_print_survey"
|
||||
class="oe_stat_button"
|
||||
icon="fa-print"
|
||||
type="object"
|
||||
help="Print interview report"
|
||||
attrs="{'invisible':[('survey','=',False)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_text">Print</span>
|
||||
<span class="o_stat_text">Interview</span>
|
||||
</div>
|
||||
</button>
|
||||
<button name="action_get_attachment_tree_view"
|
||||
class="oe_stat_button"
|
||||
icon="fa-book"
|
||||
@@ -149,8 +124,6 @@
|
||||
<field name="reference"/>
|
||||
</group>
|
||||
<group string="Job">
|
||||
<field name="survey" invisible="1"/>
|
||||
<field name="response_id" invisible="1"/>
|
||||
<field name="job_id"/>
|
||||
<field name="department_id"/>
|
||||
<field name="company_id" groups="base.group_multi_company" options='{"no_open":True}' />
|
||||
@@ -263,7 +236,6 @@
|
||||
<field name="stage_id" options='{"group_by_tooltip": {"requirements": "Requirements"}}'/>
|
||||
<field name="color"/>
|
||||
<field name="priority"/>
|
||||
<field name="survey"/>
|
||||
<field name="user_id"/>
|
||||
<field name="user_email"/>
|
||||
<field name="partner_name"/>
|
||||
@@ -433,11 +405,6 @@
|
||||
<field name="arch" type="xml">
|
||||
<group name="employee_data" position="inside">
|
||||
<group>
|
||||
<label for="survey_id" groups="base.group_user"/>
|
||||
<div groups="base.group_user" class="o_row">
|
||||
<field name="survey_id"/>
|
||||
<button string="Display Interview Form" name="action_print_survey" type="object" attrs="{'invisible':[('survey_id','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
<field name="address_id" context="{'show_address': 1}" domain= "[('is_company', '=', True )]" options="{'always_reload': True}"/>
|
||||
</group>
|
||||
</group>
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
Integrated Surveys
|
||||
-------------------
|
||||
|
||||
Create your own interview canvas based on our best practices. Use the survey
|
||||
designer to adapt questions to your own process. Ask the applicant to fill in
|
||||
the survey online, or the interviewer to use it during real interviews.
|
||||
@@ -0,0 +1,3 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import models
|
||||
@@ -0,0 +1,25 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
{
|
||||
'name': "Hr Recruitment Interview Forms",
|
||||
'version': '1.0',
|
||||
'category': 'Human Resources Survey',
|
||||
'summary': 'Surveys',
|
||||
'description': """
|
||||
Use interview forms during recruitment process.
|
||||
This module is integrated with the survey module
|
||||
to allow you to define interviews for different jobs.
|
||||
""",
|
||||
'depends': ['survey', 'hr_recruitment'],
|
||||
'data': [
|
||||
'security/hr_recruitment_survey_security.xml',
|
||||
'security/ir.model.access.csv',
|
||||
'data/survey_survey_data.xml',
|
||||
'views/hr_job_views.xml',
|
||||
'views/hr_applicant_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/hr_job_demo.xml',
|
||||
],
|
||||
'test': ['test/recruitment_process.yml'],
|
||||
'auto_install': False,
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
|
||||
<!--Manage the job_id to get in hr.applicant-->
|
||||
<record id="hr.job_developer" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_ceo" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_cto" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_consultant" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_hrm" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_marketing" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
<record id="hr.job_trainee" model="hr.job">
|
||||
<field name="survey_id" ref="recruitment_form"/>
|
||||
</record>
|
||||
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,227 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<!-- Recruitment Form -->
|
||||
<record id="recruitment_form" model="survey.survey">
|
||||
<field name="title">Recruitment Form</field>
|
||||
<field name="stage_id" ref="survey.stage_permanent" />
|
||||
<field name="auth_required" eval="True" />
|
||||
<field name="users_can_go_back" eval="True" />
|
||||
<field name="description"><p>This form is intended to help the responsible of a recruitment interview.</p></field>
|
||||
<field name="thank_you_message"><p></p></field>
|
||||
</record>
|
||||
<!-- Page 1 -->
|
||||
<record id="recruitment_1" model="survey.page">
|
||||
<field name="title">Basic information</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record id="recruitment_1_1" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">From which university will you graduate?</field>
|
||||
<field name="type">textbox</field>
|
||||
</record>
|
||||
<record id="recruitment_1_2" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="question">What is your gender?</field>
|
||||
<field name="type">simple_choice</field>
|
||||
<field name="display_mode">dropdown</field>
|
||||
</record>
|
||||
<record id="recruitment_1_2_1" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_2"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Male</field>
|
||||
</record>
|
||||
<record id="recruitment_1_2_2" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_2"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Female</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_1" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="question">What age group do you belong to?</field>
|
||||
<field name="type">simple_choice</field>
|
||||
<field name="display_mode">columns</field>
|
||||
<field name="column_nb">4</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_1" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">0-15</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_2" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">16-20</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_3" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">21-30</field>
|
||||
</record>
|
||||
|
||||
<record id="recruitment_1_3_4" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">31-40</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_5" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">41-50</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_6" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">6</field>
|
||||
<field name="value">51-60</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_7" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">7</field>
|
||||
<field name="value">61-70</field>
|
||||
</record>
|
||||
<record id="recruitment_1_3_8" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_1_3"/>
|
||||
<field name="sequence">8</field>
|
||||
<field name="value">71+</field>
|
||||
</record>
|
||||
<!-- Page 2 -->
|
||||
<record id="recruitment_2" model="survey.page">
|
||||
<field name="title">Education and Activities</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record id="recruitment_2_1" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">Knowledge</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record id="recruitment_2_2" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">2</field>
|
||||
<field name="question">Education</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record id="recruitment_2_3" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="question">Experience</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<record id="recruitment_2_4" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_2" />
|
||||
<field name="sequence">4</field>
|
||||
<field name="question">Activities</field>
|
||||
<field name="type">free_text</field>
|
||||
</record>
|
||||
<!-- Page 3 -->
|
||||
<record id="recruitment_3" model="survey.page">
|
||||
<field name="title">Importance</field>
|
||||
<field name="survey_id" ref="recruitment_form" />
|
||||
<field name="sequence">3</field>
|
||||
<field name="description"><p></p></field>
|
||||
</record>
|
||||
<record id="recruitment_3_1" model="survey.question">
|
||||
<field name="page_id" ref="recruitment_3" />
|
||||
<field name="sequence">1</field>
|
||||
<field name="question">Rate the Importance</field>
|
||||
<field name="type">matrix</field>
|
||||
<field name="matrix_subtype">simple</field>
|
||||
</record>
|
||||
<record id="rcol_3_1_1" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Not important</field>
|
||||
</record>
|
||||
<record id="rcol_3_1_2" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Somewhat important</field>
|
||||
</record>
|
||||
<record id="rcol_3_1_3" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">Important</field>
|
||||
</record>
|
||||
<record id="rcol_3_1_4" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">Very important</field>
|
||||
</record>
|
||||
<record id="rcol_3_1_5" model="survey.label">
|
||||
<field name="question_id" ref="recruitment_3_1"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">Most important</field>
|
||||
</record>
|
||||
|
||||
<record id="rrow_2_1_1" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">1</field>
|
||||
<field name="value">Good pay</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_2" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">2</field>
|
||||
<field name="value">Getting on with colleagues</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_3" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">3</field>
|
||||
<field name="value">Office environment</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_4" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">4</field>
|
||||
<field name="value">Desk space</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_5" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">5</field>
|
||||
<field name="value">State of the art technology</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_6" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">6</field>
|
||||
<field name="value">Office location</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_7" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">7</field>
|
||||
<field name="value">Good management</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_8" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">8</field>
|
||||
<field name="value">Freebies such as tea, coffee and stationery</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_9" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">9</field>
|
||||
<field name="value">Perks such as free parking, gym passes</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_10" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">10</field>
|
||||
<field name="value">No out of hours working</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_11" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">11</field>
|
||||
<field name="value">Dress code</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_12" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">12</field>
|
||||
<field name="value">Regular meetings</field>
|
||||
</record>
|
||||
<record id="rrow_2_1_13" model="survey.label">
|
||||
<field name="question_id_2" ref="recruitment_3_1"/>
|
||||
<field name="sequence">13</field>
|
||||
<field name="value">Good social life</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
import hr_job
|
||||
import hr_applicant
|
||||
@@ -0,0 +1,32 @@
|
||||
# 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")
|
||||
response_id = fields.Many2one('survey.user_input', "Response", ondelete="set null", oldname="response")
|
||||
|
||||
@api.multi
|
||||
def action_start_survey(self):
|
||||
self.ensure_one()
|
||||
# create a response and link it to this applicant
|
||||
if not self.response_id:
|
||||
response = self.env['survey.user_input'].create({'survey_id': self.survey_id.id, 'partner_id': self.partner_id.id})
|
||||
self.response_id = response.id
|
||||
else:
|
||||
response = self.response_id
|
||||
# grab the token of the response and start surveying
|
||||
return self.survey_id.with_context(survey_token=response.token).action_start_survey()
|
||||
|
||||
@api.multi
|
||||
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()
|
||||
if not self.response_id:
|
||||
return self.survey_id.action_print_survey()
|
||||
else:
|
||||
response = self.response_id
|
||||
return self.survey_id.with_context(survey_token=response.token).action_print_survey()
|
||||
@@ -0,0 +1,15 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import api, 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")
|
||||
|
||||
@api.multi
|
||||
def action_print_survey(self):
|
||||
return self.survey_id.action_print_survey()
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record id="base.group_hr_user" model="res.groups">
|
||||
<field name="implied_ids" eval="[(4, ref('base.group_survey_user'))]"/>
|
||||
</record>
|
||||
</data>
|
||||
</odoo>
|
||||
@@ -0,0 +1,2 @@
|
||||
id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink
|
||||
access_survey_hr_user,survey.hr.user,survey.model_survey_survey,base.group_hr_user,1,1,1,0
|
||||
|
@@ -0,0 +1,5 @@
|
||||
-
|
||||
I print Applicant fill up the interview question
|
||||
-
|
||||
!python {model: hr.applicant, id: hr_recruitment.hr_case_programmer}: |
|
||||
self.action_print_survey()
|
||||
@@ -0,0 +1,62 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="crm_case_tree_view_job_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.applicant.tree.inherit</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.crm_case_tree_view_job"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='source_id']" position="after">
|
||||
<field name="survey_id" invisible="1"/>
|
||||
<field name="response_id" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_form_view_job_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.applicant.form.inherit</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.crm_case_form_view_job"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//button[@name='action_makeMeeting']" position="after">
|
||||
<button name="action_start_survey"
|
||||
class="oe_stat_button"
|
||||
icon="fa-user"
|
||||
type="object"
|
||||
help="Answer related job question"
|
||||
context="{'survey_id': survey_id}"
|
||||
attrs="{'invisible':[('survey_id','=',False)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_text">Start</span>
|
||||
<span class="o_stat_text">Interview</span>
|
||||
</div>
|
||||
</button>
|
||||
<button name="action_print_survey"
|
||||
class="oe_stat_button"
|
||||
icon="fa-print"
|
||||
type="object"
|
||||
help="Print interview report"
|
||||
attrs="{'invisible':[('survey_id','=',False)]}">
|
||||
<div class="o_form_field o_stat_info">
|
||||
<span class="o_stat_text">Print</span>
|
||||
<span class="o_stat_text">Interview</span>
|
||||
</div>
|
||||
</button>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='job_id']" position="before">
|
||||
<field name="survey_id" invisible="1"/>
|
||||
<field name="response_id" invisible="1"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_kanban_view_applicant_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.applicants.kanban.inherit</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.hr_kanban_view_applicant"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='user_id']" position="before">
|
||||
<field name="survey_id"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
@@ -0,0 +1,40 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="hr_job_survey_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.job.form.inherit</field>
|
||||
<field name="model">hr.job</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.hr_job_survey"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='address_id']" position="before">
|
||||
<label for="survey_id" groups="base.group_user"/>
|
||||
<div groups="base.group_user" class="o_row">
|
||||
<field name="survey_id"/>
|
||||
<button string="Display Interview Form" name="action_print_survey" type="object" attrs="{'invisible':[('survey_id','=',False)]}" class="oe_link"/>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
<record id="view_hr_job_kanban_inherit" model="ir.ui.view">
|
||||
<field name="name">hr.job.kanban.inherit</field>
|
||||
<field name="model">hr.job</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.view_hr_job_kanban"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='manager_id']" position="after">
|
||||
<field name="survey_id"/>
|
||||
</xpath>
|
||||
<xpath expr='//div[@name="recruitment"]' position="before">
|
||||
<div class="row">
|
||||
<div class="col-xs-12">
|
||||
<a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" title="Display Interview Form">Interview Form</a>
|
||||
</div>
|
||||
</div>
|
||||
</xpath>
|
||||
<xpath expr='//div[@name="documents"]' position="after">
|
||||
<div>
|
||||
<a t-if="record.survey_id.raw_value" name="action_print_survey" type="object" title="Display Interview Form">Interview Form</a>
|
||||
<span t-if="!record.survey_id.raw_value">No Interview Form</span>
|
||||
</div>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user