|
|
|
@ -12,7 +12,7 @@ struct GroupStagesSettingsView: View { |
|
|
|
@EnvironmentObject var dataStore: DataStore |
|
|
|
@EnvironmentObject var dataStore: DataStore |
|
|
|
@Environment(\.dismiss) private var dismiss |
|
|
|
@Environment(\.dismiss) private var dismiss |
|
|
|
@Environment(Tournament.self) var tournament: Tournament |
|
|
|
@Environment(Tournament.self) var tournament: Tournament |
|
|
|
@State private var generationDone: Bool = false |
|
|
|
@State private var generationDoneMessage: String? |
|
|
|
let step: Int |
|
|
|
let step: Int |
|
|
|
|
|
|
|
|
|
|
|
var tournamentStore: TournamentStore { |
|
|
|
var tournamentStore: TournamentStore { |
|
|
|
@ -168,6 +168,32 @@ struct GroupStagesSettingsView: View { |
|
|
|
Text("Redistribue les équipes par la méthode du serpentin") |
|
|
|
Text("Redistribue les équipes par la méthode du serpentin") |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let groupStages = tournament.groupStages() |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
|
|
|
if groupStages.anySatisfy({ $0.isReturnMatchEnabled() }) { |
|
|
|
|
|
|
|
RowButtonView("Effacer les matchs retours", role: .destructive) { |
|
|
|
|
|
|
|
groupStages.filter({ $0.isReturnMatchEnabled() }).forEach { groupStage in |
|
|
|
|
|
|
|
groupStage.removeReturnMatches() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
generationDoneMessage = "Matchs retours effacés" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
|
|
|
|
if groupStages.anySatisfy({ $0.isReturnMatchEnabled() == false }) { |
|
|
|
|
|
|
|
RowButtonView("Rajouter les matchs retours", role: .destructive) { |
|
|
|
|
|
|
|
groupStages.filter({ $0.isReturnMatchEnabled() == false }).forEach { groupStage in |
|
|
|
|
|
|
|
groupStage.addReturnMatches() |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
generationDoneMessage = "Matchs retours créés" |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
Section { |
|
|
|
Section { |
|
|
|
RowButtonView("Nommer les poules alphabétiquement", role: .destructive) { |
|
|
|
RowButtonView("Nommer les poules alphabétiquement", role: .destructive) { |
|
|
|
let groupStages = tournament.groupStages() |
|
|
|
let groupStages = tournament.groupStages() |
|
|
|
@ -220,8 +246,8 @@ struct GroupStagesSettingsView: View { |
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
.overlay(alignment: .bottom) { |
|
|
|
.overlay(alignment: .bottom) { |
|
|
|
if generationDone { |
|
|
|
if let generationDoneMessage { |
|
|
|
Label("Poules mises à jour", systemImage: "checkmark.circle.fill") |
|
|
|
Label(generationDoneMessage, systemImage: "checkmark.circle.fill") |
|
|
|
.toastFormatted() |
|
|
|
.toastFormatted() |
|
|
|
.deferredRendering(for: .seconds(2)) |
|
|
|
.deferredRendering(for: .seconds(2)) |
|
|
|
} |
|
|
|
} |
|
|
|
@ -238,7 +264,7 @@ struct GroupStagesSettingsView: View { |
|
|
|
RowButtonView("Refaire les poules", role: .destructive) { |
|
|
|
RowButtonView("Refaire les poules", role: .destructive) { |
|
|
|
tournament.deleteGroupStages() |
|
|
|
tournament.deleteGroupStages() |
|
|
|
tournament.buildGroupStages() |
|
|
|
tournament.buildGroupStages() |
|
|
|
generationDone = true |
|
|
|
generationDoneMessage = "Poules mises à jour" |
|
|
|
tournament.shouldVerifyGroupStage = false |
|
|
|
tournament.shouldVerifyGroupStage = false |
|
|
|
_save() |
|
|
|
_save() |
|
|
|
} |
|
|
|
} |
|
|
|
@ -249,7 +275,7 @@ struct GroupStagesSettingsView: View { |
|
|
|
RowButtonView("Poule \(mode.localizedLabel().lowercased())", role: .destructive, systemImage: mode.systemImage) { |
|
|
|
RowButtonView("Poule \(mode.localizedLabel().lowercased())", role: .destructive, systemImage: mode.systemImage) { |
|
|
|
tournament.groupStageOrderingMode = mode |
|
|
|
tournament.groupStageOrderingMode = mode |
|
|
|
tournament.refreshGroupStages(keepExistingMatches: true) |
|
|
|
tournament.refreshGroupStages(keepExistingMatches: true) |
|
|
|
generationDone = true |
|
|
|
generationDoneMessage = "Poules mises à jour" |
|
|
|
tournament.shouldVerifyGroupStage = false |
|
|
|
tournament.shouldVerifyGroupStage = false |
|
|
|
_save() |
|
|
|
_save() |
|
|
|
} |
|
|
|
} |
|
|
|
|