odoo18/addons_extensions/project_task_timesheet_exte.../view/teams.xml

133 lines
6.4 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<odoo>
<record id="internal_teams_list_view" model="ir.ui.view">
<field name="name">internal.teams.list.view</field>
<field name="model">internal.teams</field>
<field name="arch" type="xml">
<list>
<field name="complete_name"/>
<field name="team_lead"/>
<field name="all_members_ids" widget="many2many_tags"/>
</list>
</field>
</record>
<record id="internal_teams_form_view" model="ir.ui.view">
<field name="name">internal.teams.form.view</field>
<field name="model">internal.teams</field>
<field name="arch" type="xml">
<form>
<sheet>
<group>
<field name="complete_name" invisible="1"/>
<field name="team_name"/>
<field name="team_lead"/>
<!-- ✅ added -->
<field name="parent_id"/>
</group>
<notebook>
<page name="team_members" string="Team">
<field name="members_ids" invisible="1"/>
<button name="add_internal_team_members" type="object" class="btn-primary" string="Update" style="margin-bottom: 10px;"/>
<field name="all_members_ids" widget="many2many">
<kanban quick_create="false" create="false" delete="true">
<field name="id"/>
<field name="name"/>
<templates>
<t t-name="kanban-box">
<div class="oe_kanban_global_click" style="max-width: 200px">
<div class="o_kanban_record_top">
<img t-att-src="kanban_image('res.users', 'image_1920', record.id.raw_value)"
height="40" width="40"
class="oe_avatar oe_kanban_avatar_smallbox mb0"
alt="Avatar"/>
<div class="o_kanban_record_headings ml8">
<strong class="o_kanban_record_title">
<field name="name"/>
</strong>
</div>
<a t-if="! read_only_mode" type="delete" class="text-danger">
<i class="fa fa-times" title="Delete"></i>
</a>
</div>
</div>
</t>
</templates>
</kanban>
</field>
</page>
<!-- ✅ added: Child Teams tab -->
<page name="child_teams" string="Child Teams">
<field name="child_ids">
<list editable="bottom">
<field name="team_name"/>
<field name="team_lead"/>
<field name="members_ids" widget="many2many_tags"/>
</list>
</field>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="view_internal_teams_search" model="ir.ui.view">
<field name="name">internal.teams.search</field>
<field name="model">internal.teams</field>
<field name="arch" type="xml">
<search string="Search Teams">
<field name="team_name" string="Team Name" filter_domain="[('team_name','ilike',self)]"/>
<field name="team_lead" string="Team Lead"/>
<field name="members_ids" string="Team Members"/>
<field name="parent_id" string="Parent Team"/>
<field name="complete_name" string="Full Path"/>
<filter string="Active Teams" name="active" domain="[('active','=',True)]"/>
<filter string="Inactive Teams" name="inactive" domain="[('active','=',False)]"/>
<filter string="Teams with Child Teams"
name="has_child_teams"
domain="[('child_ids','!=',False)]"/>
<filter string="Teams without Child Teams"
name="no_child_teams"
domain="[('child_ids','=',False)]"/>
<filter string="Root Teams (No Parent)"
name="root_teams"
domain="[('parent_id','=',False)]"/>
<filter string="Child Teams (Has Parent)"
name="child_teams"
domain="[('parent_id','!=',False)]"/>
<!-- Group By -->
<group expand="0" string="Group By">
<filter string="Parent Team"
name="group_by_parent"
context="{'group_by':'parent_id'}"/>
<filter string="Team Lead"
name="group_by_lead"
context="{'group_by':'team_lead'}"/>
<filter string="Active Status"
name="group_by_active"
context="{'group_by':'active'}"/>
</group>
</search>
</field>
</record>
<record id="internal_teams_action_tree" model="ir.actions.act_window">
<field name="name">Internal Teams</field>
<field name="res_model">internal.teams</field>
<field name="binding_view_types">form</field>
<field name="view_mode">list,form</field>
</record>
<menuitem id="internal_teams_menu" name="Internal Teams"
action="internal_teams_action_tree"
parent="project.menu_project_config"/>
</odoo>