Skip to content

Instantly share code, notes, and snippets.

@ray-odoo
Last active January 11, 2021 00:57
Show Gist options
  • Save ray-odoo/92015f7e73d3a35989eb0a273226823c to your computer and use it in GitHub Desktop.
Save ray-odoo/92015f7e73d3a35989eb0a273226823c to your computer and use it in GitHub Desktop.
Leverage Employee Skills when assigning Tasks in the Projects App
# https://www.odoo.com/forum/help-1/how-can-i-leverage-employee-skills-when-assigning-tasks-in-the-projects-app-181599
###### Offboard:
env['ir.ui.view'].search([('name','=','custom_ray_odoo')]).unlink()
env['ir.model.fields'].search([('name','=','x_employee_skill_ids')]).unlink()
###### Onboard:
# Schema
env['ir.model.fields'].create({
'name' : 'x_employee_skill_ids',
'field_description': 'Skills',
'model_id': env.ref('project.model_project_task').id,
'ttype': 'many2many',
'help': 'Skills desired or needed to complete this Task',
'relation': 'hr.skill',
})
# UI
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'tree',
'model': 'project.task',
'mode': 'extension',
'inherit_id': env.ref('project.view_task_tree2').id,
'arch_base': '''
<data>
<!-- Show Skills needed to complete a Task -->
<field name="user_id" position="after">
<field name="x_employee_skill_ids" widget="many2many_tags" optional="show"/>
</field>
</data>
''',
})
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'form',
'model': 'project.task',
'mode': 'extension',
'inherit_id': env.ref('project.view_task_form2').id,
'arch_base': '''
<data>
<!-- Show Skills needed to complete a Task -->
<field name="user_id" position="after">
<field name="x_employee_skill_ids" widget="many2many_tags"/>
</field>
</data>
''',
})
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'tree',
'model': 'hr.skill',
'mode': 'extension',
'inherit_id': env.ref('hr_skills.employee_skill_view_tree').id,
'arch_base': '''
<data>
<!-- Add skill Types -->
<field name="name" position="after">
<field name="skill_type_id"/>
</field>
</data>
''',
})
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'search',
'model': 'hr.skill',
'mode': 'primary',
'arch_base': '''
<search>
<field name="name"/>
<field name="skill_type_id"/>
</search>
''',
})
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'tree',
'model': 'res.users',
'mode': 'primary',
'priority': 15,
'arch_base': '''
<tree string="Users">
<field name="name"/>
<field name="category_ids" widget="many2many_tags" optional="show"/>
<field name="login" optional="hide"/>
<field name="lang" optional="hide"/>
<field name="department_id"/>
<field name="employee_parent_id"/>
<field name="employee_skill_ids" widget="many2many_tags"/>
<field name="company_id" groups="base.group_multi_company"/>
</tree>
''',
})
env['ir.ui.view'].create({
'name': 'custom_ray_odoo',
'type': 'search',
'model': 'res.users',
'mode': 'extension',
'inherit_id': env.ref('base.view_users_search').id,
'arch_base': '''
<data>
<!-- Add skill Types -->
<field name="name" position="after">
<field name="employee_skill_ids"/>
</field>
</data>
''',
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment