From aee7b85c665f41e81cd9ed54c0a82b3d2521c6fc Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Tue, 19 Aug 2025 17:36:44 +0200 Subject: [PATCH] =?UTF-8?q?ajout=20du=20min=20d'=C3=A9quipe=20pour=20homol?= =?UTF-8?q?ogation=20ajout=20d'une=20option=20pour=20terminer=20les=20tour?= =?UTF-8?q?nois=20ouverts?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Extensions/Tournament+Extensions.swift | 2 +- .../Event/TournamentConfiguratorView.swift | 12 +++++++++++ .../Navigation/Agenda/EventListView.swift | 20 +++++++++++++++++++ .../TournamentLevelPickerView.swift | 11 ++++++++++ .../Screen/TableStructureView.swift | 10 +++++++++- 5 files changed, 53 insertions(+), 2 deletions(-) diff --git a/PadelClub/Extensions/Tournament+Extensions.swift b/PadelClub/Extensions/Tournament+Extensions.swift index 068a90b..65408aa 100644 --- a/PadelClub/Extensions/Tournament+Extensions.swift +++ b/PadelClub/Extensions/Tournament+Extensions.swift @@ -173,7 +173,7 @@ extension Tournament { func isPlayerRankInadequate(player: PlayerHolder) -> Bool { guard let rank = player.getRank() else { return false } let _rank = player.male ? rank : rank + addon(for: rank, manMax: maleUnrankedValue ?? 0, womanMax: femaleUnrankedValue ?? 0) - if _rank <= tournamentLevel.minimumPlayerRank(category: tournamentCategory, ageCategory: federalTournamentAge) { + if _rank <= tournamentLevel.minimumPlayerRank(category: tournamentCategory, ageCategory: federalTournamentAge, seasonYear: startDate.seasonYear()) { return true } else { return false diff --git a/PadelClub/Views/Cashier/Event/TournamentConfiguratorView.swift b/PadelClub/Views/Cashier/Event/TournamentConfiguratorView.swift index 9f5b111..b114a88 100644 --- a/PadelClub/Views/Cashier/Event/TournamentConfiguratorView.swift +++ b/PadelClub/Views/Cashier/Event/TournamentConfiguratorView.swift @@ -55,6 +55,18 @@ struct TournamentConfigurationView: View { } label: { Text("Équipes souhaitées") } + + let minimumNumberOfTeams = tournament.minimumNumberOfTeams() + if minimumNumberOfTeams > 0 { + + LabeledContent { + Text(minimumNumberOfTeams.formatted()) + } label: { + Text("Minimum pour homologation") + } + + } + } } // diff --git a/PadelClub/Views/Navigation/Agenda/EventListView.swift b/PadelClub/Views/Navigation/Agenda/EventListView.swift index ad39a72..de9c649 100644 --- a/PadelClub/Views/Navigation/Agenda/EventListView.swift +++ b/PadelClub/Views/Navigation/Agenda/EventListView.swift @@ -333,6 +333,26 @@ struct EventListView: View { } label: { Text("Informations de contact Juge-Arbitre") } + Divider() + Menu { + Button { + Task { + await pcTournaments.concurrentForEach { tournament in + if tournament.hasEnded() == false { + tournament.endDate = Date() + } + } + + await MainActor.run { + dataStore.tournaments.addOrUpdate(contentOfs: pcTournaments) + } + } + } label: { + Text("Terminer les tournois encore ouverts") + } + } label: { + Text("Options avancées") + } } private func _nextMonths() -> [Date] { diff --git a/PadelClub/Views/Tournament/Screen/Components/TournamentLevelPickerView.swift b/PadelClub/Views/Tournament/Screen/Components/TournamentLevelPickerView.swift index dc58592..2c21ffa 100644 --- a/PadelClub/Views/Tournament/Screen/Components/TournamentLevelPickerView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/TournamentLevelPickerView.swift @@ -51,5 +51,16 @@ struct TournamentLevelPickerView: View { Text(type.localizedLabel()).tag(type) } } + + let minimumNumberOfTeams = tournament.minimumNumberOfTeams() + if minimumNumberOfTeams > 0 { + + LabeledContent { + Text(minimumNumberOfTeams.formatted()) + } label: { + Text("Minimum pour homologation") + } + + } } } diff --git a/PadelClub/Views/Tournament/Screen/TableStructureView.swift b/PadelClub/Views/Tournament/Screen/TableStructureView.swift index 8d30e92..43805d5 100644 --- a/PadelClub/Views/Tournament/Screen/TableStructureView.swift +++ b/PadelClub/Views/Tournament/Screen/TableStructureView.swift @@ -95,6 +95,12 @@ struct TableStructureView: View { } } label: { Text("Nombre d'équipes") + + let minimumNumberOfTeams = tournament.minimumNumberOfTeams() + if minimumNumberOfTeams > 0 { + Text("Minimum pour homologation : \(minimumNumberOfTeams)") + .foregroundStyle(.secondary) + } } LabeledContent { StepperView(count: $groupStageCount, minimum: 0, maximum: maxGroupStages) { @@ -106,7 +112,9 @@ struct TableStructureView: View { Text("Nombre de poules") } } footer: { - Text("Vous pourrez modifier la taille de vos poules de manière spécifique dans l'écran des poules.") + if groupStageCount > 0 { + Text("Vous pourrez modifier la taille de vos poules de manière spécifique dans l'écran des poules.") + } } if groupStageCount > 0 {