From c0ab6418d85ec28909d3adea6dc805272473d209 Mon Sep 17 00:00:00 2001 From: Laurent Date: Thu, 3 Apr 2025 17:05:06 +0200 Subject: [PATCH] Fix crap --- PadelClub/Data/DataStore.swift | 13 +-- PadelClub/Data/Tournament.swift | 29 +++-- PadelClub/Data/TournamentStore.swift | 8 -- .../Toolbox/DebugSettingsView.swift | 5 - .../Screen/InscriptionManagerView.swift | 106 +++++++++--------- 5 files changed, 75 insertions(+), 86 deletions(-) diff --git a/PadelClub/Data/DataStore.swift b/PadelClub/Data/DataStore.swift index 46a7ce3..a3783e6 100644 --- a/PadelClub/Data/DataStore.swift +++ b/PadelClub/Data/DataStore.swift @@ -15,17 +15,14 @@ class DataStore: ObservableObject { @Published var user: CustomUser = CustomUser.placeHolder() { didSet { - let loggedUser = StoreCenter.main.userId != nil - StoreCenter.main.collectionsCanSynchronize = loggedUser + let loggedUser = StoreCenter.main.isAuthenticated if loggedUser { if self.user.id != self.userStorage.item()?.id { self.userStorage.setItemNoSync(self.user) - if StoreCenter.main.collectionsCanSynchronize { - StoreCenter.main.initialSynchronization() - self._fixMissingClubCreatorIfNecessary(self.clubs) - self._fixMissingEventCreatorIfNecessary(self.events) - } + StoreCenter.main.initialSynchronization(clear: false) + self._fixMissingClubCreatorIfNecessary(self.clubs) + self._fixMissingEventCreatorIfNecessary(self.events) } } else { self._temporaryLocalUser.item = self.user @@ -224,8 +221,6 @@ class DataStore: ObservableObject { fileprivate func _localDisconnect() { - StoreCenter.main.collectionsCanSynchronize = false - let tournamendIds: [String] = self.tournaments.map { $0.id } TournamentLibrary.shared.reset() diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index 086a50f..886ea8d 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -2406,17 +2406,24 @@ defer { func insertOnServer() throws { -// DataStore.shared.tournaments.writeChangeAndInsertOnServer(instance: self) -// -// for teamRegistration in self.tournamentStore?.teamRegistrations { -// teamRegistration.insertOnServer() -// } -// for groupStage in self.tournamentStore?.groupStages { -// groupStage.insertOnServer() -// } -// for round in self.tournamentStore.rounds { -// round.insertOnServer() -// } + DataStore.shared.tournaments.writeChangeAndInsertOnServer(instance: self) + + if let teamRegistrations = self.tournamentStore?.teamRegistrations { + for teamRegistration in teamRegistrations { + teamRegistration.insertOnServer() + } + } + + if let groupStages = self.tournamentStore?.groupStages { + for groupStage in groupStages { + groupStage.insertOnServer() + } + } + if let rounds = self.tournamentStore?.rounds { + for round in rounds { + round.insertOnServer() + } + } } diff --git a/PadelClub/Data/TournamentStore.swift b/PadelClub/Data/TournamentStore.swift index fd7ea02..44125f7 100644 --- a/PadelClub/Data/TournamentStore.swift +++ b/PadelClub/Data/TournamentStore.swift @@ -36,16 +36,8 @@ class TournamentStore: ObservableObject { fileprivate func _initialize() { - var synchronized: Bool = true let indexed: Bool = true - #if DEBUG - if let sync = PListReader.readBool(plist: "local", key: "synchronized") { - synchronized = sync - } - #endif - StoreCenter.main.collectionsCanSynchronize = synchronized - self.groupStages = self.store.registerSynchronizedCollection(indexed: indexed) self.rounds = self.store.registerSynchronizedCollection(indexed: indexed) self.teamRegistrations = self.store.registerSynchronizedCollection(indexed: indexed) diff --git a/PadelClub/Views/Navigation/Toolbox/DebugSettingsView.swift b/PadelClub/Views/Navigation/Toolbox/DebugSettingsView.swift index 76716fb..7e52ec3 100644 --- a/PadelClub/Views/Navigation/Toolbox/DebugSettingsView.swift +++ b/PadelClub/Views/Navigation/Toolbox/DebugSettingsView.swift @@ -25,7 +25,6 @@ struct DebugSettingsView: View { LabeledContent("Token", value: self._token) LabeledContent("Server", value: self._apiURL) LabeledContent("Synchronized", value: self._synchronized) - LabeledContent("CollectionsCanSynchronize", value: self._canSynchronize) } } } @@ -55,10 +54,6 @@ struct DebugSettingsView: View { } } - fileprivate var _canSynchronize: String { - return "\(StoreCenter.main.collectionsCanSynchronize)" - } - fileprivate var _wsPingStatus: String { return "\(StoreCenter.main.websocketPingStatus)" } diff --git a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift index 9155f4e..ac7d77a 100644 --- a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift +++ b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift @@ -1048,59 +1048,59 @@ struct InscriptionManagerView: View { } } - @ViewBuilder - private func _prioritizeClubMembersButton() -> some View { - @Bindable var tournament = tournament - if let federalClub = tournament.club() { - Menu { - Picker(selection: $tournament.prioritizeClubMembers) { - Text("Oui").tag(true) - Text("Non").tag(false) - } label: { - - } - .labelsHidden() - - Divider() - NavigationLink { - ClubsView() { club in - if let event = tournament.eventObject() { - event.club = club.id - do { - try dataStore.events.addOrUpdate(instance: event) - } catch { - Logger.error(error) - } - } - _save() - } - } label: { - Text("Changer de club") - } - } label: { - Text("Membres prioritaires") - Text(federalClub.acronym) - } - Divider() - } else { - NavigationLink { - ClubsView() { club in - if let event = tournament.eventObject() { - event.club = club.id - do { - try dataStore.events.addOrUpdate(instance: event) - } catch { - Logger.error(error) - } - } - _save() - } - } label: { - Text("Identifier le club") - } - Divider() - } - } +// @ViewBuilder +// private func _prioritizeClubMembersButton() -> some View { +// @Bindable var tournament = tournament +// if let federalClub = tournament.club() { +// Menu { +// Picker(selection: $tournament.prioritizeClubMembers) { +// Text("Oui").tag(true) +// Text("Non").tag(false) +// } label: { +// +// } +// .labelsHidden() +// +// Divider() +// NavigationLink { +// ClubsView() { club in +// if let event = tournament.eventObject() { +// event.club = club.id +// do { +// try dataStore.events.addOrUpdate(instance: event) +// } catch { +// Logger.error(error) +// } +// } +// _save() +// } +// } label: { +// Text("Changer de club") +// } +// } label: { +// Text("Membres prioritaires") +// Text(federalClub.acronym) +// } +// Divider() +// } else { +// NavigationLink { +// ClubsView() { club in +// if let event = tournament.eventObject() { +// event.club = club.id +// do { +// try dataStore.events.addOrUpdate(instance: event) +// } catch { +// Logger.error(error) +// } +// } +// _save() +// } +// } label: { +// Text("Identifier le club") +// } +// Divider() +// } +// } private func _teamFooterView(_ team: TeamRegistration) -> some View { HStack {