add tournament category settings

online_reg
Raz 11 months ago
parent 906172d9e2
commit 242acffe22
  1. 8
      PadelClub.xcodeproj/project.pbxproj
  2. 45
      PadelClub/Views/Tournament/Screen/Components/TournamentCategorySettingsView.swift
  3. 19
      PadelClub/Views/Tournament/Screen/Components/TournamentGeneralSettingsView.swift
  4. 7
      PadelClub/Views/Tournament/Screen/TournamentSettingsView.swift

@ -130,6 +130,9 @@
FF3F74F62B919E45004CFE0E /* UmpireView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF3F74F52B919E45004CFE0E /* UmpireView.swift */; }; FF3F74F62B919E45004CFE0E /* UmpireView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF3F74F52B919E45004CFE0E /* UmpireView.swift */; };
FF3F74FF2B91A2D4004CFE0E /* AgendaDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF3F74FE2B91A2D4004CFE0E /* AgendaDestination.swift */; }; FF3F74FF2B91A2D4004CFE0E /* AgendaDestination.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF3F74FE2B91A2D4004CFE0E /* AgendaDestination.swift */; };
FF44421C2BE39FA2008BBF0B /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FFD784002B91BF79000F62A6 /* Launch Screen.storyboard */; }; FF44421C2BE39FA2008BBF0B /* Launch Screen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = FFD784002B91BF79000F62A6 /* Launch Screen.storyboard */; };
FF4623CB2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4623CA2D1340D200CB57B5 /* TournamentCategorySettingsView.swift */; };
FF4623CC2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4623CA2D1340D200CB57B5 /* TournamentCategorySettingsView.swift */; };
FF4623CD2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4623CA2D1340D200CB57B5 /* TournamentCategorySettingsView.swift */; };
FF4AB6B52B9248200002987F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6B42B9248200002987F /* NetworkManager.swift */; }; FF4AB6B52B9248200002987F /* NetworkManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6B42B9248200002987F /* NetworkManager.swift */; };
FF4AB6BB2B9256D50002987F /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6BA2B9256D50002987F /* SearchViewModel.swift */; }; FF4AB6BB2B9256D50002987F /* SearchViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6BA2B9256D50002987F /* SearchViewModel.swift */; };
FF4AB6BD2B9256E10002987F /* SelectablePlayerListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6BC2B9256E10002987F /* SelectablePlayerListView.swift */; }; FF4AB6BD2B9256E10002987F /* SelectablePlayerListView.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF4AB6BC2B9256E10002987F /* SelectablePlayerListView.swift */; };
@ -1072,6 +1075,7 @@
FF3B60A22BC49BBC008C2E66 /* MatchScheduler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchScheduler.swift; sourceTree = "<group>"; }; FF3B60A22BC49BBC008C2E66 /* MatchScheduler.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatchScheduler.swift; sourceTree = "<group>"; };
FF3F74F52B919E45004CFE0E /* UmpireView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UmpireView.swift; sourceTree = "<group>"; }; FF3F74F52B919E45004CFE0E /* UmpireView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UmpireView.swift; sourceTree = "<group>"; };
FF3F74FE2B91A2D4004CFE0E /* AgendaDestination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgendaDestination.swift; sourceTree = "<group>"; }; FF3F74FE2B91A2D4004CFE0E /* AgendaDestination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AgendaDestination.swift; sourceTree = "<group>"; };
FF4623CA2D1340D200CB57B5 /* TournamentCategorySettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TournamentCategorySettingsView.swift; sourceTree = "<group>"; };
FF4AB6B42B9248200002987F /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = "<group>"; }; FF4AB6B42B9248200002987F /* NetworkManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetworkManager.swift; sourceTree = "<group>"; };
FF4AB6BA2B9256D50002987F /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = "<group>"; }; FF4AB6BA2B9256D50002987F /* SearchViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SearchViewModel.swift; sourceTree = "<group>"; };
FF4AB6BC2B9256E10002987F /* SelectablePlayerListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectablePlayerListView.swift; sourceTree = "<group>"; }; FF4AB6BC2B9256E10002987F /* SelectablePlayerListView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SelectablePlayerListView.swift; sourceTree = "<group>"; };
@ -1831,6 +1835,7 @@
FF025AE02BD0EB9000A86CF8 /* TournamentClubSettingsView.swift */, FF025AE02BD0EB9000A86CF8 /* TournamentClubSettingsView.swift */,
FF025AE22BD0EBA900A86CF8 /* TournamentMatchFormatsSettingsView.swift */, FF025AE22BD0EBA900A86CF8 /* TournamentMatchFormatsSettingsView.swift */,
FF025AE42BD0EBB800A86CF8 /* TournamentGeneralSettingsView.swift */, FF025AE42BD0EBB800A86CF8 /* TournamentGeneralSettingsView.swift */,
FF4623CA2D1340D200CB57B5 /* TournamentCategorySettingsView.swift */,
FF6087E92BE25EF1004E1E47 /* TournamentStatusView.swift */, FF6087E92BE25EF1004E1E47 /* TournamentStatusView.swift */,
FFCF76062C3BE9BC006C8C3D /* CloseDatePicker.swift */, FFCF76062C3BE9BC006C8C3D /* CloseDatePicker.swift */,
); );
@ -2564,6 +2569,7 @@
FF70916A2B90F95E00AB08DA /* DateBoxView.swift in Sources */, FF70916A2B90F95E00AB08DA /* DateBoxView.swift in Sources */,
FF5D0D722BB3EFA5005CB568 /* LearnMoreSheetView.swift in Sources */, FF5D0D722BB3EFA5005CB568 /* LearnMoreSheetView.swift in Sources */,
FFF8ACD42B92392C008466FA /* SourceFileManager.swift in Sources */, FFF8ACD42B92392C008466FA /* SourceFileManager.swift in Sources */,
FF4623CC2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */,
C4EC6F592BE92D88000CEAB4 /* PListReader.swift in Sources */, C4EC6F592BE92D88000CEAB4 /* PListReader.swift in Sources */,
FF0EC5222BB173E70056B6D1 /* UpdateSourceRankDateView.swift in Sources */, FF0EC5222BB173E70056B6D1 /* UpdateSourceRankDateView.swift in Sources */,
FF025AE72BD1111000A86CF8 /* GlobalSettingsView.swift in Sources */, FF025AE72BD1111000A86CF8 /* GlobalSettingsView.swift in Sources */,
@ -2851,6 +2857,7 @@
FF4CC02C2C996C0600151637 /* DateBoxView.swift in Sources */, FF4CC02C2C996C0600151637 /* DateBoxView.swift in Sources */,
FF4CC02D2C996C0600151637 /* LearnMoreSheetView.swift in Sources */, FF4CC02D2C996C0600151637 /* LearnMoreSheetView.swift in Sources */,
FF4CC02E2C996C0600151637 /* SourceFileManager.swift in Sources */, FF4CC02E2C996C0600151637 /* SourceFileManager.swift in Sources */,
FF4623CB2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */,
FF4CC02F2C996C0600151637 /* PListReader.swift in Sources */, FF4CC02F2C996C0600151637 /* PListReader.swift in Sources */,
FF4CC0302C996C0600151637 /* UpdateSourceRankDateView.swift in Sources */, FF4CC0302C996C0600151637 /* UpdateSourceRankDateView.swift in Sources */,
FF4CC0312C996C0600151637 /* GlobalSettingsView.swift in Sources */, FF4CC0312C996C0600151637 /* GlobalSettingsView.swift in Sources */,
@ -3117,6 +3124,7 @@
FF70FBAB2C90584900129CC2 /* DateBoxView.swift in Sources */, FF70FBAB2C90584900129CC2 /* DateBoxView.swift in Sources */,
FF70FBAC2C90584900129CC2 /* LearnMoreSheetView.swift in Sources */, FF70FBAC2C90584900129CC2 /* LearnMoreSheetView.swift in Sources */,
FF70FBAD2C90584900129CC2 /* SourceFileManager.swift in Sources */, FF70FBAD2C90584900129CC2 /* SourceFileManager.swift in Sources */,
FF4623CD2D1340D200CB57B5 /* TournamentCategorySettingsView.swift in Sources */,
FF70FBAE2C90584900129CC2 /* PListReader.swift in Sources */, FF70FBAE2C90584900129CC2 /* PListReader.swift in Sources */,
FF70FBAF2C90584900129CC2 /* UpdateSourceRankDateView.swift in Sources */, FF70FBAF2C90584900129CC2 /* UpdateSourceRankDateView.swift in Sources */,
FF70FBB02C90584900129CC2 /* GlobalSettingsView.swift in Sources */, FF70FBB02C90584900129CC2 /* GlobalSettingsView.swift in Sources */,

@ -0,0 +1,45 @@
//
// TournamentCategorySettingsView.swift
// PadelClub
//
// Created by razmig on 18/12/2024.
//
import SwiftUI
import LeStorage
struct TournamentCategorySettingsView: View {
@Environment(Tournament.self) private var tournament: Tournament
@EnvironmentObject var dataStore: DataStore
var body: some View {
List {
TournamentLevelPickerView()
}
.onChange(of: [
tournament.federalCategory,
]) {
_save()
}
.onChange(of: [
tournament.federalLevelCategory,
]) {
_save()
}
.onChange(of: [
tournament.federalAgeCategory,
]) {
_save()
}
}
private func _save() {
do {
try dataStore.tournaments.addOrUpdate(instance: tournament)
} catch {
Logger.error(error)
}
}
}

@ -103,10 +103,6 @@ struct TournamentGeneralSettingsView: View {
} }
} }
Section {
TournamentLevelPickerView()
}
Section { Section {
Picker(selection: $loserBracketMode) { Picker(selection: $loserBracketMode) {
ForEach(LoserBracketMode.allCases) { ForEach(LoserBracketMode.allCases) {
@ -226,21 +222,6 @@ struct TournamentGeneralSettingsView: View {
.onChange(of: tournament.dayDuration) { .onChange(of: tournament.dayDuration) {
_save() _save()
} }
.onChange(of: [
tournament.federalCategory,
]) {
_save()
}
.onChange(of: [
tournament.federalLevelCategory,
]) {
_save()
}
.onChange(of: [
tournament.federalAgeCategory,
]) {
_save()
}
.onChange(of: [ .onChange(of: [
tournament.groupStageSortMode, tournament.groupStageSortMode,
]) { ]) {

@ -16,6 +16,7 @@ enum TournamentSettings: Identifiable, Selectable, Equatable {
case general case general
case club(Tournament) case club(Tournament)
case matchFormats case matchFormats
case tournamentType
var id: String { String(describing: self) } var id: String { String(describing: self) }
@ -29,6 +30,8 @@ enum TournamentSettings: Identifiable, Selectable, Equatable {
return "Général" return "Général"
case .club: case .club:
return "Terrains" return "Terrains"
case .tournamentType:
return "Type"
} }
} }
@ -55,7 +58,7 @@ struct TournamentSettingsView: View {
@Environment(Tournament.self) var tournament: Tournament @Environment(Tournament.self) var tournament: Tournament
private func destinations() -> [TournamentSettings] { private func destinations() -> [TournamentSettings] {
[.general, .club(tournament), .matchFormats] [.general, .tournamentType, .club(tournament), .matchFormats]
} }
var body: some View { var body: some View {
@ -66,6 +69,8 @@ struct TournamentSettingsView: View {
TournamentStatusView(tournament: tournament) TournamentStatusView(tournament: tournament)
case .matchFormats: case .matchFormats:
TournamentMatchFormatsSettingsView() TournamentMatchFormatsSettingsView()
case .tournamentType:
TournamentCategorySettingsView()
case .general: case .general:
TournamentGeneralSettingsView(tournament: tournament) TournamentGeneralSettingsView(tournament: tournament)
case .club: case .club:

Loading…
Cancel
Save