From 0cbad6ef2d0b58c9bd2cb1397d331f41f989e249 Mon Sep 17 00:00:00 2001 From: Raz Date: Fri, 25 Apr 2025 08:04:04 +0200 Subject: [PATCH] fix small stuff about p500 deadlines / call subject / event url listing / copy paste licence / call access before structure done / detached await task when deleting tournament --- PadelClub.xcodeproj/project.pbxproj | 12 ++--- PadelClub/Data/Tournament.swift | 5 ++ PadelClub/Views/Calling/CallView.swift | 2 +- PadelClub/Views/Calling/SendToAllView.swift | 2 +- .../Cashier/Event/EventSettingsView.swift | 2 +- .../Views/Shared/ImportedPlayerView.swift | 4 +- .../Components/TournamentStatusView.swift | 8 ++- .../Screen/InscriptionManagerView.swift | 52 ++++++++++--------- .../TournamentInscriptionView.swift | 2 +- .../Views/Tournament/TournamentView.swift | 5 ++ 10 files changed, 57 insertions(+), 37 deletions(-) diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index 114416c..bc2c471 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -3714,7 +3714,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3759,7 +3759,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3877,7 +3877,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3922,7 +3922,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3966,7 +3966,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub.beta; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -4008,7 +4008,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.2.16; + MARKETING_VERSION = 1.2.17; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub.beta; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index 3e645b4..918b4d3 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -2434,6 +2434,11 @@ defer { } } + func mailSubject() -> String { + let subject = [tournamentTitle(hideSenior: true), formattedDate(.short), clubName].compactMap({ $0 }).joined(separator: " | ") + return subject + } + // MARK: - func insertOnServer() throws { diff --git a/PadelClub/Views/Calling/CallView.swift b/PadelClub/Views/Calling/CallView.swift index 4f77917..472cdc0 100644 --- a/PadelClub/Views/Calling/CallView.swift +++ b/PadelClub/Views/Calling/CallView.swift @@ -391,7 +391,7 @@ struct CallView: View { recipients: tournament.umpireMail(), bccRecipients: teams.flatMap { $0.getMail() }, body: finalMessage(reSummon: reSummon, forcedEmptyMessage: forcedEmptyMessage), - subject: tournament.tournamentTitle(hideSenior: true), + subject: tournament.mailSubject(), tournamentBuild: nil) } diff --git a/PadelClub/Views/Calling/SendToAllView.swift b/PadelClub/Views/Calling/SendToAllView.swift index 2cae54d..55a326e 100644 --- a/PadelClub/Views/Calling/SendToAllView.swift +++ b/PadelClub/Views/Calling/SendToAllView.swift @@ -276,7 +276,7 @@ struct SendToAllView: View { if contactMethod == 0 { contactType = .message(date: nil, recipients: _teams().flatMap { $0.unsortedPlayers() }.compactMap { $0.phoneNumber }, body: finalMessage(), tournamentBuild: nil) } else { - contactType = .mail(date: nil, recipients: tournament.umpireMail(), bccRecipients: _teams().flatMap { $0.unsortedPlayers() }.compactMap { $0.email }, body: finalMessage(), subject: tournament.tournamentTitle(hideSenior: true), tournamentBuild: nil) + contactType = .mail(date: nil, recipients: tournament.umpireMail(), bccRecipients: _teams().flatMap { $0.unsortedPlayers() }.compactMap { $0.email }, body: finalMessage(), subject: tournament.mailSubject(), tournamentBuild: nil) } } } diff --git a/PadelClub/Views/Cashier/Event/EventSettingsView.swift b/PadelClub/Views/Cashier/Event/EventSettingsView.swift index a9f2a51..6fc7bf8 100644 --- a/PadelClub/Views/Cashier/Event/EventSettingsView.swift +++ b/PadelClub/Views/Cashier/Event/EventSettingsView.swift @@ -26,7 +26,7 @@ struct EventSettingsView: View { link.append("\n\n") link.append(tournaments.compactMap({ tournament in - if let url = tournament.shareURL(pageLink) { + if tournament.isCanceled == false, tournament.isDeleted == false, let url = tournament.shareURL(pageLink) { var tournamentLink = [String]() tournamentLink.append(tournament.tournamentTitle(.title)) tournamentLink.append(url.absoluteString) diff --git a/PadelClub/Views/Shared/ImportedPlayerView.swift b/PadelClub/Views/Shared/ImportedPlayerView.swift index 67b659e..c46b7b2 100644 --- a/PadelClub/Views/Shared/ImportedPlayerView.swift +++ b/PadelClub/Views/Shared/ImportedPlayerView.swift @@ -115,7 +115,9 @@ struct ImportedPlayerView: View { } } .contextMenu { - CopyPasteButtonView(title: "Licence", pasteValue: player.formattedLicense()) + let formattedLicense = player.formattedLicense() + CopyPasteButtonView(title: "Licence sans la lettre", pasteValue: formattedLicense.strippedLicense) + CopyPasteButtonView(title: "Licence avec la lettre", pasteValue: formattedLicense) } } } diff --git a/PadelClub/Views/Tournament/Screen/Components/TournamentStatusView.swift b/PadelClub/Views/Tournament/Screen/Components/TournamentStatusView.swift index 89e898e..d4b989e 100644 --- a/PadelClub/Views/Tournament/Screen/Components/TournamentStatusView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/TournamentStatusView.swift @@ -72,9 +72,13 @@ struct TournamentStatusView: View { dataStore.tournaments.addOrUpdate(instance: tournament) } else { if let event, isLastTournament { - dataStore.events.delete(instance: event) + Task.detached(priority: .background) { + await dataStore.events.delete(instance: event) + } } else { - dataStore.tournaments.delete(instance: tournament) + Task.detached(priority: .background) { + await dataStore.tournaments.delete(instance: tournament) + } } } if eventDismiss == false || isLastTournament { diff --git a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift index 7ffd977..479781d 100644 --- a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift +++ b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift @@ -384,41 +384,45 @@ struct InscriptionManagerView: View { } if tournament.isAnimation() == false { - if tournament.inscriptionClosed() == false { - Divider() + Divider() - Section { - Button("+1 en tableau") { - tournament.addWildCard(1, .bracket) + Section { + Button("+1 en tableau") { + tournament.addWildCard(1, .bracket) + _setHash() + } + + if tournament.groupStageCount > 0 { + Button("+1 en poules") { + tournament.addWildCard(1, .groupStage) _setHash() } - - if tournament.groupStageCount > 0 { - Button("+1 en poules") { - tournament.addWildCard(1, .groupStage) - _setHash() - } - } - } header: { - Text("Ajout de wildcards") } + } header: { + Text("Ajout de wildcards") + } + + if tournament.inscriptionClosed() == false { Button("Bloquer une place") { tournament.addEmptyTeamRegistration(1) _setHash() } + + } + + Divider() - Divider() - - Button { - presentImportView = true - } label: { - Label("Importer beach-padel", systemImage: "square.and.arrow.down") - } - Link(destination: URLs.beachPadel.url) { - Label("beach-padel.app.fft.fr", systemImage: "safari") - } + Button { + presentImportView = true + } label: { + Label("Importer beach-padel", systemImage: "square.and.arrow.down") + } + Link(destination: URLs.beachPadel.url) { + Label("beach-padel.app.fft.fr", systemImage: "safari") + } + if tournament.inscriptionClosed() == false { Divider() _importTeamsMenuView(title: "Importer des paires") _sharingTeamsMenuView() diff --git a/PadelClub/Views/Tournament/TournamentInscriptionView.swift b/PadelClub/Views/Tournament/TournamentInscriptionView.swift index c06461a..fcb66e7 100644 --- a/PadelClub/Views/Tournament/TournamentInscriptionView.swift +++ b/PadelClub/Views/Tournament/TournamentInscriptionView.swift @@ -29,7 +29,7 @@ struct TournamentInscriptionView: View { } } - if tournament.inscriptionClosed() == false && tournament.hasStarted() == false { + if tournament.hasStarted() == false { TournamentDeadlinesView(tournament: tournament) } } diff --git a/PadelClub/Views/Tournament/TournamentView.swift b/PadelClub/Views/Tournament/TournamentView.swift index 9aa834c..9e0d4ff 100644 --- a/PadelClub/Views/Tournament/TournamentView.swift +++ b/PadelClub/Views/Tournament/TournamentView.swift @@ -239,6 +239,11 @@ struct TournamentView: View { NavigationLink(value: Screen.settings) { LabelSettings() } + + NavigationLink(value: Screen.call) { + Text("Convocations") + } + NavigationLink(value: Screen.structure) { LabelStructure() }