Avec Formidable : créer un formulaire d’inscription basé sur le numéro de licence FFE

Le besoin

Lors du Comité Départemental des Echecs de la Haute-Garonne de septembre nous avons discuté de la reconduction du formulaire d’inscription utilisé l’année passée, et s’il fallait l’améliorer.

Tout le monde reconnaissant l’intérêt de ce formulaire deux points de vue sont ressortis :
 ceux qui disaient qu’il y avait des choses "inutiles" demandées qui obligeaient à prendre du (trop de) temps pour saisir les données demandées
 l’arbitre qui a besoin des données le plus précises possibles pour ne pas perdre de temps, notamment à remettre les jeunes dans le tournoi de la bonne catégorie...

L’idéal serait donc de pouvoir récupérer les informations du numéro de licence, puis une fois ces données affichées proposer le reste du formulaire.

La solution et son utilisation

Sans rentrer d’abord dans le détail technique on a besoin des plugins formidable et Data FFE et leurs dépendances.

Une fois ces plugins installés on pourra créer un formulaire en important l’exemple inclus dans le plugin Data FFE : fichier yaml.

formulaire_inscription_licence_ffe.yaml

Pour l’affichage des résultats il est possible d’utiliser le modèle également présent dans le plugin :

inscription_nrffe.html

A noter que maintenant l’affichage des résultats se fait en temps réel (option à cocher dans les traitements de formidable.

Personnalisation des champs

Avec les tests puis la mise en production a personnalisé quelques champs et traitements :

  • champ obligatoire : des données associées au numéro de licence seule le numéro de licence lui-même est un champ obligatoire
  • lecture seule : tous les autres champs associées au numéro de licence sont en lecture seule. Seule façon de garantir la consistance des données.
  • css  : dans utilisation j’ai rajouté la classe licence_ffe sur tous les champs liés à la licence de façon à leur donner une couleur identique
  • rafraichir le cache : une fois saisi les données s’affichent immédiatement, pour cela dans la configuration des traitements cocher la case rafraichir le cache

  • Une fois saisi le formulaire la page se remet à blanc. Pour cela il a fallu cocher "rafraichir la page" et donner l’adresse de la page

La solution, dans le détail

Au départ j’avais posé la question à Placido lors de la SPIP-Party dans la Drôme. Nous étions d’abord parti sur une solution récupérant l’ensemble des licenciés du département dans un fichier json, puis faisant une boucle data sur ce fichier.

A la réflexion je me suis dit que si on récupérait les données des licenciés grâce au plugin Data FFE pourquoi passer par un fichier json intermédiaire et incorporer ce dont on a besoin directement dans le formulaire ?

Après quelques discussions et tâtonnements Placido a proposé une solution intégrée à formidable.

Il s’agissait de renommer les champs input de façon à ce qu’ils correspondent aux champs du webservice FFE et de créer les saisies nécessaires pour que ce soit intégré à formidable.
J’ai d’abord créé un formulaire type avec les champs que je souhaitais récupérer sur le webservice, exporté ce formulaire, puis édité en remplacant les champs input_1 etc... de formidable par des noms de champ correspondant au webservice.

Les différents champs utilisés (champs input renommés avec le nom du champ du webservice FFE) :

  • NrFFE : le numéro de licence
  • Nom : le nom du joueur
  • Prenom : son prénom
  • Cat : sa catégorie
  • AffType : le type de licence (A, B ou N non licencié)
  • Elo : classement du joueur
  • ClubNom : le nom du club

Ensuite Placido a créé un fichier formulaires/inc-saisie-nrffe.html et inclure/inscription_NrFFE.html à appeler dans le modèle...

L’intégration au plugin FFE Data

6 fichiers ont été ajoutés au plugin Data FFE :

  • inclure/inscription_NrFFE.html
  • modeles/inscription_NrFFE.html
  • formulaires/inc-saisie-nrffe.html
  • saisies/nrffe.html
  • saisies/nrffe.yaml
  • et l’exemple intégré dans la page de "configuration" prive\squelettes\inclure\formulaire_inscription_licence_FFE.yaml

Reste à faire

  • Reprendre des essais pour voir s’il est possible de mieux intégrer les saisies de FFE Data au formulaire formidable. Vérifier qu’une saisie intégrée comme NrFFE_1, Nom_1 fonctionnerait... En attendant limport du formulaire de base fonctionne bien.