TIP: You can type at any time to perform a new search.
Recruitment
hr_recruitment · odoo/odoo
Security findings
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Human Resources/Recruitment
- Folder size
- 10.93 MB
- License
- LGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://www.odoo.com/app/recruitment
- Last tracking update
- 2026-10-05 00:19:50
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Christophe Matthieu, Aaron Bohy, Géry Debongnie, Yannick Tivisse, Julien Castiaux, Aurélien Warnon, Xavier-Do, Romeo Fragomeli, Victor Feyens, Adrien Dieudonné, Sébastien Theys, Julien Mougenot, David Beguin, Prakash Prajapati, Tiffany Chang (tic), Gorash, yhu-odoo, Didier (did), Mathieu Walravens, luvi, Renaud Thiry, Victor Piryns (pivi), amdi-odoo, Pierre-Yves Dufays, Dylan Kiss (dyki), Xavier Bol (xbo), Brieuc-brd, Maryam Kia, reka-odoo, adsh-odoo, Tanguy Quéguineur, Alex Kühn, nihp-odoo, asno-odoo, Harsh Shah, rmun-odoo, thle-odoo, Mathieu Coutant, rame-odoo, Abdelrahman Mahmoud (amah), ahta, sben-odoo, elhayyany, Pierre Pulinckx, nikj-odoo, Michaël Mattiello, bona-odoo, Krzysztof Magusiak (krma), Hazem Ibrahim, Maeva De Keyser (MDEK), pajo, kareem, Bertrand Dossogne, Julien Launois (jula), Laetitia (ldau), ksar-odoo, Quentin Colla (qucol), dhka-odoo, Einar Andersen (eian), Jérôme Belpaire, Yagnik ✗ (yagp), Hashem Elmaleeh, abdrahmanrashed, assh-odoo, Ziri, YoussefM890, Abdelouahab Laaroussi (abla), Zachary (zavan), Mahmoudk3m, Kadam Darji, Martin Lefèvre (mlef), ELCO, chpa-odoo, Oussema Heni, Faruk Avcı, 3amo-magdy, Devendra Ladhani, Amr Yasser, dhrs-odoo, Tristan Cazier, SurryaT10, FedericoBraidi, Sara Briki, Mohamed-moali, Julien Piron, Jean Schoenlaub, raibr, Tony Michel (tomic), yogietama, amgom-odoo, joyep-odoo
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- hr_recruitment_skills, hr_recruitment_sms, hr_recruitment_survey, website_hr_recruitment
- Description
Code Analysis
Views touched (52)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
applicant_get_refuse_reason_view_form |
applicant.get.refuse.reason.form | applicant.get.refuse.reason | form | New |
applicant_hired_template |
applicant_hired_template | ir.ui.view | qweb | New |
applicant_refuse_single_view_form |
applicant.refuse.single.form | applicant.refuse.single | form | New |
crm_case_graph_view_job |
Jobs - Recruitment Graph | hr.applicant | graph | New |
crm_case_pivot_view_job |
Jobs - Recruitment | hr.applicant | pivot | New |
crm_case_tree_view_job |
Applicants | hr.applicant | list | New |
digest_digest_view_form |
digest.digest.view.form.inherit.hr.recruitment | digest.digest | form | Inherits digest.digest_digest_view_form |
hr_applicant_calendar_view |
Hr Applicants Calendar | hr.applicant | calendar | New |
hr_applicant_category_view_form |
hr.applicant.category.form | hr.applicant.category | form | New |
hr_applicant_category_view_tree |
hr.applicant.category.list | hr.applicant.category | list | New |
hr_applicant_refuse_reason_view_form |
Applicant refuse reason form | hr.applicant.refuse.reason | form | New |
hr_applicant_refuse_reason_view_tree |
Applicant refuse reason list | hr.applicant.refuse.reason | list | New |
hr_applicant_view_activity |
hr.applicant.activity | hr.applicant | activity | New |
hr_applicant_view_form |
Jobs - Recruitment Form | hr.applicant | form | New |
hr_applicant_view_form_interviewer |
hr.applicant | form | Inherits hr_applicant_view_form | |
hr_applicant_view_graph |
hr.applicant.graph | hr.applicant | graph | New |
hr_applicant_view_pivot |
hr.applicant.pivot | hr.applicant | pivot | New |
hr_applicant_view_search |
hr.applicant.search | hr.applicant | search | New |
hr_applicant_view_search_bis |
hr.applicant.view.search | hr.applicant | search | New |
hr_applicant_view_tree_activity |
hr.applicant.view.list.activity | hr.applicant | list | New |
hr_department_view_kanban |
hr.department.kanban.inherit | hr.department | kanban | Inherits hr.hr_department_view_kanban |
hr_employee_view_form_inherit_applicant_button |
hr.employee.form.applicant.button | hr.employee | form | Inherits hr.view_employee_form |
hr_job_platform_form |
hr.job.platform.form | hr.job.platform | form | New |
hr_job_platform_tree |
hr.job.platform.list | hr.job.platform | list | New |
hr_job_search_view |
hr.job.search | hr.job | search | Inherits hr_recruitment.view_job_filter_recruitment |
hr_job_simple_form |
hr.job.simple.form | hr.job | form | New |
hr_job_survey |
hr.job.form1 | hr.job | form | Inherits hr.view_hr_job_form |
hr_job_tag_view_form |
hr.job.tag.view.form | hr.job.tag | form | New |
hr_job_tag_view_list |
hr.job.tag.view.list | hr.job.tag | list | New |
hr_job_view_tree_inherit |
hr.job | tree | Inherits hr.view_hr_job_tree | |
hr_kanban_view_applicant |
Hr Applicants kanban | hr.applicant | kanban | New |
hr_kanban_view_applicant_talent_pool |
hr.applicant | kanban | Inherits hr_recruitment.hr_kanban_view_applicant | |
hr_recruitment_degree_form |
hr.recruitment.degree.form | hr.recruitment.degree | form | New |
hr_recruitment_degree_tree |
hr.recruitment.degree.list | hr.recruitment.degree | list | New |
hr_recruitment_source_tree |
hr.recruitment.source.list | hr.recruitment.source | list | New |
hr_recruitment_source_view_search |
hr.recruitment.source.view.search | hr.recruitment.source | search | New |
hr_recruitment_stage_form |
hr.recruitment.stage.form | hr.recruitment.stage | form | New |
hr_recruitment_stage_tree |
hr.recruitment.stage.list | hr.recruitment.stage | list | New |
hr_talent_pool_view_form |
hr.talent.pool.view.form | hr.talent.pool | form | New |
hr_talent_pool_view_kanban |
hr.talent.pool.view.kanban | hr.talent.pool | kanban | New |
hr_talent_pool_view_list |
hr.talent.pool.view.list | hr.talent.pool | list | New |
ir_attachment_hr_recruitment_list_view |
ir.attachment | list | New | |
ir_attachment_view_search_inherit_hr_recruitment |
ir.attachment.search.inherit.recruitment | ir.attachment | search | Inherits base.view_attachment_search |
job_add_applicants_from_job_view_form |
job.add.applicants.from.job.view.form | job.add.applicants | form | New |
job_add_applicants_view_form |
job.add.applicants.view.form | job.add.applicants | form | New |
mail_notification_light_without_background |
mail_notification_light_without_background | ir.ui.view | qweb | Inherits mail.mail_notification_light |
quick_create_applicant_form |
hr.applicant.form.quick_create | hr.applicant | form | New |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.recruitment | res.config.settings | form | Inherits base.res_config_settings_view_form |
talent_pool_add_applicants_view_form |
talent.pool.add.applicants.view.form | talent.pool.add.applicants | form | New |
view_hr_job_kanban |
hr.job.kanban | hr.job | kanban | New |
view_hr_recruitment_stage_kanban |
hr.recruitment.stage.kanban | hr.recruitment.stage | kanban | New |
view_job_filter_recruitment |
Job | hr.job | Inherits hr.view_job_filter |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (29)
New fields (12)
-
applicant_idsMany2many → hr.applicantargs: 'hr.applicant' -
applicant_without_emailTextcompute='_compute_applicant_without_email'string='Applicant(s) not having email' -
attachment_idsMany2many → ir.attachmentbypass_search_access=Truecompute='_compute_from_template_id'readonly=Falsestore=Truestring='Attachments' args: 'ir.attachment' -
duplicate_applicant_idsMany2many → hr.applicantcompute='_compute_duplicate_applicant_ids'readonly=Falserelation='applicant_get_refuse_reason_duplicate_applicants_rel'store=Truestring='Duplicate Applications' args: 'hr.applicant' -
duplicate_applicant_ids_domainJsoncompute='_compute_duplicate_applicant_ids_domain' -
duplicatesBooleanstring='Refuse Duplicate Applications' -
duplicates_countIntegercompute='_compute_duplicate_applicant_ids_domain' args: 'Duplicates Count' -
modelCharcompute='_compute_model' args: 'Related Document Model' -
refuse_reason_idMany2one → hr.applicant.refuse.reasondefault=_default_refuse_reason_idrequired=True args: 'hr.applicant.refuse.reason', 'Refuse Reason' -
scheduled_dateCharcompute='_compute_from_template_id'help='send emails after that date. This date is considered as being in UTC timezone.'readonly=Falsestore=True args: 'Scheduled Date' -
send_mailBooleancompute='_compute_send_mail'precompute=Truereadonly=Falsestore=True args: 'Send Email' -
template_idMany2one → mail.templatecompute='_compute_template_id'domain="[('model', '=', 'hr.applicant')]"precompute=Truereadonly=Falsestore=Truestring='Email Template' args: 'mail.template'
-
action_refuse_reason_apply(self)
New fields (3)
-
applicant_idMany2one → hr.applicantcompute='_compute_applicant_id'readonly=Truestring='Applicant' args: 'hr.applicant' -
applicant_idsMany2many → hr.applicantstring='Applicants' args: 'hr.applicant' -
duplicate_applicant_idsMany2many → hr.applicantcompute='_compute_duplicate_applicant_ids'readonly=Falserelation='applicant_refuse_single_duplicate_applicants_rel'store=Truestring='Duplicate Applications' args: 'hr.applicant'
No public methods.
New fields (1)
-
applicant_idMany2one → hr.applicantindex='btree_not_null'ondelete='set null'string='Applicant' args: 'hr.applicant'
-
create(self, vals_list)@api.model_create_multi -
default_get(self, fields)@api.model
New fields (2)
-
kpi_hr_recruitment_new_colleaguesBooleanargs: 'New Employees' -
kpi_hr_recruitment_new_colleagues_valueIntegercompute='_compute_kpi_hr_recruitment_new_colleagues_value'
No public methods.
New fields (60)
-
activeBooleandefault=Truehelp='If the active field is set to false, it will allow you to hide the case without removing it.'index=True args: 'Active' -
applicant_notesHtml -
applicant_propertiesPropertiescopy=Truedefinition='company_id.applicant_properties_definition'precompute=False args: 'Properties' -
application_countIntegercompute='_compute_application_count'help='Applications with the same email or phone or mobile' -
application_statusSelectioncompute='_compute_application_status'search='_search_application_status' args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused'), ('archived', 'Archived')] -
attachment_idsOne2many → ir.attachmentdomain=[('res_model', '=', 'hr.applicant')]string='Attachments' args: 'ir.attachment', 'res_id' -
attachment_numberIntegercompute='_get_attachment_number'string='Number of Attachments' -
availabilityDatehelp='The date at which the applicant will be available to start working'tracking=True args: 'Availability' -
campaign_idMany2oneondelete='set null' -
categ_idsMany2many → hr.applicant.categorystring='Tags'tracking=True args: 'hr.applicant.category' -
colorIntegerdefault=0 args: 'Color Index' -
company_idMany2one → res.companycompute='_compute_company'domain=<expr>index=Truereadonly=Falsestore=Truetracking=True args: 'res.company', 'Company' -
create_dateDatetimereadonly=True args: 'Applied on' -
currency_idMany2one → res.currencyrelated='company_id.currency_id'string='Currency' args: 'res.currency' -
date_closedDatetimecompute='_compute_date_closed'copy=Falsereadonly=Falsestore=Truetracking=True args: 'Hire Date' -
date_last_stage_updateDatetimedefault=fields.Datetime.nowindex=True args: 'Last Stage Update' -
date_openDatetimereadonly=True args: 'Assigned' -
day_closeFloatcompute='_compute_day'compute_sudo=Truestring='Days to Close' -
day_openFloatcompute='_compute_day'compute_sudo=Truestring='Days to Open' -
delay_closeFloataggregator='avg'compute='_compute_delay'help='Number of days to close'readonly=Truestore=Truestring='Delay to Close' -
department_idMany2one → hr.departmentcompute='_compute_department'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"readonly=Falsestore=Truetracking=True args: 'hr.department', 'Department' -
email_fromCharcompute='_compute_partner_phone_email'copy=Trueindex='trigram'inverse='_inverse_partner_email'size=128store=Truestring='Email'tracking=True -
email_normalizedCharindex='trigram' -
emp_is_activeBooleanrelated='employee_id.active'string='Employee Active' -
employee_idMany2one → hr.employeecopy=Falsehelp='Employee linked to the applicant.'index='btree_not_null'string='Employee' args: 'hr.employee' -
employee_nameCharreadonly=Falserelated='employee_id.name'string='Employee Name'tracking=False -
interviewer_idsMany2many → res.userscopy=Falsedomain="[('share', '=', False), ('company_ids', 'in', company_id)]"index=Truestring='Interviewers'tracking=True args: 'res.users', 'hr_applicant_res_users_interviewers_rel' -
is_applicant_in_poolBooleancompute='_compute_is_applicant_in_pool'search='_search_is_applicant_in_pool' -
is_pool_applicantBooleancompute='_compute_is_pool' -
job_idMany2one → hr.jobcopy=Falsedomain="company_id and [('company_id', '=', company_id)] or []"index=Truetracking=True args: 'hr.job', 'Job Position' -
kanban_stateSelectioncopy=Falsedefault='normal'required=Truestring='Kanban State' args: [('normal', 'In Progress'), ('done', 'Ready'), ('waiting', 'Waiting'), ('blocked', 'Blocked')] -
last_stage_idMany2one → hr.recruitment.stagehelp='Stage of the applicant before being in the current stage. Used for lost cases analysis.' args: 'hr.recruitment.stage', 'Last Stage' -
linked_applicant_idsOne2many → hr.applicantargs: 'hr.applicant', 'pool_applicant_id', 'Applications' -
linkedin_profileCharindex='btree_not_null'tracking=True args: 'LinkedIn Profile' -
medium_idMany2onehelp='This displays how the applicant has reached out, e.g. via Email, LinkedIn, Website, etc.'ondelete='set null' -
meeting_display_dateDatecompute='_compute_meeting_display' -
meeting_display_textCharcompute='_compute_meeting_display' -
meeting_idsOne2many → calendar.eventargs: 'calendar.event', 'applicant_id', 'Meetings' -
partner_idMany2one → res.partnercopy=Falseindex='btree_not_null' args: 'res.partner', 'Contact' -
partner_nameChartracking=True args: "Applicant's Name" -
partner_phoneCharcompute='_compute_partner_phone_email'copy=Trueindex='btree_not_null'inverse='_inverse_partner_email'size=32store=Truestring='Phone'tracking=True -
partner_phone_sanitizedCharcompute='_compute_partner_phone_sanitized'index='btree_not_null'store=Truestring='Sanitized Phone Number' -
pool_applicant_idMany2one → hr.applicantindex='btree_not_null' args: 'hr.applicant' -
prioritySelectiondefault='0' args: AVAILABLE_PRIORITIES, 'Evaluation' -
probabilityFloatargs: 'Probability' -
recruiter_emailCharreadonly=Truerelated='recruiter_id.work_email'string='Recruiter Work Email' -
recruiter_idMany2one → hr.employeecompute='_compute_recruiter'domain=<expr>index=Truereadonly=Falsestore=Truetracking=True args: 'hr.employee', 'Recruiter' -
refuse_dateDatetimeargs: 'Refuse Date' -
refuse_reason_idMany2one → hr.applicant.refuse.reasonstring='Refuse Reason'tracking=True args: 'hr.applicant.refuse.reason' -
salary_expectedMonetaryaggregator='avg'currency_field='currency_id'groups='hr_recruitment.group_hr_recruitment_user'help='Salary Expected by Applicant' args: 'Expected' -
salary_expected_extraChargroups='hr_recruitment.group_hr_recruitment_user'help='Salary Expected by Applicant, extra advantages' args: 'Expected Salary Extra' -
salary_proposedMonetaryaggregator='avg'currency_field='currency_id'groups='hr_recruitment.group_hr_recruitment_user'help='Salary Proposed by the Organisation' args: 'Proposed' -
salary_proposed_extraChargroups='hr_recruitment.group_hr_recruitment_user'help='Salary Proposed by the Organisation, extra advantages' args: 'Proposed Salary Extra' -
schedule_paySelectiondefault='monthly'groups='hr_recruitment.group_hr_recruitment_user'required=Truestring='Schedule Pay' args: [('hourly', 'Hour'), ('daily', 'Day'), ('weekly', 'Week'), ('biweekly', 'Bi-Week'), ('monthly', 'Month'), ('yearly', 'Year')] -
sequenceIntegerdefault=10index=Truestring='Sequence' -
source_idMany2oneondelete='set null' -
stage_idMany2one → hr.recruitment.stagecompute='_compute_stage'copy=Falsedomain="['&', '|', ('job_ids', '=', False), ('job_ids', '=', job_id), '|', ('company_id', '=', False), ('company_id', '=', company_id)]"group_expand='_read_group_stage_ids'index=Trueondelete='restrict'readonly=Falsestore=Truetracking=True args: 'hr.recruitment.stage', 'Stage' -
talent_pool_countIntegercompute='_compute_talent_pool_count' -
talent_pool_idsMany2many → hr.talent.poolcomodel_name='hr.talent.pool'string='Talent Pools' -
type_idMany2one → hr.recruitment.degreetracking=True args: 'hr.recruitment.degree', 'Degree'
-
action_archive(self) -
action_create_meeting(self)This opens Meeting's calendar view to schedule meeting on current applicant @return: Dictionary value for created Meeting view -
action_job_add_applicants(self) -
action_open_applications(self) -
action_open_attachments(self) -
action_open_employee(self) -
action_talent_pool_add_applicants(self) -
action_talent_pool_stat_button(self) -
action_unarchive(self) -
archive_applicant(self) -
copy(self, default=None) -
copy_data(self, default=None) -
create(self, vals_list)@api.model_create_multi -
create_employee_from_applicant(self)Create an employee from applicant -
get_empty_list_help(self, help_message)@api.model -
get_view(self, view_id=None, view_type='form', **options)@api.model -
link_applicant_to_talent(self) -
message_new(self, msg_dict, custom_values=None)@api.model -
reset_applicant(self)Reinsert the applicant into the recruitment pipe in the first stage -
write(self, vals)
New fields (2)
-
colorIntegerdefault=_get_default_colorstring='Color Index' -
nameCharrequired=True args: 'Tag Name'
No public methods.
New fields (4)
-
activeBooleandefault=True args: 'Active' -
nameCharrequired=Truetranslate=True args: 'Description' -
sequenceIntegercopy=Falsedefault=10 -
template_idMany2one → mail.templatedomain="[('model', '=', 'hr.applicant')]"string='Email Template' args: 'mail.template'
No public methods.
New fields (3)
-
expected_employeeIntegercompute='_compute_recruitment_stats'string='Expected Employee' -
new_applicant_countIntegercompute='_compute_new_applicant_count'compute_sudo=Truestring='New Applicant' -
new_hired_employeeIntegercompute='_compute_recruitment_stats'string='New Hired Employee'
No public methods.
New fields (2)
-
applicant_idsOne2many → hr.applicantgroups='hr.group_hr_user' args: 'hr.applicant', 'employee_id', 'Applicants' -
applicant_nameCharcompute='_compute_applicant_name'groups='hr.group_hr_user'
-
action_open_applicant(self) -
create(self, vals_list)@api.model_create_multi
New fields (34)
-
activity_countIntegercompute='_compute_activities'groups='hr_recruitment.group_hr_recruitment_interviewer' -
address_idMany2one → res.partnerdefault=_default_address_iddomain=<expr>help="Select the location where the applicant will work. Addresses listed here are defined on the company's contact information."tracking=True args: 'res.partner', 'Job Location' -
alias_idMany2onegroups='hr_recruitment.group_hr_recruitment_interviewer'help='Email alias for this job position. New emails will automatically create new applicants for this job position.' -
all_application_countIntegercompute='_compute_all_application_count'groups='hr_recruitment.group_hr_recruitment_interviewer'string='All Application Count' -
applicant_hiredIntegercompute='_compute_applicant_hired'groups='hr_recruitment.group_hr_recruitment_interviewer'string='Applicants Hired' -
application_countIntegercompute='_compute_application_count'groups='hr_recruitment.group_hr_recruitment_interviewer'string='Application Count' -
application_idsOne2many → hr.applicantgroups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.applicant', 'job_id', 'Job Applications' -
colorIntegerargs: 'Color Index' -
company_partner_idMany2one → res.partnercompute='_compute_company_partner_id' args: 'res.partner' -
currency_idMany2one → res.currencygroups='hr.group_hr_user,hr_recruitment.group_hr_recruitment_user'readonly=Truerelated='company_id.currency_id' args: 'res.currency' -
document_idsOne2many → ir.attachmentcompute='_compute_document_ids'groups='hr_recruitment.group_hr_recruitment_interviewer'readonly=Truestring='Documents' args: 'ir.attachment' -
documents_countIntegercompute='_compute_document_ids'groups='hr_recruitment.group_hr_recruitment_interviewer'string='Document Count' -
employee_countIntegercompute='_compute_employee_count' -
expected_degreeMany2one → hr.recruitment.degreegroups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.recruitment.degree' -
expected_employeesIntegergroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' -
extended_interviewer_idsMany2many → res.userscompute='_compute_extended_interviewer_ids'groups='hr_recruitment.group_hr_recruitment_interviewer'store=True args: 'res.users', 'hr_job_extended_interviewer_res_users' -
favorite_recruiter_idsMany2many → hr.employeedefault=_get_default_favorite_recruiter_ids args: 'hr.employee', 'job_favorite_recruiter_rel', 'job_id', 'recruiter_id' -
industry_idMany2one → res.partner.industrytracking=True args: 'res.partner.industry', 'Industry' -
interviewer_idsMany2many → res.usersdomain="[('share', '=', False), ('company_ids', '=?', company_id)]"groups='hr_recruitment.group_hr_recruitment_interviewer'help="The Interviewers set on the job position can see all Applicants in it. They have access to the information, the attachments, the meeting management and they can refuse him. You don't need to have Recruitment rights to be set as an interviewer."string='Interviewers' args: 'res.users' -
is_favoriteBooleancompute='_compute_is_favorite'compute_sql='_compute_sql_is_favorite'compute_sudo=Trueinverse='_inverse_is_favorite' -
job_propertiesPropertiesdefinition='company_id.job_properties_definition'groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'Properties' -
job_source_idsOne2many → hr.recruitment.sourcegroups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.recruitment.source', 'job_id' -
manager_idMany2one → hr.employeereadonly=Truerelated='department_id.manager_id'store=Truestring='Department Manager' args: 'hr.employee' -
new_application_countIntegercompute='_compute_new_application_count'groups='hr_recruitment.group_hr_recruitment_interviewer'help='Number of applications that are new in the flow (typically at first step of the flow)'string='New Application' -
no_of_employeeIntegergroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' -
no_of_hired_employeeIntegercompute='_compute_no_of_hired_employee'copy=Falsegroups='hr_recruitment.group_hr_recruitment_interviewer'help='Number of hired employees for this job position during recruitment phase.'store=Truestring='Hired' -
old_application_countIntegercompute='_compute_old_application_count'groups='hr_recruitment.group_hr_recruitment_interviewer'string='Old Application' -
open_application_countIntegercompute='_compute_open_application_count'groups='hr_recruitment.group_hr_recruitment_interviewer'help='Number of applications that are still ongoing (not hired or refused)'string='Open Application Count' -
payment_intervalSelectiondefault='monthly'groups='hr.group_hr_user,hr_recruitment.group_hr_recruitment_user'required=Truestring='Scheduled Pay' args: [('hourly', 'Hour'), ('daily', 'Day'), ('weekly', 'Week'), ('biweekly', 'Bi-Week'), ('monthly', 'Month'), ('yearly', 'Year')] -
recruiter_idMany2onecheck_company=Truedomain=_recruiter_domaingroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' -
requirementsTextgroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' -
salary_maxMonetarycurrency_field='currency_id'groups='hr.group_hr_user,hr_recruitment.group_hr_recruitment_user' args: 'Maximum Salary' -
salary_minMonetarycurrency_field='currency_id'groups='hr.group_hr_user,hr_recruitment.group_hr_recruitment_user' args: 'Minimum Salary' -
tag_idsMany2many → hr.job.tagstring='Tags' args: 'hr.job.tag'
-
action_job_add_applicants(self) -
action_open_activities(self) -
action_open_attachments(self) -
action_open_employees(self) -
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (3)
-
emailCharhelp="Applications received from this Email won't be linked to a contact.There will be no email address set on the Applicant either."required=True -
nameCharrequired=True -
regexCharhelp="The regex facilitates to extract information from the subject or body of the received email to autopopulate the Applicant's name field"
-
create(self, vals_list)@api.model_create_multi -
write(self, vals)
New fields (2)
-
colorIntegerdefault=_get_default_colorstring='Color Index' -
nameCharrequired=True args: 'Tag Name'
No public methods.
New fields (3)
-
nameCharrequired=Truetranslate=True args: 'Degree Name' -
scoreFloatdefault=0required=True args: 'Score' -
sequenceIntegerdefault=1 args: 'Sequence'
No public methods.
New fields (7)
-
alias_idMany2one → mail.aliasindex='btree_not_null'ondelete='restrict' args: 'mail.alias', 'Alias ID' -
campaign_idMany2one → utm.campaignargs: 'utm.campaign' -
emailCharreadonly=Truerelated='alias_id.display_name'string='Email' -
has_domainCharcompute='_compute_has_domain' -
job_idMany2one → hr.jobindex=Trueondelete='cascade' args: 'hr.job', 'Job' -
medium_idMany2one → utm.mediumdefault=<expr> args: 'utm.medium' -
source_idMany2one → utm.sourcecopy=Falsedefault=<expr>ondelete='restrict'required=Truestring='Source' args: 'utm.source'
-
create_alias(self) -
create_and_get_alias(self) -
unlink(self)Cascade delete aliases to avoid useless / badly configured aliases.
New fields (10)
-
company_idMany2one → res.companydomain=<expr>help='The company this stage is available to. If not set, it is available to all companies.'string='Company' args: 'res.company' -
foldBooleanhelp='This stage is folded in the kanban view when there are no records in that stage to display.' args: 'Folded in Kanban' -
hired_stageBooleanhelp='If checked, this stage is used to determine the hire date of an applicant' args: 'Hired Stage' -
is_warning_visibleBooleancompute='_compute_is_warning_visible' -
job_idsMany2many → hr.jobhelp='Specific jobs that use this stage. Other jobs will not use this stage.'string='Job Specific' args: 'hr.job' -
nameCharrequired=Truetranslate=True args: 'Stage Name' -
requirementsTextargs: 'Requirements' -
rotting_threshold_daysIntegerdefault=0help='Day count before applicants in this stage become stale. Set to 0 to disable. Changing this parameter will not affect the rotting status/date of resources last updated before this change.' args: 'Days to rot' -
sequenceIntegerdefault=10 args: 'Sequence' -
template_idMany2one → mail.templatehelp='If set, a message is posted on the applicant using the template when the applicant is set to the stage.' args: 'mail.template', 'Email Template'
-
default_get(self, fields)@api.model
New fields (9)
-
activeBooleandefault=True -
categ_idsMany2many → hr.applicant.categorycomodel_name='hr.applicant.category'readonly=Falsestore=Truestring='Tags' -
colorIntegerdefault=_get_default_colorstring='Color' -
company_idMany2one → res.companydefault=<expr>string='Company'tracking=True args: 'res.company' -
descriptionHtmlstring='Talent Pool Description' -
nameCharrequired=Truestring='Title'translate=True -
no_of_talentsIntegercompute='_compute_talent_count'help='The number of talents in this talent pool.'string='# Talents' -
pool_managerMany2one → res.usersdefault=<expr>domain="[('share', '=', False), ('company_ids', 'in', company_id)]"readonly=Falsestore=Truetracking=True args: 'res.users', 'Pool Manager' -
talent_idsMany2many → hr.applicantcomodel_name='hr.applicant'groups='base.group_user'string='Talent'
-
action_talent_pool_add_talents(self)
New fields (0)
No new fields.
Public methods (1)-
init(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
applicant_idsMany2many → hr.applicantrequired=Truestring='Applications' args: 'hr.applicant' -
job_idsMany2many → hr.jobrequired=Truestring='Job Positions' args: 'hr.job'
-
action_add_applicants_to_job(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
applicant_properties_definitionPropertiesDefinitiongroups='hr_recruitment.group_hr_recruitment_interviewer' args: 'Applicant Properties' -
job_properties_definitionPropertiesDefinitionargs: 'Job Properties'
No public methods.
New fields (3)
-
module_hr_recruitment_extractBooleanstring='Send CV to OCR to fill applications' -
module_hr_recruitment_surveyBooleanstring='Interview Forms' -
module_website_hr_recruitmentBooleanstring='Online Posting'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
applicant_idsOne2many → hr.applicantstring='Applicants' args: 'hr.applicant', 'partner_id'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (3)
-
applicant_idsMany2many → hr.applicantrequired=Truestring='Applicants' args: 'hr.applicant' -
categ_idsMany2many → hr.applicant.categorystring='Tags' args: 'hr.applicant.category' -
talent_pool_idsMany2many → hr.talent.poolstring='Talent Pool' args: 'hr.talent.pool'
-
action_add_applicants_to_pool(self)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…