[ADD]partner_skills

This commit is contained in:
2026-04-15 16:47:44 +02:00
parent c8d6b8f6c4
commit b41c2550e2
16 changed files with 961 additions and 0 deletions

View File

@@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Skill Level Tree -->
<record id="partner_skill_level_view_tree" model="ir.ui.view">
<field name="name">partner.skill.level.view.tree</field>
<field name="model">partner.skill.level</field>
<field name="arch" type="xml">
<list editable="bottom">
<field name="sequence" widget="handle" />
<field name="name" />
<field name="level_progress" widget="progressbar" />
<field name="default_level" widget="boolean_toggle" />
</list>
</field>
</record>
<!-- Skill Level Form -->
<record id="partner_skill_level_view_form" model="ir.ui.view">
<field name="name">partner.skill.level.view.form</field>
<field name="model">partner.skill.level</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="name" />
<field name="level_progress" options="{'editable': true}" />
</group>
</sheet>
</form>
</field>
</record>
<!-- Skill Tree -->
<record id="partner_skill_view_tree" model="ir.ui.view">
<field name="name">partner.skill.view.tree</field>
<field name="model">partner.skill</field>
<field name="arch" type="xml">
<list>
<field name="sequence" widget="handle" />
<field name="name" />
<field name="skill_type_id" />
</list>
</field>
</record>
<!-- Skill Search -->
<record id="partner_skill_view_search" model="ir.ui.view">
<field name="name">partner.skill.view.search</field>
<field name="model">partner.skill</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="skill_type_id" />
<group expand="0" string="Group By">
<filter name="skill_type" string="Skill Type"
context="{'group_by': 'skill_type_id'}" />
</group>
</search>
</field>
</record>
<!-- Skill Type Search -->
<record id="partner_skill_type_view_search" model="ir.ui.view">
<field name="name">partner.skill.type.view.search</field>
<field name="model">partner.skill.type</field>
<field name="arch" type="xml">
<search>
<field name="name" />
<field name="skill_ids" />
<field name="skill_level_ids" />
<filter name="inactive" string="Archived" domain="[('active', '=', False)]" />
</search>
</field>
</record>
<!-- Skill Type Tree -->
<record id="partner_skill_type_view_tree" model="ir.ui.view">
<field name="name">partner.skill.type.view.tree</field>
<field name="model">partner.skill.type</field>
<field name="arch" type="xml">
<list>
<field name="name" />
<field name="color" widget="color_picker" />
<field name="skill_ids" widget="many2many_tags" />
<field name="skill_level_ids" widget="many2many_tags" />
</list>
</field>
</record>
<!-- Skill Type Form -->
<record id="partner_skill_type_view_form" model="ir.ui.view">
<field name="name">partner.skill.type.view.form</field>
<field name="model">partner.skill.type</field>
<field name="arch" type="xml">
<form>
<sheet>
<widget name="web_ribbon" title="Archived" bg_color="text-bg-danger"
invisible="active" />
<div class="oe_title">
<h1>
<field name="name" placeholder="e.g. Languages" />
</h1>
</div>
<group>
<group>
<field name="active" invisible="1" />
<field name="color" widget="color_picker" />
</group>
</group>
<notebook>
<page string="Skills" name="skills">
<field name="skill_ids" nolabel="1">
<list editable="bottom">
<field name="sequence" widget="handle" />
<field name="name" />
</list>
</field>
</page>
<page string="Levels" name="levels">
<field name="skill_level_ids" nolabel="1">
<list editable="bottom">
<field name="name" />
<field name="level_progress" widget="progressbar"
options="{'editable': true}" />
<field name="default_level" widget="boolean_toggle_load" />
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<!-- Partner Skill Line Form (Select Skills dialog) -->
<record id="partner_skill_line_view_form" model="ir.ui.view">
<field name="name">partner.skill.line.view.form</field>
<field name="model">partner.skill.line</field>
<field name="arch" type="xml">
<form string="Skills" class="o_partner_skills_dialog_form">
<sheet>
<group>
<group>
<field name="partner_id" invisible="1"/>
<field name="skill_type_id" widget="radio"/>
</group>
<group>
<field name="skill_id" options="{'no_open': True, 'no_create': True}"
context="{'default_skill_type_id': skill_type_id}"
domain="[('skill_type_id', '=', skill_type_id)]"
invisible="not skill_type_id"/>
<label for="skill_level_id"
invisible="not (skill_id or skill_type_id)"/>
<div class="o_row" invisible="not (skill_id or skill_type_id)">
<span class="ps-0" style="flex:1">
<field name="skill_level_id"
readonly="not skill_id"
options="{'no_open': True, 'no_create': True}"
context="{'from_skill_level_dropdown': True, 'default_skill_type_id': skill_type_id}"/>
</span>
<span style="flex:1">
<field name="level_progress" widget="progressbar" class="o_partner_skills_progress" invisible="not skill_level_id"/>
</span>
</div>
</group>
</group>
</sheet>
</form>
</field>
</record>
<!-- Skill Type Action -->
<record id="partner_skill_type_action" model="ir.actions.act_window">
<field name="name">Skill Types</field>
<field name="res_model">partner.skill.type</field>
<field name="view_mode">list,form</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Create a new skill type
</p>
</field>
</record>
<!-- Menu items -->
<menuitem id="menu_partner_skills"
name="Partner Skills"
parent="contacts.res_partner_menu_config"
sequence="10" />
<menuitem id="menu_action_res_bank_form"
action="partner_skill_type_action"
parent="menu_partner_skills"
sequence="1" />
</odoo>

View File

@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<record id="res_partner_view_form_inherit_skills" model="ir.ui.view">
<field name="name">res.partner.view.form.inherit.skills</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//page[@name='internal_notes']" position="before">
<page name="partner_skills" string="Skills">
<div class="o_partner_skills_group d-flex flex-column">
<field mode="list" nolabel="1" name="partner_skill_ids" widget="partner_skills_one2many" class="mt-2">
<list>
<field name="skill_id"/>
<field name="skill_level_id"/>
<field name="level_progress" widget="progressbar"/>
<field name="skill_type_id" optional="hidden"/>
</list>
</field>
</div>
</page>
</xpath>
</field>
</record>
<record id="res_partner_view_search_inherit_skills" model="ir.ui.view">
<field name="name">res.partner.view.search.inherit.skills</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='name']" position="after">
<field name="partner_skill_ids" string="Skill"/>
</xpath>
</field>
</record>
</odoo>