From c6dc2e14444891f4fe65be6c47e8018a5bf68870 Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Wed, 9 Sep 2026 14:18:30 +0200 Subject: [PATCH] =?UTF-8?q?feat(official-tournaments):=20erweitere=20Teiln?= =?UTF-8?q?ahme=C3=BCbersicht=20um=20aktive,=20spielberechtigte=20Mitglied?= =?UTF-8?q?er?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/OfficialTournaments.vue | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/frontend/src/views/OfficialTournaments.vue b/frontend/src/views/OfficialTournaments.vue index cf59b557..ebebaad9 100755 --- a/frontend/src/views/OfficialTournaments.vue +++ b/frontend/src/views/OfficialTournaments.vue @@ -865,8 +865,25 @@ export default { for (const [key, p] of Object.entries(this.participationMap || {})) { if (seen.has(key)) continue; const [competitionId, memberId] = key.split('-'); + seen.add(key); merged.push({ competitionId: String(competitionId), memberId: String(memberId) }); } + + // Ohne Statusfilter soll die Übersicht nicht nur bereits angelegte + // Teilnahmen zeigen, sondern alle aktiven, spielberechtigten Mitglieder. + // So kann auch für ein Mitglied ohne bisherigen Eintrag Interesse an einer + // passenden Konkurrenz gesetzt werden. + for (const member of this.activeMembers) { + for (const competition of comps) { + if (!this.isEligibleForCompetition(member, competition)) continue; + const competitionId = String(competition.id); + const memberId = String(member.id); + const key = `${competitionId}-${memberId}`; + if (seen.has(key)) continue; + seen.add(key); + merged.push({ competitionId, memberId }); + } + } for (const e of merged) { const competitionId = String(e.competitionId); const memberId = String(e.memberId);