From 4c5459ed6a5daa9656d407fcb5f9021a8c56242b Mon Sep 17 00:00:00 2001 From: Raz Date: Mon, 7 Oct 2024 18:49:27 +0200 Subject: [PATCH] v1.0.19 --- PadelClub.xcodeproj/project.pbxproj | 12 +++++++---- PadelClub/Data/Tournament.swift | 21 ++++--------------- PadelClub/Views/Calling/SendToAllView.swift | 21 ++++++++++++++++--- .../Components/InscriptionInfoView.swift | 3 ++- 4 files changed, 32 insertions(+), 25 deletions(-) diff --git a/PadelClub.xcodeproj/project.pbxproj b/PadelClub.xcodeproj/project.pbxproj index 0cc3cb6..f6c41ce 100644 --- a/PadelClub.xcodeproj/project.pbxproj +++ b/PadelClub.xcodeproj/project.pbxproj @@ -3134,7 +3134,7 @@ CODE_SIGN_ENTITLEMENTS = PadelClub/PadelClub.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 1; DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; @@ -3158,7 +3158,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.18; + MARKETING_VERSION = 1.0.19; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3179,7 +3179,7 @@ CODE_SIGN_ENTITLEMENTS = PadelClub/PadelClub.entitlements; CODE_SIGN_IDENTITY = "Apple Development"; CODE_SIGN_STYLE = Automatic; - CURRENT_PROJECT_VERSION = 3; + CURRENT_PROJECT_VERSION = 1; DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_TEAM = BQ3Y44M3Q6; @@ -3202,7 +3202,7 @@ "$(inherited)", "@executable_path/Frameworks", ); - MARKETING_VERSION = 1.0.18; + MARKETING_VERSION = 1.0.19; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_NAME = "$(TARGET_NAME)"; PROVISIONING_PROFILE_SPECIFIER = ""; @@ -3300,6 +3300,7 @@ DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_TEAM = BQ3Y44M3Q6; + GCC_OPTIMIZATION_LEVEL = 0; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = PadelClub/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Padel Club (ProdTest)"; @@ -3324,6 +3325,7 @@ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator"; SUPPORTS_MACCATALYST = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; @@ -3341,6 +3343,7 @@ DEFINES_MODULE = YES; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_TEAM = BQ3Y44M3Q6; + GCC_OPTIMIZATION_LEVEL = 0; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_FILE = PadelClub/Info.plist; INFOPLIST_KEY_CFBundleDisplayName = "Padel Club (ProdTest)"; @@ -3366,6 +3369,7 @@ SUPPORTS_MACCATALYST = NO; SUPPORTS_XR_DESIGNED_FOR_IPHONE_IPAD = NO; SWIFT_ACTIVE_COMPILATION_CONDITIONS = PRODTEST; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; TARGETED_DEVICE_FAMILY = "1,2"; }; diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index f5d0871..31f6bbb 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -1011,20 +1011,6 @@ defer { } } - - func mandatoryRegistrationCloseDate() -> Date? { - switch tournamentLevel { - case .p500, .p1000, .p1500, .p2000: - if let date = Calendar.current.date(byAdding: .day, value: -13, to: startDate) { - let startOfDay = Calendar.current.startOfDay(for: date) - return Calendar.current.date(byAdding: .minute, value: -1, to: startOfDay) - } - default: - break - } - return nil - } - func licenseYearValidity() -> Int { if startDate.get(.month) > 8 { return startDate.get(.year) + 1 @@ -1033,10 +1019,10 @@ defer { } } - func playersWithoutValidLicense(in players: [PlayerRegistration]) -> [PlayerRegistration] { + func playersWithoutValidLicense(in players: [PlayerRegistration], isImported: Bool) -> [PlayerRegistration] { let licenseYearValidity = self.licenseYearValidity() return players.filter({ - ($0.isImported() && $0.isValidLicenseNumber(year: licenseYearValidity) == false) || ($0.isImported() == false && ($0.licenceId == nil || $0.formattedLicense().isLicenseNumber == false || $0.licenceId?.isEmpty == true)) + ($0.isImported() && $0.isValidLicenseNumber(year: licenseYearValidity) == false) || ($0.isImported() == false && ($0.licenceId == nil || $0.formattedLicense().isLicenseNumber == false || $0.licenceId?.isEmpty == true) || ($0.isImported() == false && isImported)) }) } @@ -1102,7 +1088,8 @@ defer { let duplicates : [PlayerRegistration] = duplicates(in: players) let problematicPlayers : [PlayerRegistration] = players.filter({ $0.sex == nil }) let inadequatePlayers : [PlayerRegistration] = inadequatePlayers(in: players) - let playersWithoutValidLicense : [PlayerRegistration] = playersWithoutValidLicense(in: players) + let isImported = players.anySatisfy({ $0.isImported() }) + let playersWithoutValidLicense : [PlayerRegistration] = playersWithoutValidLicense(in: players, isImported: isImported) let playersMissing : [TeamRegistration] = selectedTeams.filter({ $0.unsortedPlayers().count < 2 }) let waitingList : [TeamRegistration] = waitingListTeams(in: selectedTeams, includingWalkOuts: true) let waitingListInBracket = waitingList.filter({ $0.bracketPosition != nil }) diff --git a/PadelClub/Views/Calling/SendToAllView.swift b/PadelClub/Views/Calling/SendToAllView.swift index 2dfa04f..9f6778d 100644 --- a/PadelClub/Views/Calling/SendToAllView.swift +++ b/PadelClub/Views/Calling/SendToAllView.swift @@ -23,7 +23,9 @@ struct SendToAllView: View { let addLink: Bool // @State var cannotPayForTournament: Bool = false @State private var pageLink: PageLink = .matches - + @State private var includeWaitingList: Bool = false + @State private var onlyWaitingList: Bool = false + @State var showSubscriptionView: Bool = false @State var showUserCreationView: Bool = false @@ -81,6 +83,11 @@ struct SendToAllView: View { .tag(round.id) } } + + Toggle("Inclure la liste d'attente", isOn: $includeWaitingList) + if includeWaitingList { + Toggle("Seulement la liste d'attente", isOn: $onlyWaitingList) + } } footer: { Text("Si vous ne souhaitez pas contacter toutes les équipes, choisissez un ou plusieurs groupes d'équipes manuellement.") } @@ -105,6 +112,11 @@ struct SendToAllView: View { } } } + .onChange(of: includeWaitingList, { + if includeWaitingList == false { + onlyWaitingList = false + } + }) .toolbar { ToolbarItem(placement: .topBarLeading) { Button("Annuler", role: .cancel) { @@ -211,10 +223,13 @@ struct SendToAllView: View { } func _teams() -> [TeamRegistration] { + if onlyWaitingList { + return tournament.waitingListSortedTeams() + } if _roundTeams().isEmpty && _groupStagesTeams().isEmpty { - return tournament.selectedSortedTeams() + return tournament.selectedSortedTeams() + (includeWaitingList ? tournament.waitingListSortedTeams() : []) } - return _roundTeams() + _groupStagesTeams() + return _roundTeams() + _groupStagesTeams() + (includeWaitingList ? tournament.waitingListSortedTeams() : []) } func _roundTeams() -> [TeamRegistration] { diff --git a/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift b/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift index 4161e47..c670fbd 100644 --- a/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/InscriptionInfoView.swift @@ -247,7 +247,8 @@ struct InscriptionInfoView: View { problematicPlayers = players.filter({ $0.sex == nil }) inadequatePlayers = tournament.inadequatePlayers(in: players) ageInadequatePlayers = tournament.ageInadequatePlayers(in: players) - playersWithoutValidLicense = tournament.playersWithoutValidLicense(in: players) + let isImported = players.anySatisfy({ $0.isImported() }) + playersWithoutValidLicense = tournament.playersWithoutValidLicense(in: players, isImported: isImported) entriesFromBeachPadel = tournament.unsortedTeams().filter({ $0.isImported() }) playersMissing = selectedTeams.filter({ $0.unsortedPlayers().count < 2 }) }