INFOPLIST_KEY_NSCalendarsUsageDescription = "Padel Club a besoin d'avoir accès à votre calendrier pour pouvoir y inscrire ce tournoi";
INFOPLIST_KEY_NSCameraUsageDescription = "En autorisant l'application à utiliser la caméra, vous pourrez prendre des photos des rencontres";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "En utilisant votre position, Padel Club peut trouver plus rapidement les clubs et les tournois autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSCalendarsUsageDescription = "Padel Club a besoin d'avoir accès à votre calendrier pour pouvoir y inscrire ce tournoi";
INFOPLIST_KEY_NSCameraUsageDescription = "En autorisant l'application à utiliser la caméra, vous pourrez prendre des photos des rencontres";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "En utilisant votre position, Padel Club peut trouver plus rapidement les clubs et les tournois autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSCalendarsUsageDescription = "Padel Club a besoin d'avoir accès à votre calendrier pour pouvoir y inscrire ce tournoi";
INFOPLIST_KEY_NSCameraUsageDescription = "En autorisant l'application à utiliser la caméra, vous pourrez prendre des photos des rencontres";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club a besoin de votre position pour rechercher les clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSCalendarsUsageDescription = "Padel Club a besoin d'avoir accès à votre calendrier pour pouvoir y inscrire ce tournoi";
INFOPLIST_KEY_NSCameraUsageDescription = "En autorisant l'application à utiliser la caméra, vous pourrez prendre des photos des rencontres";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club a besoin de votre position pour rechercher les clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysAndWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationAlwaysUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Padel Club utilise votre position simplement pour faciliter la recherche de tournois et de clubs autour de vous.";
Text("Une fois que vous avez importé votre fichier, Padel Club vous affiche ainsi les équipes ayant des joueurs ne provenant pas du fichier ni de la base fédérale.")
}
Section{
Text("Équipe ayant un joueur ne provenant pas du fichier beach-padel")
Text("Rang d'une joueuse dans un tournoi messieurs")
}
@ -213,7 +213,7 @@ struct InscriptionManagerRankUpdateTip: Tip {
varmessage:Text?{
Text("Padel Club vous permet de mettre à jour le classement des équipes inscrites. Si vous avez clôturé les inscriptions, la mise à jour du classement ne modifie pas la phase d'intégration de l'équipe, poule ou tableau final. Vous pouvez manuellement mettre à jour cette option.")
}
varimage:Image?{
Image(systemName:"list.number")
}
@ -232,7 +232,7 @@ struct SharePictureTip: Tip {
varmessage:Text?{
Text("Lors d'un partage d'une photo, le texte est disponible dans le presse-papier du téléphone")
}
varimage:Image?{
Image(systemName:"photo.badge.checkmark.fill")
}
@ -246,7 +246,7 @@ struct NewRankDataAvailableTip: Tip {
varmessage:Text?{
Text("Padel Club récupère toutes les données publique provenant de la FFT. L'importation de ce nouveau classement peut prendre plusieurs dizaines de secondes.")
}
varimage:Image?{
Image(systemName:"exclamationmark.icloud")
}
@ -266,7 +266,7 @@ struct ClubSearchTip: Tip {
varmessage:Text?{
Text("Padel Club peut rechercher un club autourde vous, d'une ville ou d'un code postal, facilitant ainsi la saisie d'information.")
}
varimage:Image?{
Image(systemName:"house.and.flag.fill")
}
@ -275,7 +275,7 @@ struct ClubSearchTip: Tip {
Action(id:ActionKey.searchAroundMe.rawValue,title:"Chercher autour de moi")
Action(id:ActionKey.searchCity.rawValue,title:"Chercher une ville")
}
enumActionKey:String{
casesearchAroundMe="search-around-me"
casesearchCity="search-city"
@ -291,7 +291,7 @@ struct SlideToDeleteTip: Tip {
varmessage:Text?{
Text("Vous pouvez effacer un club en glissant votre doigt vers la gauche")
}
varimage:Image?{
Image(systemName:"trash")
}
@ -306,7 +306,7 @@ struct MultiTournamentsEventTip: Tip {
varmessage:Text?{
Text("Padel Club permet de gérer plusieurs tournois ayant lieu en même temps. Un P100 homme et dame le même week-end par exemple.")
}
varimage:Image?{
Image(systemName:"trophy.circle")
}
@ -320,7 +320,7 @@ struct NotFoundAreWalkOutTip: Tip {
varmessage:Text?{
Text("Si une équipe déjà présente dans votre liste d'attente n'est pas dans le fichier, elle sera mise WO")
}
varimage:Image?{
Image(systemName:"person.2.slash.fill")
}
@ -338,7 +338,7 @@ struct TournamentPublishingTip: Tip {
varmessage:Text?{
Text("Padel Club vous permet de publier votre tournoi et rendre accessible à tous les résultats des matchs et l'évolution de l'événement. Les informations seront accessibles sur le site Padel Club.")
}
varimage:Image?{
Image("PadelClub_logo_fondclair_transparent")
}
@ -352,7 +352,7 @@ struct TournamentTVBroadcastTip: Tip {
varmessage:Text?{
returnText("Padel Club vous propose un site spéficique à utiliser sur les écrans de votre club, présentant de manière intelligente l'évolution de votre tournoi.")
}
varimage:Image?{
Image(systemName:"sparkles.tv")
}
@ -361,7 +361,7 @@ struct TournamentTVBroadcastTip: Tip {
structTournamentSelectionTip:Tip{
@Parameter
staticvartournamentCount:Int?=nil
varrules:[Rule]{
[
//Definearulebasedontheappstate.
@ -379,7 +379,7 @@ struct TournamentSelectionTip: Tip {
varmessage:Text?{
returnText("Vous pouvez appuyer sur la barre de navigation pour accéder à un tournoi de votre événement.")
}
varimage:Image?{
Image(systemName:"filemenu.and.selection")
}
@ -388,7 +388,7 @@ struct TournamentSelectionTip: Tip {
structTournamentRunningTip:Tip{
@Parameter
staticvarisRunning:Bool=false
varrules:[Rule]{
[
//Definearulebasedontheappstate.
@ -406,7 +406,7 @@ struct TournamentRunningTip: Tip {
varmessage:Text?{
returnText("Le tournoi a commencé, les options utiles surtout à sa préparation sont maintenant accessibles dans le menu en haut à droite.")
}
varimage:Image?{
Image(systemName:"ellipsis.circle")
}
@ -421,18 +421,18 @@ struct CreateAccountTip: Tip {
letmessage="Un compte est nécessaire pour publier le tournoi sur [Padel Club](\(URLs.main.rawValue)) et profiter de toutes les pages du site, comme le mode TV pour transformer l'expérience de vos tournois !"
Action(id:ActionKey.accessPadelClubWebPage.rawValue,title:"Voir le site Padel Club")
}
enumActionKey:String{
casecreateAccount="createAccount"
caselearnMore="learnMore"
@ -443,7 +443,7 @@ struct CreateAccountTip: Tip {
structSlideToDeleteSeedTip:Tip{
@Parameter
staticvarseeds:Int=0
varrules:[Rule]{
[
//Definearulebasedontheappstate.
@ -461,7 +461,7 @@ struct SlideToDeleteSeedTip: Tip {
varmessage:Text?{
Text("Vous pouvez retirer une tête de série de sa position en glissant votre doigt vers la gauche")
}
varimage:Image?{
Image(systemName:"person.fill.xmark")
}
@ -470,7 +470,7 @@ struct SlideToDeleteSeedTip: Tip {
structPrintTip:Tip{
@Parameter
staticvarseeds:Int=0
varrules:[Rule]{
[
//Definearulebasedontheappstate.
@ -480,7 +480,7 @@ struct PrintTip: Tip {
}
]
}
vartitle:Text{
Text("Coup d'oeil de votre tableau")
}
@ -488,7 +488,7 @@ struct PrintTip: Tip {
varmessage:Text?{
Text("Vous pouvez avoir un aperçu de votre tableau ou l'imprimer.")
}
varimage:Image?{
Image(systemName:"printer")
}
@ -505,9 +505,9 @@ struct PrintTip: Tip {
structBracketEditTip:Tip{
@Parameter
staticvarmatchesHidden:Int=0
varnextRoundName:String?
varrules:[Rule]{
[
//Definearulebasedontheappstate.
@ -528,14 +528,14 @@ struct BracketEditTip: Tip {
letwording=nextRoundName!=nil?"en \(nextRoundName!)":"dans la manche suivante"
returnText("Padel Club a bien pris en compte \(article) tête\(Self.matchesHidden.pluralSuffix) de série positionnée\(Self.matchesHidden.pluralSuffix)\(wording). Le\(Self.matchesHidden.pluralSuffix)\(Self.matchesHidden) match\(Self.matchesHidden.pluralSuffix) inutile\(Self.matchesHidden.pluralSuffix)\(grammar) été désactivé automatiquement.")
}
varimage:Image?{
Image(systemName:"rectangle.slash")
}
}
structTeamsExportTip:Tip{
vartitle:Text{
Text("Exporter les paires")
}
@ -543,7 +543,7 @@ struct TeamsExportTip: Tip {
varmessage:Text?{
Text("Partager les paires comme indiqué dans le guide de la compétition à J-6 avant midi.")
}
varimage:Image?{
Image(systemName:"square.and.arrow.up")
}
@ -578,13 +578,79 @@ struct TimeSlotMoveOptionTip: Tip {
}
structPlayerTournamentSearchTip:Tip{
vartitle:Text{
Text("Cherchez un tournoi autour de vous !")
}
varmessage:Text?{
Text("Padel Club facilite la recherche de tournois et l'inscription !")
Text("Facilitez les inscriptions à votre tournoi en activant l'inscription en ligne. Les joueurs pourront s'inscrire directement depuis l'application ou le site Padel Club.")
Text("Le dernier match est terminé depuis plus de 2 heures. Si le tournoi a été annulé pour cause de météo vous pouvez l'indiquer comme 'Annulé' dans le menu en haut à droite, si ce n'est pas le cas, saisissez les scores manquants pour clôturer automatiquement le tournoi et publier le classement final.")
}
varimage:Image?{
Image(systemName:"clock.badge.questionmark")
}
varactions:[Action]{
Action(id:"tournament-status",title:"Gérer le statut du tournoi")
Text("Attention, depuis Août 2024, les données fédérales publiques des joueurs (messieurs) récupérables sont incomplètes car limité au 40.000 premiers joueurs.")
Text("Attention, depuis Août 2024, les données fédérales publiques des joueurs (messieurs) récupérables sont incomplètes car limité au 80.000 premiers joueurs.")
ifcurrentMonth.maleUnrankedValue==nil{
Text("Le rang d'un joueur non-classé n'est donc pas calculable pour le moment, Padel Club utilisera une valeur par défaut de de 70.000.")
Text("Le rang d'un joueur non-classé n'est donc pas calculable pour le moment, Padel Club utilisera une valeur par défaut de de 90.000.")
}
Text("Un classement souligné comme ci-dessous indiquera que l'information provient d'un mois précédent.")
RowButtonView("Modifier la composition de l'équipe"){
RowButtonView("Modifier la composition de l'équipe",role:team.hasRegisteredOnline()?.destructive:.none,confirmationMessage:"Vous êtes sur le point de modifier une équipe qui s'est inscrite en ligne."){
Text("L'équipe \(currentWaitingList.teamLabel(separator:"/")), inscrite en ligne, rentre dans votre sélection suite à la modification que vous venez de faire, voulez-vous les prévenir ?")
Text("Si vous souhaitez que Padel Club vous aide à suivre les encaissements, indiquer un prix d'inscription. Sinon Padel Club vous aidera à suivre simplement l'arrivée et la présence des joueurs.")
Text("Les inscriptions en ligne permettent à des joueurs de s'inscrire à votre tournoi en passant par le site Padel Club. Vous verrez alors votre liste d'inscription s'agrandir dans la vue Gestion des Inscriptions de l'application.")
Text("Activez et définissez une date d'ouverture pour les inscriptions au tournoi. Les inscriptions en ligne ne seront possible qu'à partir de cette date.")
}
Section{
Toggle(isOn:$registrationDateLimitEnabled){
Text("Définir une date")
}
ifregistrationDateLimitEnabled{
DatePicker(selection:$registrationDateLimit){
DateMenuView(date:$registrationDateLimit)
}
}
}header:{
Text("Date de fermeture des inscriptions")
}footer:{
Text("Si une date de fermeture des inscriptions en ligne est définie, alors plus aucune inscription ne sera possible après cette date. Sinon, la date du début du tournoi ou la date de clôture des inscriptions seront utilisées.")
}
Section{
Toggle(isOn:$targetTeamCountEnabled){
Text("Activer une limite")
}
iftargetTeamCountEnabled{
StepperView(count:$targetTeamCount,minimum:4)
}
}header:{
Text("Paires admises")
}footer:{
Text("Si une limite de paire existe, les inscriptions seront indiqués en attente pour les joueurs au-délà de cette limite dans le cas où aucune limite de liste d'attente n'est active ou non atteinte. Dans le cas contraire, plus aucune inscription ne seront possibles.")
}
Section{
Toggle(isOn:$waitingListLimitEnabled){
Text("Activer une limite")
}
ifwaitingListLimitEnabled{
StepperView(count:$waitingListLimit,minimum:1)
}
}header:{
Text("Liste d'attente")
}footer:{
Text("Si une limite à la liste d'attente existe, les inscriptions ne seront plus possibles une fois la liste d'attente pleine. Si aucune limite de liste d'attente n'est active, alors les inscriptions seront toujours possibles. Les joueurs auront une indication comme quoi ils sont en liste d'attente.")
description:Text("Permettez aux joueurs de s'inscrire eux-mêmes à ce tournoi. Les équipes inscrites apparaîtront automatiquement dans la liste de l'arbitre. L'inscription en ligne requiert un email de contact et une licence FFT.")
returnText("Nous vous offrons votre premier tournoi ! Convoquez les équipes, créez les poules, le tableau comme vous le souhaitez. \nEnregistrez les résultats de chaque équipes et diffusez les scores en temps réel sur les écrans de votre club !")
returnText("Nous vous offrons vos 3 premiers tournois ! Convoquez les équipes, créez les poules, le tableau comme vous le souhaitez. \nEnregistrez les résultats de chaque équipes et diffusez les scores en temps réel sur les écrans de votre club !")