mirror of
https://github.com/bringout/oca-ocb-hr.git
synced 2026-04-27 19:52:08 +02:00
19.0 vanilla
This commit is contained in:
parent
a1137a1456
commit
e1d89e11e3
2789 changed files with 1093187 additions and 605897 deletions
|
|
@ -7,32 +7,39 @@
|
|||
<form string="Skills" class="o_hr_skills_dialog_form">
|
||||
<sheet>
|
||||
<group>
|
||||
<group>
|
||||
<field name="applicant_id" invisible="1"/>
|
||||
<field name="skill_type_id" widget="radio" />
|
||||
</group>
|
||||
<group>
|
||||
<field name="skill_id" options="{'no_open': True, 'no_create_edit': True}"
|
||||
context="{'default_skill_type_id': skill_type_id}"
|
||||
domain="[('skill_type_id', '=', skill_type_id)]"
|
||||
attrs="{'invisible': [('skill_type_id', '=', False)]}"/>
|
||||
<label for="skill_level_id"
|
||||
attrs="{'invisible': ['|', ('skill_id', '=', False), ('skill_type_id', '=', False)]}"/>
|
||||
<div class="o_row"
|
||||
attrs="{'invisible': ['|', ('skill_id', '=', False), ('skill_type_id', '=', False)]}">
|
||||
<span class="ps-0" style="flex:1">
|
||||
<field name="skill_level_id"
|
||||
attrs="{'readonly': [('skill_id', '=', False)]}"
|
||||
context="{'from_skill_level_dropdown': True}" />
|
||||
</span>
|
||||
<span style="flex:1">
|
||||
<field name="level_progress" widget="progressbar" class="o_hr_skills_progress" attrs="{'invisible': [('skill_level_id', '=', False)]}" />
|
||||
</span>
|
||||
</div>
|
||||
</group>
|
||||
<field name="applicant_id" invisible="1"/>
|
||||
<field name="skill_type_id" widget="selection_badge" string="Category"/>
|
||||
<field name="skill_id" widget="selection_badge"
|
||||
context="{'default_skill_type_id': skill_type_id}"
|
||||
domain="[('skill_type_id', '=', skill_type_id)]"
|
||||
invisible="not skill_type_id"
|
||||
/>
|
||||
<field name="skill_level_id"
|
||||
readonly="not skill_id" widget="selection_badge"
|
||||
invisible="levels_count <= 1"
|
||||
options="{'no_open': True, 'no_create': True}"
|
||||
context="{'default_skill_type_id': skill_type_id}"
|
||||
/>
|
||||
<label for="valid_from" string="Valid from" invisible="not is_certification"/>
|
||||
<div class="d-flex flex-row gap-3 align-items-baseline" invisible="not is_certification">
|
||||
<field name="valid_from" style="width: 12ch" />
|
||||
<label for="valid_to" string="To"/>
|
||||
<field name="valid_to" placeholder="indefinite" style="width: 12ch"/>
|
||||
</div>
|
||||
</group>
|
||||
<div class="alert alert-warning ps-3" role="alert" invisible="not display_warning_message">
|
||||
The end date must be after the start date.
|
||||
</div>
|
||||
</sheet>
|
||||
</form>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<menuitem
|
||||
id="hr_recruitment_skill_type_menu"
|
||||
name="Skill Types"
|
||||
action="hr_skills.hr_skill_type_action"
|
||||
parent="hr_recruitment.menu_hr_recruitment_config_employees"
|
||||
sequence="35"
|
||||
/>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -7,26 +7,45 @@
|
|||
<field name="arch" type="xml">
|
||||
<notebook position="inside">
|
||||
<page string="Skills">
|
||||
<div class="row">
|
||||
<div class="o_hr_skills_editable o_hr_skills_group o_group_skills col-lg-5 d-flex flex-column">
|
||||
<field name="id" invisible="1"/>
|
||||
<field name="is_interviewer" invisible="1"/>
|
||||
<field mode="tree" nolabel="1" name="applicant_skill_ids" widget="skills_one2many"
|
||||
context="{'default_applicant_id': id}" attrs="{'readonly': [('is_interviewer', '=', True)]}">
|
||||
<tree>
|
||||
<field name="skill_type_id" invisible="1"/>
|
||||
<field name="skill_id"/>
|
||||
<field name="skill_level_id"/>
|
||||
<field name="level_progress" widget="progressbar"/>
|
||||
</tree>
|
||||
</field>
|
||||
</div>
|
||||
<div class="o_hr_skills_editable o_hr_skills_group o_group_skills">
|
||||
<field name="id" invisible="1"/>
|
||||
<group>
|
||||
<group>
|
||||
<field mode="list" nolabel="1" name="current_applicant_skill_ids" widget="skills_one2many"
|
||||
context="{'default_applicant_id': id, 'no_timeline': True}" >
|
||||
<list
|
||||
class="o_applicant_skills"
|
||||
decoration-muted="valid_to and valid_to < context_today().strftime('%Y-%m-%d')"
|
||||
decoration-danger="valid_to and valid_to <= (context_today() + relativedelta(days=7)).strftime('%Y-%m-%d') and valid_to > context_today().strftime('%Y-%m-%d')"
|
||||
decoration-warning="valid_to and valid_to <= (context_today() + relativedelta(months=1)).strftime('%Y-%m-%d') and valid_to > (context_today() + relativedelta(days=7)).strftime('%Y-%m-%d')">
|
||||
<field name="skill_type_id" optional="hidden"/>
|
||||
<field name="skill_id"/>
|
||||
<field name="skill_level_id"/>
|
||||
<field name="level_progress" widget="progressbar"/>
|
||||
<field name="valid_to" column_invisible="1"/>
|
||||
</list>
|
||||
</field>
|
||||
</group>
|
||||
<group>
|
||||
<field name="matching_score" invisible="is_pool_applicant" nolabel="1" widget="skill_match_gauge_field" options="{'max_value': 100}" />
|
||||
</group>
|
||||
</group>
|
||||
</div>
|
||||
</page>
|
||||
</notebook>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_find_matching_job" model="ir.actions.act_window">
|
||||
<field name="name">Matching Positions</field>
|
||||
<field name="res_model">hr.job</field>
|
||||
<field name="view_mode">list</field>
|
||||
<field name="target">current</field>
|
||||
<field name="binding_model_id" ref="hr_recruitment.model_hr_applicant"/>
|
||||
<field name="binding_view_types">form</field>
|
||||
<field name="context">{'active_applicant_id': active_id,}</field>
|
||||
</record>
|
||||
|
||||
<record id="hr_applicant_view_search_bis" model="ir.ui.view">
|
||||
<field name="name">hr.applicant.view.search.inherit.skills.bis</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
|
|
@ -35,9 +54,6 @@
|
|||
<xpath expr="//field[@name='email_from']" position="after">
|
||||
<field name="applicant_skill_ids"/>
|
||||
</xpath>
|
||||
<filter name="refuse_reason_id" position="after">
|
||||
<filter string="Skills" name="groupby_skills" context="{'group_by': 'skill_ids'}"/>
|
||||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
|
|
@ -54,4 +70,50 @@
|
|||
</filter>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_tree_view_job" model="ir.ui.view">
|
||||
<field name="name">hr.applicant.view.list.inherit.hr.recruitment.skills</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.crm_case_tree_view_job"/>
|
||||
<field name="mode">extension</field>
|
||||
<field name="arch" type="xml">
|
||||
<field name="stage_id" position="after">
|
||||
<field name="matching_score" string="Matching" widget="progressbar" options="{'overflow_class': 'bg-success'}" invisible="not matching_score"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="crm_case_tree_view_inherit_hr_recruitment_skills" model="ir.ui.view">
|
||||
<field name="name">hr.applicant.view.tree.inherit.skills</field>
|
||||
<field name="model">hr.applicant</field>
|
||||
<field name="inherit_id" ref="hr_recruitment_skills.crm_case_tree_view_job"/>
|
||||
<field name="mode">primary</field>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//list" position="attributes">
|
||||
<attribute name="class" add="o_search_matching_applicant" separator=" "/>
|
||||
</xpath>
|
||||
<xpath expr="//list" position="inside">
|
||||
<header>
|
||||
<button name="action_add_to_job" string="Move to this Job Position" type="object" class="btn-secondary"/>
|
||||
</header>
|
||||
</xpath>
|
||||
<field name="application_status" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</field>
|
||||
<field name="priority" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</field>
|
||||
<field name="partner_phone" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</field>
|
||||
<field name="categ_ids" position="attributes">
|
||||
<attribute name="optional">hide</attribute>
|
||||
</field>
|
||||
<field name="partner_name" position="after">
|
||||
<xpath expr="//field[@name='matching_score']" position="move"/>
|
||||
<field name="matching_skill_ids" widget="many2many_tags"/>
|
||||
<field name="missing_skill_ids" widget="many2many_tags"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,35 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="hr_job_list_inherit_hr_recruitment_skills" model="ir.ui.view">
|
||||
<field name="name">hr.job.view.list.inherit</field>
|
||||
<field name="model">hr.job</field>
|
||||
<field name="inherit_id" ref="hr_recruitment.hr_job_view_tree_inherit"/>
|
||||
<field name="arch" type="xml">
|
||||
<field name="department_id" position="after">
|
||||
<field name="applicant_matching_score" widget="progressbar"
|
||||
groups="hr_recruitment.group_hr_recruitment_interviewer"
|
||||
invisible="not applicant_matching_score" column_invisible="not context.get('active_applicant_id')"/>
|
||||
</field>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="view_hr_job_form" model="ir.ui.view">
|
||||
<field name="name">hr.job.view.form.inherit.hr.recruitment.skills</field>
|
||||
<field name="model">hr.job</field>
|
||||
<field name="inherit_id" ref="hr_skills.view_hr_job_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//group[@id='job_skills']/field[@name='current_job_skill_ids']" position="attributes">
|
||||
<attribute name="groups">!hr.group_hr_user,!hr_recruitment.group_hr_recruitment_interviewer</attribute>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
|
||||
<record id="action_applicant_search_applicant" model="ir.actions.server">
|
||||
<field name="name">Search Matching Applicants</field>
|
||||
<field name="model_id" ref="hr_recruitment.model_hr_job"/>
|
||||
<field name="binding_model_id" ref="hr_recruitment.model_hr_job"/>
|
||||
<field name="binding_view_types">form</field>
|
||||
<field name="state">code</field>
|
||||
<field name="code">action = records.action_search_matching_applicants()</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Loading…
Add table
Add a link
Reference in a new issue