PronoSPIc — Pronostics Coupe du Monde 2026

Pour tous les amoureux du ballon rond, à l’approche de la Coupe du Monde 2026 aux États-Unis, Canada et Mexique, j’ai créé un widget Grist dédié aux pronostics !

Le principe : pronostiquez les scores des 104 matchs, marquez des points (3 pts pour un score exact, 1 pt pour le bon résultat) et défiez vos collègues, amis ou famille dans un classement en temps réel.

Ce qu’il propose :

  • :stadium: Les 48 équipes avec leurs vrais drapeaux et les 12 groupes officiels

  • :bar_chart: Classements de groupes en temps réel

  • :trophy: Leaderboard avec podium

  • :bullseye: Pronos bonus : vainqueur final et meilleur buteur

  • :locked: Anti-triche : seul l’admin peut saisir les résultats

  • :mobile_phone: Compatible mobile et tablette

  • :crescent_moon: Mode sombre

À installer comme widget personnalisé dans Grist : https://isaytoo.github.io/grist-PronoSPIc/
Les tables sont générées automatiquement dans Grist.

Vous pouvez également l’installer sur votre propre instance Grist : Le lien GitHub du projet : https://github.com/isaytoo/grist-PronoSPIc

la démo : PronoSPIc - Grist

Que le meilleur pronostiqueur gagne ! :trophy:

7 « J'aime »

Bravo pour l’idée et la réalisation !

Est-ce que les paris se bloquent automatiquement au coup d’envoi de chaque match ? Et pour le meilleur buteur, jusqu’à quand peut-on parier ?

bonjour @Enro ,

:alarm_clock: Règles des paris

  • Paris match : ferment 15 min avant le coup d’envoi

  • Bonus (vainqueur + buteur) : ferment avant le 1er match

  • Points : Score exact = 3 pts, Bon résultat = 1 pt

Et pour info : On utilise automatiquement le fuseau horaire du navigateur de l’utilisateur.

Chaque personne voit le match à son heure locale, mais tout le monde regarde le même match au même moment ! :soccer_ball:

1 « J'aime »

J’ai ça dans mes pronostics, je suppose qu’il faut demander aux utilisateurs de se connecter (quand bien même le document est public avec le rôle Editeur) ?

Bonjour @Enro ,

Si c’est sur votre instance Grist, oui soit par mail ou public (éditeur) via le menu Gérer les utilisateurs.

1 « J'aime »

Salut, je pense qu’il y a des erreurs sur l’horaire de ce match et le verrouillage automatique des paris (les captures comparent l’affichage du Grist et de la FIFA) :

Qu’en penses-tu @Isaytoo ?

Bonjour @Enro ,

et merci beaucoup pour le signalement, il était parfaitement justifié !

Le problème : le match Australie–Turquie s’affichait avec un mauvais horaire (et les paris apparaissaient fermés à tort). En réalité le coup d’envoi est bien dans la nuit du samedi 13 au dimanche 14 juin à 6h00 (heure française), soit 21h00 heure locale à Vancouver.

La cause : l’horaire de ce match était enregistré avec une ancienne valeur erronée dans les données du widget, datant d’une première version. Comme cet horaire était déjà passé, le système considérait à tort que le match avait commencé et verrouillait les paris.

La correction : c’est réglé :white_check_mark:. Le widget remet désormais automatiquement les horaires à jour à partir du calendrier officiel (vérifié avec les sources FIFA), et ce pour tous les matchs, sans toucher aux pronostics déjà enregistrés.

Côté toi : il suffit de rafraîchir la page (Ctrl/Cmd + Maj + R). Australie–Turquie doit maintenant afficher 14 juin · 06:00 avec les paris ouverts. Tu peux pronostiquer :+1:

Encore merci, ça aide à fiabiliser l’appli pour tout le monde ! :soccer_ball:

1 « J'aime »

Génial, merci beaucoup pour le correctif !

Suite à vos retours, le widget de pronos a reçu plusieurs améliorations.
Pensez à rafraîchir la page pour en profiter !

:date: Filtrer les matchs par date

Dans l’onglet Matchs, en plus des filtres par phase et par groupe, vous avez maintenant :

  • un raccourci :high_voltage: Aujourd’hui pour voir d’un clic les matchs du jour,

  • un menu déroulant de dates (les journées déjà jouées sont grisées et cochées ✓, pour repérer ce qui reste),

  • les matchs sont triés dans l’ordre chronologique réel,

  • un petit compteur indique combien de matchs sont affichés.

:bar_chart: Mes Stats plus claires

Dans Mes Stats, vous pouvez filtrer vos pronos par résultat :
Exacts ✓, Bons résultats, Manqués, En attente. Chaque filtre affiche son nombre. Pratique pour voir en un coup d’œil où vous brillez (ou pas :grinning_face_with_smiling_eyes:).

:magnifying_glass_tilted_left: Rechercher un joueur au Classement

Un champ de recherche a été ajouté en haut du Classement : tapez un nom pour retrouver instantanément un joueur, sans perdre sa vraie position au classement.

:bug: Corrections

  • Un bug qui pouvait enregistrer deux fois le même prono est corrigé (et les anciens doublons sont nettoyés automatiquement).

  • Plus besoin d’actualiser : vos stats s’affichent directement au chargement.

Merci pour la mise à jour ! J’ai supprimé les pages (sans supprimer les données source) autres que PronoSPIc (car j’avais l’impression qu’elles permettent de modifier ses pronos même verrouillés) et depuis, il se crée plein de pages et de tables Prono_Bonus1, Prono_Bonus2 etc. Sais-tu comment éviter cela ?

Bonjour @Enro

C’est corrigé :white_check_mark: Ce qui se passait : en supprimant les pages (et les données pour certaines), la table Prono_Bonus était supprimée.
Au rechargement, le widget la recrée automatiquement, mais comme Grist gardait une trace, il créait Prono_Bonus2, Prono_Bonus3et une nouvelle page à chaque fois. D’où la prolifération.

J’ai déployé une mise à jour qui :

  1. empêche cette recréation en boucle (le widget reconnaît désormais les tables déjà présentes, même renommées),

  2. nettoie automatiquement les tables/pages en double (vides) à l’ouverture.

Ce qu’il te reste à faire :

  • Recharge le widget (Ctrl/Cmd + Maj + R) → le ménage se fait tout seul. S’il reste des Prono_Bonus2… vides, tu peux les supprimer à la main sans risque.

Petit conseil : plutôt que de supprimer les pages des tables Prono_* (le widget en a besoin et les recrée), il vaut mieux les laisser mais ne pas y toucher. La règle « pronostics verrouillés » est gérée par le widget lui-même : tu n’as pas besoin de supprimer les pages pour ça. :slightly_smiling_face:

1 « J'aime »