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 IDNameModelTypeStatus
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_ids Many2many → hr.applicant
    args: 'hr.applicant'
  • applicant_without_email Text
    compute='_compute_applicant_without_email' string='Applicant(s) not having email'
  • attachment_ids Many2many → ir.attachment
    bypass_search_access=True compute='_compute_from_template_id' readonly=False store=True string='Attachments' args: 'ir.attachment'
  • duplicate_applicant_ids Many2many → hr.applicant
    compute='_compute_duplicate_applicant_ids' readonly=False relation='applicant_get_refuse_reason_duplicate_applicants_rel' store=True string='Duplicate Applications' args: 'hr.applicant'
  • duplicate_applicant_ids_domain Binary
    compute='_compute_duplicate_applicant_ids_domain'
  • duplicates Boolean
    string='Refuse Duplicate Applications'
  • duplicates_count Integer
    compute='_compute_duplicate_applicant_ids_domain' args: 'Duplicates Count'
  • refuse_reason_id Many2one → hr.applicant.refuse.reason
    default=_default_refuse_reason_id required=True args: 'hr.applicant.refuse.reason', 'Refuse Reason'
  • scheduled_date Char
    compute='_compute_from_template_id' help='send emails after that date. This date is considered as being in UTC timezone.' readonly=False store=True args: 'Scheduled Date'
  • send_mail Boolean
    compute='_compute_send_mail' precompute=True readonly=False store=True args: 'Send Email'
  • template_id Many2one → mail.template
    compute='_compute_template_id' domain="[('model', '=', 'hr.applicant')]" precompute=True readonly=False store=True string='Email Template' args: 'mail.template'
Public methods (1)
  • action_refuse_reason_apply(self)

New fields (3)
  • applicant_ids Many2many → hr.applicant
    context={'active_test': False} required=True string='Applications' args: 'hr.applicant'
  • attachment_ids Many2many → ir.attachment
    bypass_search_access=True readonly=False store=True string='Attachments' args: 'ir.attachment'
  • author_id Many2one → res.partner
    default=<expr> required=True args: 'res.partner', 'Author'
Public methods (1)
  • action_send(self)

New fields (1)
  • applicant_id Many2one → hr.applicant
    index='btree_not_null' ondelete='set null' string='Applicant' args: 'hr.applicant'
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • default_get(self, fields)
    @api.model

New fields (2)
  • kpi_hr_recruitment_new_colleagues Boolean
    args: 'New Employees'
  • kpi_hr_recruitment_new_colleagues_value Integer
    compute='_compute_kpi_hr_recruitment_new_colleagues_value'
Public methods (0)

No public methods.

New fields (61)
  • active Boolean
    default=True help='If the active field is set to false, it will allow you to hide the case without removing it.' index=True args: 'Active'
  • applicant_notes Html
  • applicant_properties Properties
    copy=True definition='job_id.applicant_properties_definition' args: 'Properties'
  • application_count Integer
    compute='_compute_application_count' help='Applications with the same email or phone or mobile'
  • application_status Selection
    compute='_compute_application_status' search='_search_application_status' args: [('ongoing', 'Ongoing'), ('hired', 'Hired'), ('refused', 'Refused'), ('archived', 'Archived')]
  • attachment_ids One2many → ir.attachment
    domain=[('res_model', '=', 'hr.applicant')] string='Attachments' args: 'ir.attachment', 'res_id'
  • attachment_number Integer
    compute='_get_attachment_number' string='Number of Attachments'
  • availability Date
    help='The date at which the applicant will be available to start working' tracking=True args: 'Availability'
  • campaign_id Many2one
    ondelete='set null'
  • categ_ids Many2many → hr.applicant.category
    string='Tags' args: 'hr.applicant.category'
  • color Integer
    default=0 args: 'Color Index'
  • company_id Many2one → res.company
    compute='_compute_company' readonly=False store=True tracking=True args: 'res.company', 'Company'
  • create_date Datetime
    readonly=True args: 'Applied on'
  • date_closed Datetime
    compute='_compute_date_closed' copy=False readonly=False store=True tracking=True args: 'Hire Date'
  • date_last_stage_update Datetime
    default=fields.Datetime.now index=True args: 'Last Stage Update'
  • date_open Datetime
    readonly=True args: 'Assigned'
  • day_close Float
    compute='_compute_day' compute_sudo=True string='Days to Close'
  • day_open Float
    compute='_compute_day' compute_sudo=True string='Days to Open'
  • delay_close Float
    aggregator='avg' compute='_compute_delay' help='Number of days to close' readonly=True store=True string='Delay to Close'
  • department_id Many2one → hr.department
    compute='_compute_department' domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]" readonly=False store=True tracking=True args: 'hr.department', 'Department'
  • email_from Char
    compute='_compute_partner_phone_email' copy=True index='trigram' inverse='_inverse_partner_email' size=128 store=True string='Email'
  • email_normalized Char
    index='trigram'
  • emp_is_active Boolean
    related='employee_id.active' string='Employee Active'
  • employee_id Many2one → hr.employee
    copy=False help='Employee linked to the applicant.' index='btree_not_null' string='Employee' args: 'hr.employee'
  • employee_name Char
    readonly=False related='employee_id.name' string='Employee Name' tracking=False
  • interviewer_ids Many2many → res.users
    copy=False domain="[('share', '=', False), ('company_ids', 'in', company_id)]" index=True string='Interviewers' tracking=True args: 'res.users', 'hr_applicant_res_users_interviewers_rel'
  • is_applicant_in_pool Boolean
    compute='_compute_is_applicant_in_pool' search='_search_is_applicant_in_pool'
  • is_pool_applicant Boolean
    compute='_compute_is_pool'
  • job_id Many2one → hr.job
    copy=False domain="company_id and [('company_id', '=', company_id)] or []" index=True tracking=True args: 'hr.job', 'Job Position'
  • kanban_state Selection
    copy=False default='normal' required=True string='Kanban State' args: [('normal', 'In Progress'), ('done', 'Ready for Next Stage'), ('waiting', 'Waiting'), ('blocked', 'Blocked')]
  • last_stage_id Many2one → hr.recruitment.stage
    help='Stage of the applicant before being in the current stage. Used for lost cases analysis.' args: 'hr.recruitment.stage', 'Last Stage'
  • legend_blocked Char
    related='stage_id.legend_blocked' string='Kanban Blocked'
  • legend_done Char
    related='stage_id.legend_done' string='Kanban Valid'
  • legend_normal Char
    related='stage_id.legend_normal' string='Kanban Ongoing'
  • legend_waiting Char
    related='stage_id.legend_waiting' string='Kanban Waiting'
  • linkedin_profile Char
    index='btree_not_null' args: 'LinkedIn Profile'
  • medium_id Many2one
    help='This displays how the applicant has reached out, e.g. via Email, LinkedIn, Website, etc.' ondelete='set null'
  • meeting_display_date Date
    compute='_compute_meeting_display'
  • meeting_display_text Char
    compute='_compute_meeting_display'
  • meeting_ids One2many → calendar.event
    args: 'calendar.event', 'applicant_id', 'Meetings'
  • partner_id Many2one → res.partner
    copy=False index='btree_not_null' args: 'res.partner', 'Contact'
  • partner_name Char
    args: "Applicant's Name"
  • partner_phone Char
    compute='_compute_partner_phone_email' copy=True index='btree_not_null' inverse='_inverse_partner_email' size=32 store=True string='Phone'
  • partner_phone_sanitized Char
    compute='_compute_partner_phone_sanitized' index='btree_not_null' store=True string='Sanitized Phone Number'
  • pool_applicant_id Many2one → hr.applicant
    index='btree_not_null' args: 'hr.applicant'
  • priority Selection
    default='0' args: AVAILABLE_PRIORITIES, 'Evaluation'
  • probability Float
    args: 'Probability'
  • refuse_date Datetime
    args: 'Refuse Date'
  • refuse_reason_id Many2one → hr.applicant.refuse.reason
    string='Refuse Reason' tracking=True args: 'hr.applicant.refuse.reason'
  • salary_expected Float
    aggregator='avg' groups='hr_recruitment.group_hr_recruitment_user' help='Salary Expected by Applicant' tracking=True args: 'Expected'
  • salary_expected_extra Char
    groups='hr_recruitment.group_hr_recruitment_user' help='Salary Expected by Applicant, extra advantages' tracking=True args: 'Expected Salary Extra'
  • salary_proposed Float
    aggregator='avg' groups='hr_recruitment.group_hr_recruitment_user' help='Salary Proposed by the Organisation' tracking=True args: 'Proposed'
  • salary_proposed_extra Char
    groups='hr_recruitment.group_hr_recruitment_user' help='Salary Proposed by the Organisation, extra advantages' tracking=True args: 'Proposed Salary Extra'
  • sequence Integer
    default=10 index=True string='Sequence'
  • source_id Many2one
    ondelete='set null'
  • stage_id Many2one → hr.recruitment.stage
    compute='_compute_stage' copy=False domain="['|', ('job_ids', '=', False), ('job_ids', '=', job_id)]" group_expand='_read_group_stage_ids' index=True ondelete='restrict' readonly=False store=True tracking=True args: 'hr.recruitment.stage', 'Stage'
  • talent_pool_count Integer
    compute='_compute_talent_pool_count'
  • talent_pool_ids Many2many → hr.talent.pool
    comodel_name='hr.talent.pool' string='Talent Pools'
  • type_id Many2one → hr.recruitment.degree
    args: 'hr.recruitment.degree', 'Degree'
  • user_email Char
    readonly=True related='user_id.email' string='User Email'
  • user_id Many2one → res.users
    compute='_compute_user' domain="[('share', '=', False), ('company_ids', 'in', company_id)]" readonly=False store=True tracking=True args: 'res.users', 'Recruiter'
Public methods (21)
  • 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)
  • color Integer
    default=_get_default_color string='Color Index'
  • name Char
    required=True args: 'Tag Name'
Public methods (0)

No public methods.

New fields (4)
  • active Boolean
    default=True args: 'Active'
  • name Char
    required=True translate=True args: 'Description'
  • sequence Integer
    copy=False default=10
  • template_id Many2one → mail.template
    domain="[('model', '=', 'hr.applicant')]" string='Email Template' args: 'mail.template'
Public methods (0)

No public methods.

New fields (3)
  • expected_employee Integer
    compute='_compute_recruitment_stats' string='Expected Employee'
  • new_applicant_count Integer
    compute='_compute_new_applicant_count' compute_sudo=True string='New Applicant'
  • new_hired_employee Integer
    compute='_compute_recruitment_stats' string='New Hired Employee'
Public methods (0)

No public methods.

New fields (1)
  • applicant_ids One2many → hr.applicant
    groups='hr.group_hr_user' args: 'hr.applicant', 'employee_id', 'Applicants'
Public methods (1)
  • create(self, vals_list)
    @api.model_create_multi

New fields (29)
  • activity_count Integer
    compute='_compute_activities' groups='hr_recruitment.group_hr_recruitment_interviewer'
  • address_id Many2one → res.partner
    default=_default_address_id domain=<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_id Many2one
    groups='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_count Integer
    compute='_compute_all_application_count' groups='hr_recruitment.group_hr_recruitment_interviewer' string='All Application Count'
  • applicant_hired Integer
    compute='_compute_applicant_hired' groups='hr_recruitment.group_hr_recruitment_interviewer' string='Applicants Hired'
  • applicant_properties_definition PropertiesDefinition
    groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'Applicant Properties'
  • application_count Integer
    compute='_compute_application_count' groups='hr_recruitment.group_hr_recruitment_interviewer' string='Application Count'
  • application_ids One2many → hr.applicant
    groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.applicant', 'job_id', 'Job Applications'
  • color Integer
    args: 'Color Index'
  • document_ids One2many → ir.attachment
    compute='_compute_document_ids' groups='hr_recruitment.group_hr_recruitment_interviewer' readonly=True string='Documents' args: 'ir.attachment'
  • documents_count Integer
    compute='_compute_document_ids' groups='hr_recruitment.group_hr_recruitment_interviewer' string='Document Count'
  • employee_count Integer
    compute='_compute_employee_count'
  • expected_degree Many2one → hr.recruitment.degree
    groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.recruitment.degree'
  • expected_employees Integer
    groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
  • extended_interviewer_ids Many2many → res.users
    compute='_compute_extended_interviewer_ids' groups='hr_recruitment.group_hr_recruitment_interviewer' store=True args: 'res.users', 'hr_job_extended_interviewer_res_users'
  • favorite_user_ids Many2many → res.users
    default=_get_default_favorite_user_ids args: 'res.users', 'job_favorite_user_rel', 'job_id', 'user_id'
  • industry_id Many2one → res.partner.industry
    groups='hr_recruitment.group_hr_recruitment_interviewer' tracking=True args: 'res.partner.industry', 'Industry'
  • interviewer_ids Many2many → res.users
    domain="[('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_favorite Boolean
    compute='_compute_is_favorite' inverse='_inverse_is_favorite'
  • job_properties Properties
    definition='company_id.job_properties_definition' groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'Properties'
  • job_source_ids One2many → hr.recruitment.source
    groups='hr_recruitment.group_hr_recruitment_interviewer' args: 'hr.recruitment.source', 'job_id'
  • manager_id Many2one → hr.employee
    groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user' readonly=True related='department_id.manager_id' store=True string='Department Manager' args: 'hr.employee'
  • new_application_count Integer
    compute='_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_employee Integer
    groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
  • no_of_hired_employee Integer
    compute='_compute_no_of_hired_employee' copy=False groups='hr_recruitment.group_hr_recruitment_interviewer' help='Number of hired employees for this job position during recruitment phase.' store=True string='Hired'
  • old_application_count Integer
    compute='_compute_old_application_count' groups='hr_recruitment.group_hr_recruitment_interviewer' string='Old Application'
  • open_application_count Integer
    compute='_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'
  • requirements Text
    groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
  • user_id Many2one
    groups='hr_recruitment.group_hr_recruitment_interviewer,hr.group_hr_user'
Public methods (5)
  • 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)
  • email Char
    help="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
  • name Char
    required=True
  • regex Char
    help="The regex facilitates to extract information from the subject or body of the received email to autopopulate the Applicant's name field"
Public methods (2)
  • create(self, vals_list)
    @api.model_create_multi
  • write(self, vals)

New fields (3)
  • name Char
    required=True translate=True args: 'Degree Name'
  • score Float
    default=0 required=True args: 'Score'
  • sequence Integer
    default=1 args: 'Sequence'
Public methods (0)

No public methods.

New fields (6)
  • alias_id Many2one → mail.alias
    ondelete='restrict' args: 'mail.alias', 'Alias ID'
  • campaign_id Many2one → utm.campaign
    args: 'utm.campaign'
  • email Char
    readonly=True related='alias_id.display_name' string='Email'
  • has_domain Char
    compute='_compute_has_domain'
  • job_id Many2one → hr.job
    index=True ondelete='cascade' args: 'hr.job', 'Job'
  • medium_id Many2one → utm.medium
    default=<expr> args: 'utm.medium'
Public methods (3)
  • create_alias(self)
  • create_and_get_alias(self)
  • unlink(self)
    Cascade delete aliases to avoid useless / badly configured aliases.

New fields (13)
  • fold Boolean
    help='This stage is folded in the kanban view when there are no records in that stage to display.' args: 'Folded in Kanban'
  • hired_stage Boolean
    help='If checked, this stage is used to determine the hire date of an applicant' args: 'Hired Stage'
  • is_warning_visible Boolean
    compute='_compute_is_warning_visible'
  • job_ids Many2many → hr.job
    help='Specific jobs that use this stage. Other jobs will not use this stage.' string='Job Specific' args: 'hr.job'
  • legend_blocked Char
    default=<expr> required=True translate=True args: 'Red Kanban Label'
  • legend_done Char
    default=<expr> required=True translate=True args: 'Green Kanban Label'
  • legend_normal Char
    default=<expr> required=True translate=True args: 'Grey Kanban Label'
  • legend_waiting Char
    default=<expr> required=True translate=True args: 'Orange Kanban Label'
  • name Char
    required=True translate=True args: 'Stage Name'
  • requirements Text
    args: 'Requirements'
  • rotting_threshold_days Integer
    default=0 help='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'
  • sequence Integer
    default=10 args: 'Sequence'
  • template_id Many2one → mail.template
    help='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'
Public methods (1)
  • default_get(self, fields)
    @api.model

New fields (9)
  • active Boolean
    default=True
  • categ_ids Many2many → hr.applicant.category
    comodel_name='hr.applicant.category' readonly=False store=True string='Tags'
  • color Integer
    default=_get_default_color string='Color'
  • company_id Many2one → res.company
    default=<expr> string='Company' tracking=True args: 'res.company'
  • description Html
    string='Talent Pool Description'
  • name Char
    required=True string='Title' translate=True
  • no_of_talents Integer
    compute='_compute_talent_count' help='The number of talents in this talent pool.' string='# Talents'
  • pool_manager Many2one → res.users
    default=<expr> domain="[('share', '=', False), ('company_ids', 'in', company_id)]" readonly=False store=True tracking=True args: 'res.users', 'Pool Manager'
  • talent_ids Many2many → hr.applicant
    comodel_name='hr.applicant' groups='base.group_user' string='Talent'
Public methods (1)
  • 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_ids Many2many → hr.applicant
    required=True string='Applications' args: 'hr.applicant'
  • job_ids Many2many → hr.job
    required=True string='Job Positions' args: 'hr.job'
Public methods (1)
  • 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_definition PropertiesDefinition
    args: 'Job Properties'
Public methods (0)

No public methods.

New fields (3)
  • module_hr_recruitment_extract Boolean
    string='Send CV to OCR to fill applications'
  • module_hr_recruitment_survey Boolean
    string='Interview Forms'
  • module_website_hr_recruitment Boolean
    string='Online Posting'
Public methods (0)

No public methods.

New fields (1)
  • applicant_ids One2many → hr.applicant
    string='Applicants' args: 'hr.applicant', 'partner_id'
Public methods (0)

No public methods.

New fields (0)

No new fields.

Public methods (0)

No public methods.

New fields (3)
  • applicant_ids Many2many → hr.applicant
    domain=['|', ('talent_pool_ids', '!=', False), ('is_applicant_in_pool', '=', False)] required=True string='Applicants' args: 'hr.applicant'
  • categ_ids Many2many → hr.applicant.category
    string='Tags' args: 'hr.applicant.category'
  • talent_pool_ids Many2many → hr.talent.pool
    string='Talent Pool' args: 'hr.talent.pool'
Public methods (1)
  • 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…