From 80dbc664785f27fdea3871218503ca08e78f8464 Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Thu, 2 May 2024 16:38:01 +0200 Subject: [PATCH] update some DB stuff --- PadelClub/Data/AppSettings.swift | 1 + PadelClub/Data/Club.swift | 6 ++- PadelClub/Data/Event.swift | 6 ++- PadelClub/Data/PlayerRegistration.swift | 35 +++++++++++------ PadelClub/Data/TeamRegistration.swift | 39 +++++-------------- PadelClub/Data/Tournament.swift | 18 ++++----- PadelClub/Data/User.swift | 18 +++++++++ PadelClub/Info.plist | 2 + PadelClub/Utils/PadelRule.swift | 11 ++++++ .../Views/Cashier/CashierDetailView.swift | 4 +- .../Views/Cashier/CashierSettingsView.swift | 4 +- .../Player/Components/PlayerPayView.swift | 10 ++--- .../Components/PlayerSexPickerView.swift | 2 +- PadelClub/Views/Player/PlayerDetailView.swift | 4 +- .../Components/UpdateSourceRankDateView.swift | 2 +- .../Screen/InscriptionManagerView.swift | 2 +- 16 files changed, 96 insertions(+), 68 deletions(-) diff --git a/PadelClub/Data/AppSettings.swift b/PadelClub/Data/AppSettings.swift index d98497a..e2a6426 100644 --- a/PadelClub/Data/AppSettings.swift +++ b/PadelClub/Data/AppSettings.swift @@ -15,6 +15,7 @@ class AppSettings: MicroStorable { static var fileName: String { "appsettings.json" } var lastDataSource: String? = nil + var callMessageBody : String? = nil var callMessageSignature: String? = nil var callDisplayFormat: Bool = false diff --git a/PadelClub/Data/Club.swift b/PadelClub/Data/Club.swift index 2d23616..98fb664 100644 --- a/PadelClub/Data/Club.swift +++ b/PadelClub/Data/Club.swift @@ -23,10 +23,12 @@ class Club : ModelObject, Storable, Hashable { } var id: String = Store.randomId() + var creator: String? var name: String var acronym: String var phone: String? var code: String? + //var federalClubData: Data? var address: String? var city: String? var zipCode: String? @@ -34,7 +36,8 @@ class Club : ModelObject, Storable, Hashable { var longitude: Double? //var courtCount: Int? - internal init(name: String, acronym: String? = nil, phone: String? = nil, code: String? = nil, address: String? = nil, city: String? = nil, zipCode: String? = nil, latitude: Double? = nil, longitude: Double? = nil) { + internal init(creator: String? = nil, name: String, acronym: String? = nil, phone: String? = nil, code: String? = nil, address: String? = nil, city: String? = nil, zipCode: String? = nil, latitude: Double? = nil, longitude: Double? = nil) { + self.creator = creator self.name = name self.acronym = acronym ?? name.acronym() self.phone = phone @@ -69,6 +72,7 @@ class Club : ModelObject, Storable, Hashable { enum CodingKeys: String, CodingKey { case _id = "id" + case _creator = "creator" case _name = "name" case _acronym = "acronym" case _phone = "phone" diff --git a/PadelClub/Data/Event.swift b/PadelClub/Data/Event.swift index 3aba007..a33e05f 100644 --- a/PadelClub/Data/Event.swift +++ b/PadelClub/Data/Event.swift @@ -14,9 +14,11 @@ class Event: ModelObject, Storable { static func resourceName() -> String { return "events" } var id: String = Store.randomId() + var creator: String? var club: String? var creationDate: Date = Date() var name: String? + //var federalTournamentData: Data? //var courtCount: Int? var tenupId: String? // var groupStageFormat: Int? @@ -24,7 +26,8 @@ class Event: ModelObject, Storable { // var loserRoundFormat: Int? //var timeslots ? - internal init(club: String? = nil, name: String? = nil, tenupId: String? = nil) { + internal init(creator: String? = nil, club: String? = nil, name: String? = nil, tenupId: String? = nil) { + self.creator = creator self.club = club self.name = name // self.courtCount = courtCount @@ -61,6 +64,7 @@ class Event: ModelObject, Storable { extension Event { enum CodingKeys: String, CodingKey { case _id = "id" + case _creator = "creator" case _club = "club" case _creationDate = "creationDate" case _name = "name" diff --git a/PadelClub/Data/PlayerRegistration.swift b/PadelClub/Data/PlayerRegistration.swift index a3db02b..428bd6c 100644 --- a/PadelClub/Data/PlayerRegistration.swift +++ b/PadelClub/Data/PlayerRegistration.swift @@ -18,9 +18,8 @@ class PlayerRegistration: ModelObject, Storable { var lastName: String var licenceId: String? var rank: Int? - var registrationType: PaymentType? - var registrationDate: Date? - var sex: Int + var paymentType: PlayerPaymentType? + var sex: Int //todo var tournamentPlayed: Int? var points: Double? @@ -37,14 +36,13 @@ class PlayerRegistration: ModelObject, Storable { var hasArrived: Bool = false - internal init(teamRegistration: String? = nil, firstName: String, lastName: String, licenceId: String? = nil, rank: Int? = nil, registrationType: PaymentType? = nil, registrationDate: Date? = nil, sex: Int, source: PlayerDataSource? = nil) { + internal init(teamRegistration: String? = nil, firstName: String, lastName: String, licenceId: String? = nil, rank: Int? = nil, paymentType: PlayerPaymentType? = nil, sex: Int, source: PlayerDataSource? = nil) { self.teamRegistration = teamRegistration self.firstName = firstName self.lastName = lastName self.licenceId = licenceId self.rank = rank - self.registrationType = registrationType - self.registrationDate = registrationDate + self.paymentType = paymentType self.sex = sex self.source = source } @@ -135,7 +133,7 @@ class PlayerRegistration: ModelObject, Storable { } func hasPaid() -> Bool { - registrationType != nil + paymentType != nil } func playerLabel(_ displayStyle: DisplayStyle = .wide) -> String { @@ -265,8 +263,7 @@ class PlayerRegistration: ModelObject, Storable { case _lastName = "lastName" case _licenceId = "licenceId" case _rank = "rank" - case _registrationType = "registrationType" - case _registrationDate = "registrationDate" + case _paymentType = "paymentType" case _sex = "sex" case _tournamentPlayed = "tournamentPlayed" case _points = "points" @@ -283,11 +280,25 @@ class PlayerRegistration: ModelObject, Storable { } enum PlayerDataSource: Int, Codable { - case frenchFederation - case beachPadel + case frenchFederation = 0 + case beachPadel = 1 } - enum PaymentType: Int, CaseIterable, Identifiable, Codable { + enum PlayerSexType: Int, CaseIterable, Identifiable, Codable { + init?(rawValue: Int?) { + guard let value = rawValue else { return nil } + self.init(rawValue: value) + } + + var id: Self { + self + } + + case female = 0 + case male = 1 + } + + enum PlayerPaymentType: Int, CaseIterable, Identifiable, Codable { init?(rawValue: Int?) { guard let value = rawValue else { return nil } self.init(rawValue: value) diff --git a/PadelClub/Data/TeamRegistration.swift b/PadelClub/Data/TeamRegistration.swift index 1b8b5d2..8d2f3a2 100644 --- a/PadelClub/Data/TeamRegistration.swift +++ b/PadelClub/Data/TeamRegistration.swift @@ -28,13 +28,12 @@ class TeamRegistration: ModelObject, Storable { var walkOut: Bool = false var wildCardBracket: Bool = false var wildCardGroupStage: Bool = false - var category: TournamentCategory? var weight: Int = 0 var lockWeight: Int? var confirmationDate: Date? var qualified: Bool = false - internal init(tournament: String, groupStage: String? = nil, registrationDate: Date? = nil, callDate: Date? = nil, bracketPosition: Int? = nil, groupStagePosition: Int? = nil, comment: String? = nil, source: String? = nil, sourceValue: String? = nil, logo: String? = nil, name: String? = nil, category: TournamentCategory? = nil) { + internal init(tournament: String, groupStage: String? = nil, registrationDate: Date? = nil, callDate: Date? = nil, bracketPosition: Int? = nil, groupStagePosition: Int? = nil, comment: String? = nil, source: String? = nil, sourceValue: String? = nil, logo: String? = nil, name: String? = nil) { self.tournament = tournament self.groupStage = groupStage self.registrationDate = registrationDate @@ -46,7 +45,6 @@ class TeamRegistration: ModelObject, Storable { self.sourceValue = sourceValue self.logo = logo self.name = name - self.category = category } func isSeedable() -> Bool { @@ -101,12 +99,7 @@ class TeamRegistration: ModelObject, Storable { } var tournamentCategory: TournamentCategory { - get { - category ?? .men - } - set { - category = newValue - } + tournamentObject()?.tournamentCategory ?? .men } @objc @@ -121,8 +114,8 @@ class TeamRegistration: ModelObject, Storable { }) } - func updateWeight() { - setWeight(from: self.players()) + func updateWeight(inTournamentCategory tournamentCategory: TournamentCategory) { + setWeight(from: self.players(), inTournamentCategory: tournamentCategory) } func teamLabel(_ displayStyle: DisplayStyle = .wide) -> String { @@ -201,9 +194,9 @@ class TeamRegistration: ModelObject, Storable { } - func updatePlayers(_ players: Set) { + func updatePlayers(_ players: Set, inTournamentCategory tournamentCategory: TournamentCategory) { try? DataStore.shared.playerRegistrations.delete(contentOfs: unsortedPlayers()) - setWeight(from: Array(players)) + setWeight(from: Array(players), inTournamentCategory: tournamentCategory) players.forEach { player in player.teamRegistration = id @@ -273,31 +266,20 @@ class TeamRegistration: ModelObject, Storable { Store.main.filter { $0.teamRegistration == self.id } } - func setWeight(from players: [PlayerRegistration]) { + func setWeight(from players: [PlayerRegistration], inTournamentCategory tournamentCategory: TournamentCategory) { let significantPlayerCount = significantPlayerCount() - weight = (players.prefix(significantPlayerCount).map { $0.weight } + missingPlayerType().map { unrankValue(for: $0 == 1 ? true : false ) }).prefix(significantPlayerCount).reduce(0,+) + weight = (players.prefix(significantPlayerCount).map { $0.weight } + missingPlayerType(inTournamentCategory: tournamentCategory).map { unrankValue(for: $0 == 1 ? true : false ) }).prefix(significantPlayerCount).reduce(0,+) } func significantPlayerCount() -> Int { tournamentObject()?.significantPlayerCount() ?? 2 } - func mandatoryPlayerType() -> [Int] { - switch tournamentCategory { - case .mix: - return [0, 1] - case .women: - return [0, 0] - case .men: - return [1, 1] - } - } - - func missingPlayerType() -> [Int] { + func missingPlayerType(inTournamentCategory tournamentCategory: TournamentCategory) -> [Int] { let players = unsortedPlayers() if players.count >= 2 { return [] } let s = players.map { $0.sex } - var missing = mandatoryPlayerType() + var missing = tournamentCategory.mandatoryPlayerType() s.forEach { i in if let index = missing.firstIndex(of: i) { missing.remove(at: index) @@ -351,7 +333,6 @@ class TeamRegistration: ModelObject, Storable { case _name = "name" case _wildCardBracket = "wildCardBracket" case _wildCardGroupStage = "wildCardGroupStage" - case _category = "category" case _weight = "weight" case _walkOut = "walkOut" case _lockWeight = "lockWeight" diff --git a/PadelClub/Data/Tournament.swift b/PadelClub/Data/Tournament.swift index fdcffe6..918a6c1 100644 --- a/PadelClub/Data/Tournament.swift +++ b/PadelClub/Data/Tournament.swift @@ -14,7 +14,6 @@ class Tournament : ModelObject, Storable { var id: String = Store.randomId() var event: String? - var creator: String? var name: String? var startDate: Date var endDate: Date? @@ -49,9 +48,8 @@ class Tournament : ModelObject, Storable { @ObservationIgnored var navigationPath: [Screen] = [] - internal init(event: String? = nil, creator: String? = nil, name: String? = nil, startDate: Date = Date(), endDate: Date? = nil, creationDate: Date = Date(), isPrivate: Bool = true, groupStageFormat: MatchFormat? = nil, roundFormat: MatchFormat? = nil, loserRoundFormat: MatchFormat? = nil, groupStageSortMode: GroupStageOrderingMode, groupStageCount: Int = 4, rankSourceDate: Date? = nil, dayDuration: Int = 1, teamCount: Int = 24, teamSorting: TeamSortingType? = nil, federalCategory: TournamentCategory, federalLevelCategory: TournamentLevel, federalAgeCategory: FederalTournamentAge, groupStageCourtCount: Int? = nil, seedCount: Int = 8, closedRegistrationDate: Date? = nil, groupStageAdditionalQualified: Int = 0, courtCount: Int = 2, prioritizeClubMembers: Bool = false, qualifiedPerGroupStage: Int = 1, teamsPerGroupStage: Int = 4, entryFee: Double? = nil) { + internal init(event: String? = nil, name: String? = nil, startDate: Date = Date(), endDate: Date? = nil, creationDate: Date = Date(), isPrivate: Bool = true, groupStageFormat: MatchFormat? = nil, roundFormat: MatchFormat? = nil, loserRoundFormat: MatchFormat? = nil, groupStageSortMode: GroupStageOrderingMode, groupStageCount: Int = 4, rankSourceDate: Date? = nil, dayDuration: Int = 1, teamCount: Int = 24, teamSorting: TeamSortingType? = nil, federalCategory: TournamentCategory, federalLevelCategory: TournamentLevel, federalAgeCategory: FederalTournamentAge, groupStageCourtCount: Int? = nil, seedCount: Int = 8, closedRegistrationDate: Date? = nil, groupStageAdditionalQualified: Int = 0, courtCount: Int = 2, prioritizeClubMembers: Bool = false, qualifiedPerGroupStage: Int = 1, teamsPerGroupStage: Int = 4, entryFee: Double? = nil) { self.event = event - self.creator = creator self.name = name self.startDate = startDate self.endDate = endDate @@ -539,7 +537,7 @@ class Tournament : ModelObject, Storable { var teamsToImport = [TeamRegistration]() teams.forEach { team in if let previousTeam = team.previousTeam { - previousTeam.updatePlayers(team.players) + previousTeam.updatePlayers(team.players, inTournamentCategory: team.tournamentCategory) teamsToImport.append(previousTeam) } else { let newTeam = addTeam(team.players, registrationDate: team.registrationDate) @@ -671,7 +669,7 @@ class Tournament : ModelObject, Storable { teams.forEach { team in let players = team.unsortedPlayers() players.forEach { $0.setWeight(in: self) } - team.setWeight(from: players) + team.setWeight(from: players, inTournamentCategory: tournamentCategory) try? DataStore.shared.playerRegistrations.addOrUpdate(contentOfs: players) } try? DataStore.shared.teamRegistrations.addOrUpdate(contentOfs: teams) @@ -985,8 +983,7 @@ class Tournament : ModelObject, Storable { func addTeam(_ players: Set, registrationDate: Date? = nil) -> TeamRegistration { let team = TeamRegistration(tournament: id, registrationDate: registrationDate ?? Date()) - team.tournamentCategory = tournamentCategory - team.setWeight(from: Array(players)) + team.setWeight(from: Array(players), inTournamentCategory: tournamentCategory) players.forEach { player in player.teamRegistration = team.id } @@ -1271,7 +1268,6 @@ extension Tournament { enum CodingKeys: String, CodingKey { case _id = "id" case _event = "event" - case _creator = "creator" case _name = "name" case _startDate = "startDate" case _endDate = "endDate" @@ -1364,12 +1360,12 @@ extension Tournament { let tournamentLevel = TournamentLevel.mostUsed(inTournaments: tournaments) let tournamentCategory = TournamentCategory.mostUsed(inTournaments: tournaments) let federalTournamentAge = FederalTournamentAge.mostUsed(inTournaments: tournaments) - - return Tournament(creator: DataStore.shared.user?.id, groupStageSortMode: .snake, rankSourceDate: rankSourceDate, teamSorting: tournamentLevel.defaultTeamSortingType, federalCategory: tournamentCategory, federalLevelCategory: tournamentLevel, federalAgeCategory: federalTournamentAge) +//creator: DataStore.shared.user?.id + return Tournament(groupStageSortMode: .snake, rankSourceDate: rankSourceDate, teamSorting: tournamentLevel.defaultTeamSortingType, federalCategory: tournamentCategory, federalLevelCategory: tournamentLevel, federalAgeCategory: federalTournamentAge) } static func fake() -> Tournament { - return Tournament(event: "Roland Garros", creator: "", name: "Magic P100", startDate: Date(), endDate: Date(), creationDate: Date(), isPrivate: false, groupStageFormat: .nineGames, roundFormat: nil, loserRoundFormat: nil, groupStageSortMode: .snake, groupStageCount: 4, rankSourceDate: nil, dayDuration: 2, teamCount: 24, teamSorting: .rank, federalCategory: .men, federalLevelCategory: .p100, federalAgeCategory: .a45, groupStageCourtCount: nil, seedCount: 8, closedRegistrationDate: nil, groupStageAdditionalQualified: 0, courtCount: 4, prioritizeClubMembers: false, qualifiedPerGroupStage: 2, teamsPerGroupStage: 4, entryFee: nil) + return Tournament(event: "Roland Garros", name: "Magic P100", startDate: Date(), endDate: Date(), creationDate: Date(), isPrivate: false, groupStageFormat: .nineGames, roundFormat: nil, loserRoundFormat: nil, groupStageSortMode: .snake, groupStageCount: 4, rankSourceDate: nil, dayDuration: 2, teamCount: 24, teamSorting: .rank, federalCategory: .men, federalLevelCategory: .p100, federalAgeCategory: .a45, groupStageCourtCount: nil, seedCount: 8, closedRegistrationDate: nil, groupStageAdditionalQualified: 0, courtCount: 4, prioritizeClubMembers: false, qualifiedPerGroupStage: 2, teamsPerGroupStage: 4, entryFee: nil) } } diff --git a/PadelClub/Data/User.swift b/PadelClub/Data/User.swift index 1626594..96e2e49 100644 --- a/PadelClub/Data/User.swift +++ b/PadelClub/Data/User.swift @@ -27,6 +27,15 @@ class User: UserBase { var lastName: String var phone: String? var country: String? + var callMessageBody : String? = nil + var callMessageSignature: String? = nil + var callDisplayFormat: Bool = false + var callDisplayEntryFee: Bool = false + var callUseFullCustomMessage: Bool = false + var matchFormatsDefaultDuration: [MatchFormat: Int]? = nil + var bracketMatchFormatPreference: MatchFormat? + var groupStageMatchFormatPreference: MatchFormat? + var loserBracketMatchFormatPreference: MatchFormat? init(username: String, email: String, firstName: String, lastName: String, phone: String?, country: String?) { self.username = username @@ -64,6 +73,15 @@ class User: UserBase { case _lastName = "lastName" case _phone = "phone" case _country = "country" + case _callMessageBody = "callMessageBody" + case _callMessageSignature = "callMessageSignature" + case _callDisplayFormat = "callDisplayFormat" + case _callDisplayEntryFee = "callDisplayEntryFee" + case _callUseFullCustomMessage = "callUseFullCustomMessage" + case _matchFormatsDefaultDuration = "matchFormatsDefaultDuration" + case _bracketMatchFormatPreference = "bracketMatchFormatPreference" + case _groupStageMatchFormatPreference = "groupStageMatchFormatPreference" + case _loserBracketMatchFormatPreference = "loserBracketMatchFormatPreference" } } diff --git a/PadelClub/Info.plist b/PadelClub/Info.plist index 4562fb0..f3a644a 100644 --- a/PadelClub/Info.plist +++ b/PadelClub/Info.plist @@ -18,5 +18,7 @@ + ITSAppUsesNonExemptEncryption + diff --git a/PadelClub/Utils/PadelRule.swift b/PadelClub/Utils/PadelRule.swift index 11118db..fa1bad3 100644 --- a/PadelClub/Utils/PadelRule.swift +++ b/PadelClub/Utils/PadelRule.swift @@ -638,6 +638,17 @@ enum TournamentCategory: Int, Hashable, Codable, CaseIterable, Identifiable { self.init(rawValue: value) } + func mandatoryPlayerType() -> [Int] { + switch self { + case .mix: + return [0, 1] + case .women: + return [0, 0] + case .men: + return [1, 1] + } + } + var localizedPlayerLabel: String { switch self { case .women: diff --git a/PadelClub/Views/Cashier/CashierDetailView.swift b/PadelClub/Views/Cashier/CashierDetailView.swift index 7070584..38dd496 100644 --- a/PadelClub/Views/Cashier/CashierDetailView.swift +++ b/PadelClub/Views/Cashier/CashierDetailView.swift @@ -42,8 +42,8 @@ struct CashierDetailView: View { private func _tournamentCashierDetailView(_ tournament: Tournament) -> some View { DisclosureGroup { - ForEach(PlayerRegistration.PaymentType.allCases) { type in - let count = tournament.selectedPlayers().filter({ $0.registrationType == type }).count + ForEach(PlayerRegistration.PlayerPaymentType.allCases) { type in + let count = tournament.selectedPlayers().filter({ $0.paymentType == type }).count LabeledContent { if let entryFee = tournament.entryFee { let sum = Double(count) * entryFee diff --git a/PadelClub/Views/Cashier/CashierSettingsView.swift b/PadelClub/Views/Cashier/CashierSettingsView.swift index 08d8331..8b1871d 100644 --- a/PadelClub/Views/Cashier/CashierSettingsView.swift +++ b/PadelClub/Views/Cashier/CashierSettingsView.swift @@ -26,7 +26,7 @@ struct CashierSettingsView: View { let players = tournaments.flatMap({ $0.selectedPlayers() }) players.forEach { player in if player.hasPaid() == false { - player.registrationType = .gift + player.paymentType = .gift } } try? dataStore.playerRegistrations.addOrUpdate(contentOfs: players) @@ -39,7 +39,7 @@ struct CashierSettingsView: View { RowButtonView("Personne n'a réglé", role: .destructive) { let players = tournaments.flatMap({ $0.selectedPlayers() }) players.forEach { player in - player.registrationType = nil + player.paymentType = nil } try? dataStore.playerRegistrations.addOrUpdate(contentOfs: players) } diff --git a/PadelClub/Views/Player/Components/PlayerPayView.swift b/PadelClub/Views/Player/Components/PlayerPayView.swift index 721dcef..649bdd7 100644 --- a/PadelClub/Views/Player/Components/PlayerPayView.swift +++ b/PadelClub/Views/Player/Components/PlayerPayView.swift @@ -12,16 +12,16 @@ struct PlayerPayView: View { @Bindable var player: PlayerRegistration var body: some View { - Picker(selection: $player.registrationType) { - Text("Non réglé").tag(nil as PlayerRegistration.PaymentType?) - ForEach(PlayerRegistration.PaymentType.allCases) { type in - Text(type.localizedLabel()).tag(type as PlayerRegistration.PaymentType?) + Picker(selection: $player.paymentType) { + Text("Non réglé").tag(nil as PlayerRegistration.PlayerPaymentType?) + ForEach(PlayerRegistration.PlayerPaymentType.allCases) { type in + Text(type.localizedLabel()).tag(type as PlayerRegistration.PlayerPaymentType?) } } label: { } .pickerStyle(.menu) .fixedSize() - .onChange(of: player.registrationType) { + .onChange(of: player.paymentType) { _save() } } diff --git a/PadelClub/Views/Player/Components/PlayerSexPickerView.swift b/PadelClub/Views/Player/Components/PlayerSexPickerView.swift index 9964bd2..e3b3d38 100644 --- a/PadelClub/Views/Player/Components/PlayerSexPickerView.swift +++ b/PadelClub/Views/Player/Components/PlayerSexPickerView.swift @@ -35,7 +35,7 @@ struct PlayerSexPickerView: View { player.setWeight(in: tournament) try dataStore.playerRegistrations.addOrUpdate(instance: player) if let team = player.team() { - team.updateWeight() + team.updateWeight(inTournamentCategory: tournament.tournamentCategory) try dataStore.teamRegistrations.addOrUpdate(instance: team) } diff --git a/PadelClub/Views/Player/PlayerDetailView.swift b/PadelClub/Views/Player/PlayerDetailView.swift index 6b0624a..e6289a0 100644 --- a/PadelClub/Views/Player/PlayerDetailView.swift +++ b/PadelClub/Views/Player/PlayerDetailView.swift @@ -80,12 +80,12 @@ struct PlayerDetailView: View { _save() } .onChange(of: player.weight) { - player.team()?.updateWeight() + player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) _save() } .onChange(of: player.rank) { player.setWeight(in: tournament) - player.team()?.updateWeight() + player.team()?.updateWeight(inTournamentCategory: tournament.tournamentCategory) _save() } .headerProminence(.increased) diff --git a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift index d7f58c6..6024b6e 100644 --- a/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift +++ b/PadelClub/Views/Tournament/Screen/Components/UpdateSourceRankDateView.swift @@ -46,7 +46,7 @@ struct UpdateSourceRankDateView: View { try dataStore.playerRegistrations.addOrUpdate(contentOfs: tournament.unsortedPlayers()) tournament.unsortedTeams().forEach { team in - team.setWeight(from: team.players()) + team.setWeight(from: team.players(), inTournamentCategory: tournament.tournamentCategory) if forceRefreshLockWeight { team.lockWeight = team.weight } diff --git a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift index f145131..d0d202e 100644 --- a/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift +++ b/PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift @@ -555,7 +555,7 @@ struct InscriptionManagerView: View { private func _updateTeam() { guard let editedTeam else { return } let players = _currentSelection() - editedTeam.updatePlayers(players) + editedTeam.updatePlayers(players, inTournamentCategory: tournament.tournamentCategory) try? dataStore.teamRegistrations.addOrUpdate(instance: editedTeam) try? dataStore.playerRegistrations.addOrUpdate(contentOfs: players) createdPlayers.removeAll()