sync
Laurent 8 months ago
commit bd48e136c8
  1. 4
      PadelClub.xcodeproj/project.pbxproj
  2. 2
      PadelClub/Data/PlayerRegistration.swift
  3. 11
      PadelClub/Data/Tournament.swift
  4. 9
      PadelClub/Views/Tournament/FileImportView.swift
  5. 6
      PadelClub/Views/Tournament/Screen/InscriptionManagerView.swift

@ -3650,7 +3650,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.1.22; MARKETING_VERSION = 1.1.23;
PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";
@ -3695,7 +3695,7 @@
"$(inherited)", "$(inherited)",
"@executable_path/Frameworks", "@executable_path/Frameworks",
); );
MARKETING_VERSION = 1.1.22; MARKETING_VERSION = 1.1.23;
PRODUCT_BUNDLE_IDENTIFIER = app.padelclub; PRODUCT_BUNDLE_IDENTIFIER = app.padelclub;
PRODUCT_NAME = "$(TARGET_NAME)"; PRODUCT_NAME = "$(TARGET_NAME)";
PROVISIONING_PROFILE_SPECIFIER = ""; PROVISIONING_PROFILE_SPECIFIER = "";

@ -240,7 +240,7 @@ final class PlayerRegistration: BasePlayerRegistration, SideStorable {
} }
} }
func updateRank(from sources: [CSVParser], lastRank: Int) async throws { func updateRank(from sources: [CSVParser], lastRank: Int?) async throws {
#if DEBUG_TIME #if DEBUG_TIME
let start = Date() let start = Date()
defer { defer {

@ -1215,9 +1215,8 @@ defer {
rankSourceDate = newDate rankSourceDate = newDate
// Fetch current month data only once // Fetch current month data only once
let monthData = currentMonthData() var monthData = currentMonthData()
if monthData == nil { if monthData == nil {
async let lastRankWoman = SourceFileManager.shared.getUnrankValue(forMale: false, rankSourceDate: rankSourceDate) async let lastRankWoman = SourceFileManager.shared.getUnrankValue(forMale: false, rankSourceDate: rankSourceDate)
async let lastRankMan = SourceFileManager.shared.getUnrankValue(forMale: true, rankSourceDate: rankSourceDate) async let lastRankMan = SourceFileManager.shared.getUnrankValue(forMale: true, rankSourceDate: rankSourceDate)
@ -1233,10 +1232,12 @@ defer {
} catch { } catch {
Logger.error(error) Logger.error(error)
} }
monthData = newMonthData
} }
let lastRankMan = monthData?.maleUnrankedValue ?? 0 let lastRankMan = monthData?.maleUnrankedValue
let lastRankWoman = monthData?.femaleUnrankedValue ?? 0 let lastRankWoman = monthData?.femaleUnrankedValue
var chunkedParsers: [CSVParser] = [] var chunkedParsers: [CSVParser] = []
if let providedSources { if let providedSources {

@ -499,7 +499,16 @@ struct FileImportView: View {
private func _validate(tournament: Tournament) async { private func _validate(tournament: Tournament) async {
let filteredTeams = filteredTeams(tournament: tournament) let filteredTeams = filteredTeams(tournament: tournament)
let lastDataSource: String? = DataStore.shared.appSettings.lastDataSource
var _mostRecentDateAvailable: Date? {
guard let lastDataSource else { return nil }
return URL.importDateFormatter.date(from: lastDataSource)
}
if let rankSourceDate = _mostRecentDateAvailable {
tournament.rankSourceDate = rankSourceDate
_save()
}
tournament.importTeams(filteredTeams) tournament.importTeams(filteredTeams)
validatedTournamentIds.insert(tournament.id) validatedTournamentIds.insert(tournament.id)

@ -278,6 +278,7 @@ struct InscriptionManagerView: View {
} }
.sheet(isPresented: $presentImportView, onDismiss: { .sheet(isPresented: $presentImportView, onDismiss: {
_setHash() _setHash()
currentRankSourceDate = tournament.rankSourceDate
}) { }) {
NavigationStack { NavigationStack {
FileImportView(defaultFileProvider: tournament.isAnimation() ? .custom : .frenchFederation) FileImportView(defaultFileProvider: tournament.isAnimation() ? .custom : .frenchFederation)
@ -293,8 +294,11 @@ struct InscriptionManagerView: View {
_setHash() _setHash()
} }
.onChange(of: currentRankSourceDate) { .onChange(of: currentRankSourceDate) {
if let currentRankSourceDate, tournament.rankSourceDate != currentRankSourceDate { if let currentRankSourceDate, tournament.rankSourceDate != currentRankSourceDate, unsortedPlayers.isEmpty == false {
confirmUpdateRank = true confirmUpdateRank = true
} else {
tournament.rankSourceDate = currentRankSourceDate
_save()
} }
} }
.sheet(isPresented: $confirmUpdateRank, onDismiss: { .sheet(isPresented: $confirmUpdateRank, onDismiss: {

Loading…
Cancel
Save