multistore
Razmig Sarkissian 1 year ago
parent 717b081dd9
commit dc2371e95a
  1. 20
      PadelClub/Data/Tournament.swift
  2. 4
      PadelClub/Views/Calling/SeedsCallingView.swift
  3. 2
      PadelClub/Views/GroupStage/GroupStageView.swift
  4. 2
      PadelClub/Views/Match/MatchSetupView.swift
  5. 8
      PadelClub/Views/Team/TeamPickerView.swift

@ -1732,6 +1732,26 @@ class Tournament : ModelObject, Storable {
} }
} }
func replacementRangeExtended(groupStagePosition: Int) -> TeamRegistration.TeamRange? {
let selectedSortedTeams = selectedSortedTeams()
var left: TeamRegistration? = nil
if groupStagePosition == 0 {
left = seeds().last
} else {
let previousHat = selectedSortedTeams.filter({ $0.groupStagePosition == groupStagePosition - 1 }).sorted(by: \.weight)
left = previousHat.last
}
var right: TeamRegistration? = nil
if groupStagePosition == teamsPerGroupStage - 1 {
right = nil
} else {
let previousHat = selectedSortedTeams.filter({ $0.groupStagePosition == groupStagePosition + 1 }).sorted(by: \.weight)
right = previousHat.first
}
return (left: left, right: right)
}
// MARK: - // MARK: -
func insertOnServer() throws { func insertOnServer() throws {

@ -26,6 +26,10 @@ struct SeedsCallingView: View {
} }
} header: { } header: {
Text(round.roundTitle()) Text(round.roundTitle())
} footer: {
if let startDate = round.startDate ?? round.playedMatches().first?.startDate {
CallView(teams: seeds, callDate: startDate, matchFormat: round.matchFormat, roundLabel: round.roundTitle())
}
} }
} }
} }

@ -171,7 +171,7 @@ struct GroupStageView: View {
VStack(alignment: .leading, spacing: 0) { VStack(alignment: .leading, spacing: 0) {
Text("#\(index + 1)") Text("#\(index + 1)")
.font(.caption) .font(.caption)
TeamPickerView(teamPicked: { team in TeamPickerView(groupStagePosition: index, teamPicked: { team in
print(team.pasteData()) print(team.pasteData())
team.groupStage = groupStage.id team.groupStage = groupStage.id
team.groupStagePosition = index team.groupStagePosition = index

@ -71,7 +71,7 @@ struct MatchSetupView: View {
} }
HStack { HStack {
let luckyLosers = walkOutSpot ? match.luckyLosers() : [] let luckyLosers = walkOutSpot ? match.luckyLosers() : []
TeamPickerView(luckyLosers: luckyLosers, teamPicked: { team in TeamPickerView(groupStagePosition: nil, luckyLosers: luckyLosers, teamPicked: { team in
print(team.pasteData()) print(team.pasteData())
if walkOutSpot { if walkOutSpot {
match.setLuckyLoser(team: team, teamPosition: teamPosition) match.setLuckyLoser(team: team, teamPosition: teamPosition)

@ -13,6 +13,7 @@ struct TeamPickerView: View {
@Environment(\.dismiss) private var dismiss @Environment(\.dismiss) private var dismiss
@State private var presentTeamPickerView: Bool = false @State private var presentTeamPickerView: Bool = false
@State private var searchField: String = "" @State private var searchField: String = ""
var groupStagePosition: Int? = nil
var luckyLosers: [TeamRegistration] = [] var luckyLosers: [TeamRegistration] = []
let teamPicked: ((TeamRegistration) -> (Void)) let teamPicked: ((TeamRegistration) -> (Void))
@ -26,6 +27,13 @@ struct TeamPickerView: View {
.sheet(isPresented: $presentTeamPickerView) { .sheet(isPresented: $presentTeamPickerView) {
NavigationStack { NavigationStack {
List { List {
if let groupStagePosition, let replacementRangeExtended = tournament.replacementRangeExtended(groupStagePosition: groupStagePosition) {
Section {
GroupStageTeamReplacementView.TeamRangeView(teamRange: replacementRangeExtended, playerWeight: 0)
} header: {
Text("Même ligne en poule")
}
}
let teams = tournament.selectedSortedTeams() let teams = tournament.selectedSortedTeams()
if luckyLosers.isEmpty == false { if luckyLosers.isEmpty == false {
Section { Section {

Loading…
Cancel
Save