internal team model update

This commit is contained in:
karuna 2025-11-10 10:14:09 +05:30
parent 5f267e96da
commit 2dbdb58127
3 changed files with 74 additions and 34 deletions

View File

@ -11,6 +11,24 @@ class InternalTeams(models.Model):
active = fields.Boolean(default=True, help="Set active to false to hide the Teams without removing it.")
parent_id = fields.Many2one('internal.teams', string="Parent Team",
domain="[('id', '!=', id)]")
child_ids = fields.One2many('internal.teams', 'parent_id', string="Child Teams")
active = fields.Boolean(default=True)
# Computed field to include members + child team members and leads
all_members_ids = fields.Many2many(
'res.users', compute='_compute_all_members', string="All Members", store=False
)
@api.depends('members_ids', 'child_ids.members_ids', 'child_ids.team_lead')
def _compute_all_members(self):
for rec in self:
all_members = rec.members_ids
for child in rec.child_ids:
all_members |= child.members_ids | child.team_lead
rec.all_members_ids = all_members
def _compute_display_name(self):
""" Custom display_name in case a registration is nott linked to an attendee

View File

@ -66,5 +66,8 @@
</record>
</data>
<data>
</data>
</odoo>

View File

@ -11,6 +11,7 @@
</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>
@ -20,37 +21,56 @@
<group>
<field name="team_name"/>
<field name="team_lead"/>
<notebook>
<page name="team_members" string="Team">
<field name="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>
</notebook>
<!-- ✅ added -->
<field name="parent_id"/>
</group>
<notebook>
<page name="team_members" string="Team">
<field name="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>
<!-- ✅ added: show combined team members including child team leads and members -->
<field name="all_members_ids" widget="many2many_tags" readonly="1"
string="Including Child Teams"/>
</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>
@ -63,8 +83,7 @@
<field name="view_mode">list,form</field>
</record>
<menuitem id="internal_teams_menu" name="Internal Teams" action="internal_teams_action_tree"
<menuitem id="internal_teams_menu" name="Internal Teams"
action="internal_teams_action_tree"
parent="project.menu_project_config"/>
</odoo>
</odoo>