Adds isDeleted property to tournaments

multistore
Laurent 2 years ago
parent d5bb06a76d
commit f3909c9055
  1. 2
      PadelClub/Data/Tournament.swift
  2. 4
      PadelClub/Views/Navigation/Agenda/ActivityView.swift
  3. 13
      PadelClub/Views/Navigation/Agenda/EventListView.swift

@ -43,6 +43,7 @@ class Tournament : ModelObject, Storable {
var entryFee: Double? var entryFee: Double?
var payment: TournamentPayment? = nil var payment: TournamentPayment? = nil
var additionalEstimationDuration: Int = 0 var additionalEstimationDuration: Int = 0
var isDeleted: Bool = false
@ObservationIgnored @ObservationIgnored
var navigationPath: [Screen] = [] var navigationPath: [Screen] = []
@ -1116,6 +1117,7 @@ extension Tournament {
case _teamsPerGroupStage = "teamsPerGroupStage" case _teamsPerGroupStage = "teamsPerGroupStage"
case _entryFee = "entryFee" case _entryFee = "entryFee"
case _additionalEstimationDuration = "additionalEstimationDuration" case _additionalEstimationDuration = "additionalEstimationDuration"
case _isDeleted = "isDeleted"
} }
} }

@ -22,12 +22,12 @@ struct ActivityView: View {
@State private var uuid: UUID = UUID() @State private var uuid: UUID = UUID()
var runningTournaments: [FederalTournamentHolder] { var runningTournaments: [FederalTournamentHolder] {
dataStore.tournaments.filter({ $0.endDate == nil }) dataStore.tournaments.filter({ $0.endDate == nil && $0.isDeleted == false })
.filter({ federalDataViewModel.isTournamentValidForFilters($0) }) .filter({ federalDataViewModel.isTournamentValidForFilters($0) })
} }
var endedTournaments: [Tournament] { var endedTournaments: [Tournament] {
dataStore.tournaments.filter({ $0.endDate != nil }) dataStore.tournaments.filter({ $0.endDate != nil && $0.isDeleted == false })
.filter({ federalDataViewModel.isTournamentValidForFilters($0) }) .filter({ federalDataViewModel.isTournamentValidForFilters($0) })
.sorted(using: SortDescriptor(\.startDate, order: .reverse)) .sorted(using: SortDescriptor(\.startDate, order: .reverse))
} }

@ -6,6 +6,7 @@
// //
import SwiftUI import SwiftUI
import LeStorage
struct EventListView: View { struct EventListView: View {
@EnvironmentObject var dataStore: DataStore @EnvironmentObject var dataStore: DataStore
@ -65,6 +66,7 @@ struct EventListView: View {
do { do {
try await federalDataViewModel.gatherTournaments(clubs: dataStore.clubs.filter { $0.code != nil }, startDate: startDate, endDate: startDate.endOfMonth) try await federalDataViewModel.gatherTournaments(clubs: dataStore.clubs.filter { $0.code != nil }, startDate: startDate, endDate: startDate.endOfMonth)
} catch { } catch {
Logger.error(error)
// self.error = error // self.error = error
} }
// isGatheringFederalTournaments = false // isGatheringFederalTournaments = false
@ -84,7 +86,6 @@ struct EventListView: View {
return result return result
} }
private func _listView(_ tournaments: [FederalTournamentHolder]) -> some View { private func _listView(_ tournaments: [FederalTournamentHolder]) -> some View {
ForEach(tournaments, id: \.holderId) { tournamentHolder in ForEach(tournaments, id: \.holderId) { tournamentHolder in
if let tournament = tournamentHolder as? Tournament { if let tournament = tournamentHolder as? Tournament {
@ -101,7 +102,15 @@ struct EventListView: View {
} }
.swipeActions(edge: .trailing, allowsFullSwipe: true) { .swipeActions(edge: .trailing, allowsFullSwipe: true) {
Button(role: .destructive) { Button(role: .destructive) {
try? dataStore.tournaments.delete(instance: tournament)
tournament.isDeleted = true
do {
try dataStore.tournaments.addOrUpdate(instance: tournament)
} catch {
Logger.error(error)
}
// try? dataStore.tournaments.delete(instance: tournament)
} label: { } label: {
LabelDelete() LabelDelete()
} }

Loading…
Cancel
Save