internal team model update
This commit is contained in:
parent
5f267e96da
commit
2dbdb58127
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -66,5 +66,8 @@
|
|||
</record>
|
||||
|
||||
</data>
|
||||
<data>
|
||||
|
||||
</data>
|
||||
|
||||
</odoo>
|
||||
|
|
@ -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>
|
||||
|
|
|
|||
Loading…
Reference in New Issue