fix team label and lucky loser stuff

sync2
Razmig Sarkissian 8 months ago
parent e029295b6a
commit 1843ab58d1
  1. 4
      PadelClub/Data/Match.swift
  2. 8
      PadelClub/Data/TeamRegistration.swift
  3. 2
      PadelClub/Views/Match/Components/MatchDateView.swift
  4. 2
      PadelClub/Views/Match/Components/PlayerBlockView.swift
  5. 5
      PadelClub/Views/Score/FollowUpMatchView.swift
  6. 2
      PadelClub/Views/Shared/SelectablePlayerListView.swift
  7. 12
      PadelClub/Views/Team/TeamPickerView.swift
  8. 6
      PadelClub/Views/Team/TeamRowView.swift

@ -517,7 +517,7 @@ defer {
return (groupStageObject.index + 1) * 100 + groupStageObject.indexOf(index)
}
guard let roundObject else { return index }
return roundObject.isLoserBracket() ? (roundObject.index + 1) * 10000 + indexInRound() : (roundObject.index + 1) * 1000 + indexInRound()
return (300 - (roundObject.theoryCumulativeMatchCount * 10 + roundObject.index * 22)) * 10 + indexInRound()
}
func previousMatches() -> [Match] {
@ -540,8 +540,10 @@ defer {
func setWalkOut(_ teamPosition: TeamPosition) {
let teamScoreWalkout = teamScore(teamPosition) ?? TeamScore(match: id, team: team(teamPosition))
teamScoreWalkout.walkOut = 0
teamScoreWalkout.score = matchFormat.defaultWalkOutScore(true).compactMap({ String($0) }).joined(separator: ",")
let teamScoreWinning = teamScore(teamPosition.otherTeam) ?? TeamScore(match: id, team: team(teamPosition.otherTeam))
teamScoreWinning.walkOut = nil
teamScoreWinning.score = matchFormat.defaultWalkOutScore(false).compactMap({ String($0) }).joined(separator: ",")
do {
try self.tournamentStore.teamScores.addOrUpdate(contentOfs: [teamScoreWalkout, teamScoreWinning])
} catch {

@ -646,6 +646,14 @@ final class TeamRegistration: ModelObject, Storable {
unsortedPlayers().count > 0
}
func bracketMatchTitleAndQualifiedStatus() -> String? {
let values = [qualified ? "Qualifié" : nil, initialMatch()?.roundAndMatchTitle()].compactMap({ $0 })
if values.isEmpty {
return nil
}
return values.joined(separator: " -> ")
}
enum CodingKeys: String, CodingKey {
case _id = "id"
case _tournament = "tournament"

@ -30,7 +30,7 @@ struct MatchDateView: View {
}
var currentDate: Date {
Date().withoutSeconds()
Date()
}
var body: some View {

@ -151,7 +151,7 @@ struct PlayerBlockView: View {
}
}
}
} else if let team {
} else if let team, hasWon == false, isWalkOut == false {
TeamWeightView(team: team, teamPosition: teamPosition)
}
}

@ -217,6 +217,11 @@ struct FollowUpMatchView: View {
}
#if DEBUG
Spacer()
if let roundObject = match.roundObject {
Text(roundObject.index.formatted())
Text(roundObject.theoryCumulativeMatchCount.formatted())
}
Text(match.computedOrder.formatted())
FooterButtonView("copier l'id") {
let pasteboard = UIPasteboard.general
pasteboard.string = match.id

@ -427,7 +427,9 @@ struct MySearchView: View {
searchViewModel.selectedPlayers.insert(player)
} label: {
ImportedPlayerView(player: player, showFemaleInMaleAssimilation: searchViewModel.showFemaleInMaleAssimilation, showProgression: true)
.contentShape(Rectangle())
}
.frame(maxWidth: .infinity)
.buttonStyle(.plain)
}
} header: {

@ -134,11 +134,19 @@ struct TeamPickerView: View {
// presentTeamPickerView = false
// }
} label: {
TeamRowView(team: team)
.contentShape(Rectangle())
VStack(alignment: .leading) {
if let roundAndMatchTitle = team.bracketMatchTitleAndQualifiedStatus() {
Text(roundAndMatchTitle)
.font(.headline)
.frame(maxWidth: .infinity, alignment: .leading)
}
TeamRowView(team: team)
}
.contentShape(Rectangle())
}
.frame(maxWidth: .infinity)
.buttonStyle(.plain)
.id(team.id)
.listRowView(isActive: matchTypeContext == .loserBracket && round?.teams().map({ $0.id }).contains(team.id) == true, color: .green, hideColorVariation: true)
// .confirmationDialog("Attention", isPresented: confirmationRequest, titleVisibility: .visible) {
// Button("Retirer du tableau", role: .destructive) {

@ -9,6 +9,8 @@ import SwiftUI
struct TeamRowView: View {
@EnvironmentObject var dataStore: DataStore
@Environment(\.isEditingTournamentSeed) private var isEditingTournamentSeed
var team: TeamRegistration
var teamPosition: TeamPosition? = nil
var displayCallDate: Bool = false
@ -20,7 +22,9 @@ struct TeamRowView: View {
TeamWeightView(team: team, teamPosition: teamPosition, teamIndex: teamIndex)
} label: {
VStack(alignment: .leading) {
TeamHeadlineView(team: team)
if isEditingTournamentSeed.wrappedValue == false {
TeamHeadlineView(team: team)
}
TeamView(team: team)
}
if displayCallDate {

Loading…
Cancel
Save