multistore
Razmig Sarkissian 2 years ago
parent fceb61c08e
commit cf44ce1310
  1. 4
      PadelClub.xcodeproj/project.pbxproj
  2. 10
      PadelClub/Data/Tournament.swift
  3. 44
      PadelClub/Views/Tournament/Screen/BroadcastView.swift

@ -1830,7 +1830,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6; CURRENT_PROJECT_VERSION = 7;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\"";
DEVELOPMENT_TEAM = BQ3Y44M3Q6; DEVELOPMENT_TEAM = BQ3Y44M3Q6;
@ -1868,7 +1868,7 @@
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
CODE_SIGN_STYLE = Automatic; CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 6; CURRENT_PROJECT_VERSION = 7;
DEFINES_MODULE = YES; DEFINES_MODULE = YES;
DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\""; DEVELOPMENT_ASSET_PATHS = "\"PadelClub/Preview Content\"";
DEVELOPMENT_TEAM = BQ3Y44M3Q6; DEVELOPMENT_TEAM = BQ3Y44M3Q6;

@ -303,9 +303,13 @@ class Tournament : ModelObject, Storable {
} }
func areTeamsPublished() -> Bool { func areTeamsPublished() -> Bool {
Date() >= startDate Date() >= startDate || publishTeams
} }
func areSummonsPublished() -> Bool {
Date() >= startDate || publishSummons
}
func publishedGroupStagesDate() -> Date? { func publishedGroupStagesDate() -> Date? {
if let first = groupStages().flatMap({ $0.playedMatches() }).compactMap({ $0.startDate }).sorted().first?.atNine() { if let first = groupStages().flatMap({ $0.playedMatches() }).compactMap({ $0.startDate }).sorted().first?.atNine() {
if first.isEarlierThan(startDate) { if first.isEarlierThan(startDate) {
@ -319,6 +323,7 @@ class Tournament : ModelObject, Storable {
} }
func areGroupStagesPublished() -> Bool { func areGroupStagesPublished() -> Bool {
if publishGroupStages { return true }
if let publishedGroupStagesDate = publishedGroupStagesDate() { if let publishedGroupStagesDate = publishedGroupStagesDate() {
return Date() >= publishedGroupStagesDate return Date() >= publishedGroupStagesDate
} else { } else {
@ -339,6 +344,7 @@ class Tournament : ModelObject, Storable {
} }
func areBracketsPublished() -> Bool { func areBracketsPublished() -> Bool {
if publishBrackets { return true }
if let publishedBracketsDate = publishedBracketsDate() { if let publishedBracketsDate = publishedBracketsDate() {
return Date() >= publishedBracketsDate return Date() >= publishedBracketsDate
} else { } else {

@ -58,22 +58,25 @@ struct BroadcastView: View {
Text("Liste des équipes") Text("Liste des équipes")
} footer: { } footer: {
if Date() < tournament.publishedTeamsDate() { if Date() < tournament.publishedTeamsDate() {
FooterButtonView(tournament.publishTeams ? "masquer sur le site" : "publier maintenant") { HStack {
tournament.publishTeams.toggle() Spacer()
FooterButtonView(tournament.publishTeams ? "masquer sur le site" : "publier maintenant") {
tournament.publishTeams.toggle()
}
} }
} }
} }
Section { Section {
LabeledContent { LabeledContent {
if tournament.areTeamsPublished() { if tournament.areSummonsPublished() {
Image(systemName:"checkmark").foregroundStyle(.green) Image(systemName:"checkmark").foregroundStyle(.green)
} else { } else {
Text(tournament.publishedTeamsDate().formatted()) Text(tournament.publishedTeamsDate().formatted())
} }
} label: { } label: {
if tournament.areTeamsPublished() { if tournament.areSummonsPublished() {
Text("Publiée") Text("Publiées")
} else { } else {
Text("Publication prévue") Text("Publication prévue")
} }
@ -82,8 +85,11 @@ struct BroadcastView: View {
Text("Convocations") Text("Convocations")
} footer: { } footer: {
if Date() < tournament.publishedTeamsDate() { if Date() < tournament.publishedTeamsDate() {
FooterButtonView(tournament.publishSummons ? "masquer sur le site" : "publier maintenant") { HStack {
tournament.publishSummons.toggle() Spacer()
FooterButtonView(tournament.publishSummons ? "masquer sur le site" : "publier maintenant") {
tournament.publishSummons.toggle()
}
} }
} }
} }
@ -99,7 +105,7 @@ struct BroadcastView: View {
} }
} label: { } label: {
if areGroupStagesPublished { if areGroupStagesPublished {
Text("Publiée") Text("Publiées")
} else { } else {
Text("Publication prévue") Text("Publication prévue")
} }
@ -108,8 +114,11 @@ struct BroadcastView: View {
Text("Poules") Text("Poules")
} footer: { } footer: {
if Date() < publishedGroupStagesDate { if Date() < publishedGroupStagesDate {
FooterButtonView(tournament.publishGroupStages ? "masquer sur le site" : "publier maintenant") { HStack {
tournament.publishGroupStages.toggle() Spacer()
FooterButtonView(tournament.publishGroupStages ? "masquer sur le site" : "publier maintenant") {
tournament.publishGroupStages.toggle()
}
} }
} }
} }
@ -126,7 +135,7 @@ struct BroadcastView: View {
} }
} label: { } label: {
if areBracketsPublished { if areBracketsPublished {
Text("Publiée") Text("Publié")
} else { } else {
Text("Publication prévue") Text("Publication prévue")
} }
@ -134,9 +143,12 @@ struct BroadcastView: View {
} header: { } header: {
Text("Tableau") Text("Tableau")
} footer: { } footer: {
if Date() < publishedBracketsDate{ if Date() < publishedBracketsDate {
FooterButtonView(tournament.publishBrackets ? "masquer sur le site" : "publier maintenant") { HStack {
tournament.publishBrackets.toggle() Spacer()
FooterButtonView(tournament.publishBrackets ? "masquer sur le site" : "publier maintenant") {
tournament.publishBrackets.toggle()
}
} }
} }
} }
@ -149,7 +161,7 @@ struct BroadcastView: View {
Text("Tournoi privé") Text("Tournoi privé")
} }
} footer: { } footer: {
let footerString = "Le tournoi sera masqué sur le site [Padel Club]\(URLs.main.rawValue)" let footerString = "Le tournoi sera masqué sur le site [Padel Club](\(URLs.main.rawValue))"
Text(.init(footerString)) Text(.init(footerString))
} }
@ -204,7 +216,7 @@ struct BroadcastView: View {
UIPasteboard.general.string = urlToShow UIPasteboard.general.string = urlToShow
} }
} }
.onChange(of: tournament.isPrivate) { .onChange(of: [tournament.isPrivate, tournament.publishTeams, tournament.publishSummons, tournament.publishBrackets, tournament.publishGroupStages]) {
_save() _save()
} }
} }

Loading…
Cancel
Save