Modèle

L'entraînement dans la saison

Deux choses à régler : qu'un entraînement sache qu'il appartient à une saison et à un thème — dans la liste comme dans l'éditeur, sur desktop comme sur mobile —, et que les dates cessent d'être un champ qu'on remplit pour rien. Le principe : la date appartient à la saison, pas à l'entraînement. Les écrans ci-dessous reprennent les composants existants (onglets de contexte, pilule de filtres, carte à rail, en-tête d'éditeur) : ce qui est nouveau y est signalé.

Page « Mes entraînements » — desktop
◪Mes entraînements ★HBC Vallée ◎Groupes ◈Communauté
◪ Catégories ⌗ Mots-clés ☰ Statuts Saison 2026–2027 🔍Rechercher… ✓ Appliquer ↺ Réinitialiser
Prochaine séance 24nov. Défense du PDB + enchaînementsMAR. 24 NOV. · RÉSEAU D'ÉCHANGE SUR GRAND ESPACE Ouvrir
Prêt U15U18

Défense du PDB + enchaînements

Fixer le vis-à-vis avant la passe, sortir en course.

AttaqueGrand espaceDuel
Saison 2026–2027Réseau d'échange
Situations5
Effectif14 joueuses
Durée1 h 30
Date24 nov.
JRJérôme Roux
Afficher
▷⤓⧉⤴🗑
Brouillon U15

Gardien — duels et tirs de loin

Séance à part, réutilisable toute l'année.

GardienTir
SaisonAucune
Situations2
Effectif—
Durée—
Date—
JRJérôme Roux
Afficher
▷⤓⧉⤴🗑
Terminé U15

Contre-attaque à 3 couloirs

Occuper la largeur dès la récupération du ballon.

Montée de balleTransition
Saison 2026–2027Montée de balle
Situations4
Effectif12 joueuses
Durée1 h 15
Date18 nov.
JRJérôme Roux
Afficher
▷⤓⧉⤴🗑
Terminé U15

Sortie sur base arrière

Le même entraînement sert dans deux saisons — aucune copie.

Défense1-5
2026–2027 · aussi 2025–2026Défense 1-5
Situations6
Effectif16 joueuses
Durée1 h 30
Date6 déc.
JRJérôme Roux
Afficher
▷⤓⧉⤴🗑
+ Nouvel entraînement

Rien n'est déplacé : les onglets de contexte, la pilule de filtres et la carte à rail restent tels quels. La saison ajoute trois choses — un segment « Saison » dans la pilule (actif par défaut sur la saison en cours) ; le rappel de la prochaine séance au-dessus de la grille, qui remplace le recours au tri par date ; et dans le rail de la carte, un encart thème en tête plus la métadonnée Séance à la place de Date. Un entraînement sans saison garde un encart en pointillés et un lien « Rattacher » : il n'est pas signalé comme incomplet. Le segment de filtre propose aussi Toutes les saisons et Sans saison — on ne perd jamais de vue ce qui n'est rattaché à rien, et le bouton flottant Nouvel entraînement continue de créer une séance sans rien demander.

Page « Mes entraînements » et éditeur — mobile
09:41▮▮▮
Mes entraînementsGroupesCommunauté
Prochaine 24nov. Défense du PDBMAR. 24 NOV.
Saison 2026–2027 · Filtres
Prêt U15

Défense du PDB + enchaînements

Fixer le vis-à-vis avant la passe.

AttaqueGrand espace
Saison 2026–2027Réseau d'échange
Situations5
Durée1 h 30
Effectif14
▶ Animer⋮
Brouillon U15

Gardien — duels et tirs de loin

SaisonRattacher
▶ Animer⋮
EntraînementsSaisonsGroupesProfil

La liste garde la carte empilée du mobile (contenu centré, rail dessous, split button Animer). Le rappel de séance passe en tête, les filtres se replient dans une pilule unique qui affiche la saison active.

09:41▮▮▮
Prochaine MAR. 24 NOV.
🗓 mar. 24 nov.1 h 3014 joueusesU15

Défense du PDB + enchaînements

«

Fixer le vis-à-vis avant la passe, sortir en course.

»
EntraînementsSéanceAnimerProfil

Dans l'entraînement, le fil de saison se pose au-dessus de l'en-tête existant et reste collé en haut. La ligne de métadonnées perd la date et commence par le rang de séance.

Dans l'éditeur d'entraînement — desktop
Saison 2026–2027 › Réseau d'échange sur grand espace Prochaine séance MAR. 24 NOV. ‹›
🗓 mar. 24 nov.1 h 3014 joueusesU15Jérôme Roux

Défense du PDB + enchaînements

«

Fixer le vis-à-vis avant la passe, sortir en course.

»

L'en-tête ne bouge pas : mêmes petites capitales espacées, même titre éditable, même objectif entre guillemets orange. Une seule différence — un fil de saison discret au-dessus, sur fond papier : le chemin saison › thème, la date de la séance, et les flèches pour passer à la suivante sans repasser par la liste. La ligne de métadonnées, elle, ne bouge pas : le sélecteur de date y reste, à sa place habituelle.

Sans saison — le chemin par défaut ne change pas
Cet entraînement n'appartient à aucune saison. + Rattacher à une saison
🗓 21 NOV. 20261 h 0010 joueusesU15Jérôme Roux

Gardien — duels et tirs de loin

«

Séance à part, réutilisable toute l'année.

»

La saison est une option, jamais un passage obligé. Le bouton « Nouvel entraînement » reste ce qu'il est — un bouton flottant qui crée directement une séance vide, sans demander ni saison ni thème. Un entraînement créé ainsi vit très bien seul : il garde son sélecteur de date (facultatif), il apparaît dans la liste comme aujourd'hui, il peut être animé, dupliqué, partagé. La barre en pointillés n'est pas un avertissement mais une offre : rattacher quand ça a du sens, et détacher ensuite sans rien perdre. Trois usages restent hors saison par nature : les blocs génériques (échauffements, gammes de gardien), les séances de dépannage, et tout le travail de ceux qui ne veulent simplement pas planifier leur année.

La question des dates — trois règles
01

La date reste sur l'entraînement — on la pose ailleurs

Aucun changement de modèle : l'entraînement garde son champ date, facultatif, exactement comme aujourd'hui. Ce qui change, c'est l'endroit où on le remplit : plus au fond de l'éditeur, mais sur la ligne de l'entraînement dans son thème, là où l'on voit la suite des séances. Un clic, un jour, c'est daté.

02

Dater n'est jamais obligatoire

Un entraînement sans date attend dans son thème avec une invite « + dater », et rien ne le signale comme incomplet. Le rattachement ne demande donc aucune date, même pour 47 entraînements d'un coup : ils rejoignent leur thème, on datera ceux qu'on veut, quand on voudra.

03

Rien à changer côté tri

La liste reste triée par date_seance décroissant, avec ses filtres de plage — même colonne, même index, aucune migration. Dans la saison, le raccourci vers ce qu'on doit faire n'est plus une date à chercher mais un état : la prochaine séance, c'est-à-dire le prochain entraînement daté non fait, mis en avant en haut de l'écran.

Dater une séance

Pas de réglage préalable, pas de calendrier à configurer : la date se pose là où on la lit, sur la ligne de l'entraînement dans son thème. Un clic sur la date ouvre le calendrier, un clic sur un jour et c'est daté.

Entraînements du thème · Réseau d'échange
Travail réseau GE — écartementmar. 10 nov.Faite
Défense du PDB + enchaînementsmar. 24 nov.Prochaine
Plateau — mise en situationsam. 28 nov.
‹Novembre 2026›
LMMJVSD 2627282930311 2345678 9101112131415 16171819202122 23242526272829 30123456
Mardi 24 novembre 2026retirer la date
Étagement — situation 3c3+ dater

C'est le même sélecteur de date que dans l'éditeur d'entraînement (AppCalendar), simplement remonté d'un cran : au lieu d'ouvrir la séance pour la dater, on la date depuis la liste où l'on voit déjà tout le thème. Trois choses en découlent, et il n'y en a pas d'autres.
— Dater reste facultatif. « + dater » est une invite, pas une obligation : un entraînement sans date attend dans son thème, et rien ne le signale comme incomplet.
— Deux séances la même semaine, trois, ou une seule : la question ne se pose plus. On date ce qu'on veut, quand on veut, y compris un dimanche de plateau — il n'y a aucune règle de récurrence à respecter ou à contourner.
— Les jours déjà pris apparaissent dans le calendrier (ici les 10 et 24, en vert) : on voit d'un coup d'œil ce qui est occupé sans quitter la liste. Les vacances marquées sur la trame y sont grisées de la même façon.

Aujourd'hui
  • Une date de séance à remplir sur chaque entraînement, souvent fausse ou vide
  • Elle sert surtout à trier (date_seance décroissant) pour retrouver son travail en cours
  • Un entraînement réutilisé oblige à choisir : garder l'ancienne date ou dupliquer
  • Rien n'indique dans l'entraînement à quoi il sert dans l'année
Avec les saisons
  • La date se pose d'un clic depuis le thème, sur la ligne de l'entraînement — plus au fond de l'éditeur
  • Même tri, même colonne, aucune migration : date_seance ne change pas de rôle
  • Un entraînement peut être rattaché plusieurs fois, sans copie
  • Le rail de la carte et le fil de l'éditeur disent saison › thème › date
Migration — il n'y en a pas. La colonne date_seance garde son rôle, son index, son tri et ses filtres. Les entraînements existants restent datés comme ils le sont ; ceux qui n'ont pas de date affichent « + dater » une fois rangés dans un thème. Le seul ajout au modèle est le lien entre un entraînement et un thème — le reste du fonctionnement actuel est intact.

Et « modifié récemment » ? Ce tri serait plus juste que la date pour retrouver son travail en cours, mais il n'est pas gratuit : dateModification vit dans le JSONB donnees, sans colonne ni index. Il demande une petite migration (colonne modifie_le timestamptz + index) et reste une question indépendante des saisons.
Astuce : la touche T bascule clair / nuit.