TIP: You can type at any time to perform a new search.
Recruitment
hr_recruitment · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.1
- Category
- Human Resources/Recruitment
- Folder size
- 11.06 MB
- License
- LGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://www.odoo.com/app/recruitment
- Last tracking update
- 2026-08-15 22:44:18
- Authors
- Odoo S.A.
- Maintainers
- Odoo S.A.
- Committers
- Xavier Morel, Raphael Collet, Thibault Delavallée, Odoo Translation Bot, Joren Van Onder, Nicolas Lempereur, Yannick Tivisse, Pierre Masereel, Julien Castiaux, Julien Mougenot, Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, Mathieu Duckerts-Antoine, William Braeckman, Ahmad Khanalizadeh, Didier (did), Abdelouahab (abla), Dossogne Bertrand, Mathieu Walravens, luvi, Renaud Thiry, Louis Wicket (wil), alsh-odoo, Yash Vaishnav, Victor Piryns (pivi), Mahamadasif Ansari, Dylan Kiss (dyki), Xavier Bol (xbo), omra-odoo, Andrzej(pian), sesn-odoo, Mélanie, Youssef Bashandy, ravb-odoo, reka-odoo, Nathaniel (naja), Julien Carion (juca), adsh-odoo, mega, Tanguy Quéguineur, asno-odoo, rmun-odoo, Shaan Thakkar (THSH), thle-odoo, Mathieu Coutant, Yassin Abdelkarim, guce, yagp-odoo, rame-odoo, Abdelrahman Mahmoud (amah), ahta, sben-odoo, David Van Droogenbroeck (DROD), elhayyany, Pierre Pulinckx, nikj-odoo, Michaël Mattiello, bona-odoo, Krzysztof Magusiak (krma), Maeva De Keyser (MDEK), utma-odoo, pajo, bhna-odoo, akha, Bertrand Dossogne, thha-odoo, MAGREMENT, agbr-odoo, ksar-odoo, Quentin Colla (qucol), dhka-odoo, Einar Andersen (eian), assh-odoo, Elliot ELCO, Ziri, saurabh, Abdelouahab Laaroussi (abla), lebm-odoo, flotchet, chpa-odoo, Faruk Avcı, Amr Yasser (amry), 3amo-magdy, SurryaT10, Sara Briki
- 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 (48)
| 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_send_mail_view_form |
applicant.send.mail | 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_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_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_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 (27)
New fields (11)
-
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_domainBinarycompute='_compute_duplicate_applicant_ids_domain' -
duplicatesBooleanstring='Refuse Duplicate Applications' -
duplicates_countIntegercompute='_compute_duplicate_applicant_ids_domain' args: 'Duplicates Count' -
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_idsMany2many → hr.applicantcontext={'active_test': False}required=Truestring='Applications' args: 'hr.applicant' -
attachment_idsMany2many → ir.attachmentbypass_search_access=Truereadonly=Falsestore=Truestring='Attachments' args: 'ir.attachment' -
author_idMany2one → res.partnerdefault=<expr>required=True args: 'res.partner', 'Author'
-
action_send(self)
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 (61)
-
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='job_id.applicant_properties_definition' 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' args: 'hr.applicant.category' -
colorIntegerdefault=0 args: 'Color Index' -
company_idMany2one → res.companycompute='_compute_company'readonly=Falsestore=Truetracking=True args: 'res.company', 'Company' -
create_dateDatetimereadonly=True args: 'Applied on' -
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' -
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 for Next Stage'), ('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' -
legend_blockedCharrelated='stage_id.legend_blocked'string='Kanban Blocked' -
legend_doneCharrelated='stage_id.legend_done'string='Kanban Valid' -
legend_normalCharrelated='stage_id.legend_normal'string='Kanban Ongoing' -
legend_waitingCharrelated='stage_id.legend_waiting'string='Kanban Waiting' -
linkedin_profileCharindex='btree_not_null' 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_nameCharargs: "Applicant's Name" -
partner_phoneCharcompute='_compute_partner_phone_email'copy=Trueindex='btree_not_null'inverse='_inverse_partner_email'size=32store=Truestring='Phone' -
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' -
refuse_dateDatetimeargs: 'Refuse Date' -
refuse_reason_idMany2one → hr.applicant.refuse.reasonstring='Refuse Reason'tracking=True args: 'hr.applicant.refuse.reason' -
salary_expectedFloataggregator='avg'groups='hr_recruitment.group_hr_recruitment_user'help='Salary Expected by Applicant'tracking=True args: 'Expected' -
salary_expected_extraChargroups='hr_recruitment.group_hr_recruitment_user'help='Salary Expected by Applicant, extra advantages'tracking=True args: 'Expected Salary Extra' -
salary_proposedFloataggregator='avg'groups='hr_recruitment.group_hr_recruitment_user'help='Salary Proposed by the Organisation'tracking=True args: 'Proposed' -
salary_proposed_extraChargroups='hr_recruitment.group_hr_recruitment_user'help='Salary Proposed by the Organisation, extra advantages'tracking=True args: 'Proposed Salary Extra' -
sequenceIntegerdefault=10index=Truestring='Sequence' -
source_idMany2oneondelete='set null' -
stage_idMany2one → hr.recruitment.stagecompute='_compute_stage'copy=Falsedomain="['|', ('job_ids', '=', False), ('job_ids', '=', job_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.degreeargs: 'hr.recruitment.degree', 'Degree' -
user_emailCharreadonly=Truerelated='user_id.email'string='User Email' -
user_idMany2one → res.userscompute='_compute_user'domain="[('share', '=', False), ('company_ids', 'in', company_id)]"readonly=Falsestore=Truetracking=True args: 'res.users', 'Recruiter'
-
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_send_email(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 (1)
-
applicant_idsOne2many → hr.applicantgroups='hr.group_hr_user' args: 'hr.applicant', 'employee_id', 'Applicants'
-
create(self, vals_list)@api.model_create_multi
New fields (29)
-
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' -
applicant_properties_definitionPropertiesDefinitiongroups='hr_recruitment.group_hr_recruitment_interviewer' args: 'Applicant Properties' -
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' -
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_user_idsMany2many → res.usersdefault=_get_default_favorite_user_ids args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id' -
industry_idMany2one → res.partner.industrygroups='hr_recruitment.group_hr_recruitment_interviewer'tracking=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'inverse='_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.employeegroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'readonly=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' -
requirementsTextgroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' -
user_idMany2onegroups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
-
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 (3)
-
nameCharrequired=Truetranslate=True args: 'Degree Name' -
scoreFloatdefault=0required=True args: 'Score' -
sequenceIntegerdefault=1 args: 'Sequence'
No public methods.
New fields (6)
-
alias_idMany2one → mail.aliasondelete='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'
-
create_alias(self) -
create_and_get_alias(self) -
unlink(self)Cascade delete aliases to avoid useless / badly configured aliases.
New fields (13)
-
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' -
legend_blockedChardefault=<expr>required=Truetranslate=True args: 'Red Kanban Label' -
legend_doneChardefault=<expr>required=Truetranslate=True args: 'Green Kanban Label' -
legend_normalChardefault=<expr>required=Truetranslate=True args: 'Grey Kanban Label' -
legend_waitingChardefault=<expr>required=Truetranslate=True args: 'Orange Kanban Label' -
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 (1)
-
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 (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.applicantdomain=['|', ('talent_pool_ids', '!=', False), ('is_applicant_in_pool', '=', False)]required=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…