Cher @LTB
Quand je t’ai écrit nous étions à la version 5.6.9, mais après mon e‑mail j’ai continué à travailler et nous sommes maintenant à la v5.10.1. Nous avons sauté les versions 5.7.x (mode présentation + impression tableau d’affichage + zone dangereuse code aléatoire), 5.8.x (image partageable pour Instagram/Telegram, pagination des appariements, optimisations BD), 5.9.x (Web Share API, diffusion Bot avec photo à la fin du tournoi, RR num_turni gris, refactorisation bannière news), 5.10.0 (sauvegarde automatique pré‑suppression avec restauration dans les 7 jours). Les releases sont très rapides parce que j’ai eu une journée libre dédiée.
Je te réponds par ordre sur tes points :
═══════════════════════════════════════════════════════════
INSCRIPTION DES RETARDÉS
═══════════════════════════════════════════════════════════
✓ Oui, tout est en v5.6.4 et ensuite verrouillé. Maintenant ajoute une équipe en cours, remplis-la avec la composition via l’UI standard, et à la prochaine génération de tour il entre correctement dans le pairing avec 0 point. J’ai aussi ajouté 10 tests automatiques plus 2 sur les Round Robin (PARTIE D — bloqué pour RR car il a un calendrier fixe). Tous verts sur le tournoi pilote. Je t’encourage à faire un test avec un tournoi de 4-5 équipes, deux tours joués, puis ajoute une équipe « retardée » : elle devrait entrer au troisième tour sans problème.
═══════════════════════════════════════════════════════════
SCROLL DE L’ÉQUIPE
═══════════════════════════════════════════════════════════
✓ Confirmé, c’était une régression. Quand tu cliquais sur une équipe pour l’agrandir, le serveur rechargeait la page avec `&squadra=N` et le scroll revenait en haut — particulièrement pénible avec beaucoup d’équipes. Nous avions effectivement déjà réglé cela par le passé, mais dans l’une des releases intermédiaires sur l’onglet Équipes la correction a été perdue.
═══════════════════════════════════════════════════════════
TÊTE Q EN MODE PRÉSENTATION
═══════════════════════════════════════════════════════════
✓ Bug réel, désolé. J’utilisais `history.back()` qui ne fonctionne pas si la présentation est ouverte dans un nouvel onglet (historique vide → rien se passe à la touche). Maintenant le flux est :
1. Q en plein écran → sort du plein écran
2. Q de nouveau (ou Q sans plein écran) → si je t’ai ouvert la présentation depuis la page du tournoi (referrer same-origin), `history.back()` te ramène là-bas
3. Si tu es arrivé directement à l’URL, redirection vers la page publique du tournoi
Fonctionne dans tous les cas. Même `Esc` a le même comportement.
═══════════════════════════════════════════════════════════
ZONNE DANGEROSITE
═══════════════════════════════════════════════════════════
Tu as bien compris le point : une confirmation qui demande seulement « écris un code/nom » est sautée mentalement quand l’utilisateur part avec l’idée de supprimer. C’est exactement ce qui s’est passé ce matin sur notre tournoi de test.
Pour cela, en plus du code aléatoire à 2 chiffres dans la zone dangereuse (la barrière reste), en v5.10.0 j’ai ajouté une sauvegarde automatique pré‑suppression : avant le DELETE on sauvegarde un JSON avec tout le tournoi (équipes, compositions, formations, tours, parties, remplacements) dans une table conservée 7 jours. Tu trouves tout dans :
Menu utilisateur → « Tournois supprimés »
(ou directement : my.chesspairings.org/tornei_eliminati.php)
D’où tu vois les tournois supprimés récemment, la date d’expiration de la sauvegarde et un bouton « Restaurer » qui recrée le tournoi avec le même ID s’il est libre. Fonctionne pour individuels comme équipes. Un cron quotidien à 04:00 purge les expirés.
Sur ta suggestion du verrouillage : garde‑le en tête, on y reviendra. La sauvegarde automatique couvre 99 % des cas (« oh non j’ai supprimé, je restaure immédiatement »), mais le verrouillage serait un second niveau explicite de protection pour les tournois « importants ». Noté comme prochaine fonctionnalité à évaluer.
═══════════════════════════════════════════════════════════
MÉTHODE DE PRÉSENTATION + IMPRESSION TABLEAU D’AFFICHAGE — toutes les vérifications
═══════════════════════════════════════════════════════════
Quand tu les testes, garde un œil sur :
Mode Présentation (projecteur dans la salle) :
- URL : bouton « Mode présentation » au-dessus des onglets du tournoi, ou directement `presentazione.php?id=X&token=Y` pour individuels / `presentazione_squadre.php?...` pour équipes
- Token public, aucune connexion requise — branche ton laptop au projecteur et c’est parti
- 2 diapositives en rotation : Classement top 10 (15s) → Appariements du tour courant (60s, paginés à 10 tables par page)
- Données live : auto‑rafraîchissement toutes les 30s, rechargement complet quand de nouveaux résultats arrivent ou que le tour change
- Contrôles : Espace = pause/play (badge jaune visible), ← → = navigation manuelle sans pause, F = bascule plein écran, Q/Esc = quitter
Impression tableau d’affichage :
- Bouton « Imprimer le tableau d’affichage » au-dessus des onglets (toujours visible, même pour un tournoi en état inscriptions)
- Génère A4 portrait avec 2 QR Code grands : l’un vers la page publique du tournoi, l’autre générique vers le bot Telegram
- Si le tournoi est privé, le QR du tournoi est remplacé par une notification (pour l’activer il faudrait cocher « Page publique du tournoi » dans les Paramètres)
═══════════════════════════════════════════════════════════
COMBINÉ DE DEMAIN — bonne chance
═══════════════════════════════════════════════════════════
Demain soir, fais-moi savoir comment ça s’est passé. Si pendant le tournoi un bug ou une bizarrerie apparaît, signale‑le mais on pourra y travailler le jour suivant.