Skip to content

thomas-saigre/TFJM-generator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

39 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TFJM²

Génération automatiques des badges, affiches et diplômes pour le TFJM².

Requirements

Pour faire tourner les codes, il est nécessaire d'avoir Python, et les packages suivants :

Usage

Toute la configuration se faire dans le fichier config.json, dont voici un exemple :

{
    "csv":
    {
        "participants": "$rootDir/csv/participants.csv",
        "jury": "$rootDir/csv/jury.csv",
        "orga": "$rootDir/csv/orga.csv"
    },
    "template_dir": "$rootDir/template",
    "run":
    {
        "badges": false,
        "salles": false,
        "diplomes": true
    },
    "tournoi":
    {
        "name": "Strasbourg",
        "year": 2025,
        "number": 15,
        "date": "26 - 27 avril 2025"
    }
}

Les champs à remplir avec les fichiers de données au format CSV sont les suivants :

  • csv.participants : chemin vers le fichier CSV contenant la liste des participants, celle qui est obtenue depuis la plateforme inscription.tfjm.org,
  • csv.jury : chemin vers le fichier CSV contenant la liste des jurys. Celle la, il faut peut être que vous la fasisez à la main, le fichier doit contenir au moins les colonnes Nom et Prénom,
  • csv.orga : chemin vers le fichier CSV contenant la liste des organisateurs/bénévoles. Ce fichier aussi devra être fait à la main, il doit contenir au moins les colonnes Nom et Prénom.

La quantité $rootDir est une variable qui sera remplacée par le chemin vers le dossier contenant le script Python main.py. Vous pouvez aussi directement mettre le chemin complet vers le fichier.

Si les fichiers template sont présents dans un autre dossier, vous pouvez changer la valeur de template_dir (par défault, ça ira chercher dans le dossier template).

Pour dire au programme quels fichiers générer, il faut remplir la section run :

  • run.badges : si true, le code va générer les badges pour les participants, jurys et organisateurs,
  • run.salles : si true, le code va générer les affiches pour les salles,
  • run.diplomes : si true, le code va générer les diplômes pour les participants.

Enfin, les informations sur le tournoi sont à remplir dans la section tournoi :

  • tournoi.name : nom du tournoi (ex : Strasbourg),
  • tournoi.year : année du tournoi (ex : 2025),
  • tournoi.number : numéro de l'édition du tournoi (ex : 15), cette quantité sera convertie en ordinal sur le diplôme (ex : 15 -> Quinzième)
  • tournoi.date : date du tournoi (ex : 26 - 27 avril 2025).

Usage

Pour faire tourner le code, il suffit de lancer le script Python main.py :

python3 main.py [-h] [-c CONFIG] [--check-names]

usage: TFJM-generator [-h] [-c CONFIG] [--check-names]

Génère des fichiers utiles pour le TFJM²

options:

  • -h, --help : Affiche l'aide
  • -c CONFIG, --config CONFIG : Chemin vers le fichier JSON de configuration (par défault config.json présent dans le même dossier)
  • --check-names : Vérifie si les prénoms renseignés auraient été inversés avec le nom de famille (cf ci-dessous)

Fichiers générés

Tous les fichiers générés seront placés dans le dossier output, qui sera créé automatiquement si il n'existe pas. Chaque élément généré sera placé dans un sous-dossier, qui sera nommé selon le type de fichier :

  • badges : un code LaTeX qui contient tous les badges pour les participant.es, encadrant.es, jurys et organisateur.ices. Si la page n'est pas complète, elle est automatiquement complétée par des badges vides, qui pourraient servir.
  • diplomes : deux codes LaTeX sont générés, un pour tous les élèves (nominatifs), et un pour chacune des équipes (avec les noms des élèves et des encadrant.es).
  • salles : un code LaTeX qui contient toutes les affiches pour chacune des équipes, à afficher devant les salles.

Personalisation

Il est tout à fait possible de personnalier les fichiers à générer, en modifiant les fichiers de template qui se trouvent dans le dossier template.

Warning

Pour les templates LaTeX, il faut faire attention aux {, } et %, qui sont aussi des caractères utilisés par Python-Liquid pour générer à partir de templates. En particulier, il ne faut par qu'il y ait {% dans le template.

Badges

Il y a deux fichiers qui peuvent être personalisés :

  • tfjm.tdf : ce fichier contient les paramètres du badge, pour changer la tailles de ceux-ci, il faut modifier la ligne ticketSize (les paramètres sont en mm),
  • generation_badges.tex pour modifier le contenu des badges, dans la macro \ticketdefault.

Affiches pour les salles

Le fichier template est salles_equipes.tex. Pour modifier le contenu des affiches, il suffit de modifier le contenu de l'environnement tikzpicture. La macro \team contient le trigramme de l'équipe, et \name le nom complet de l'équipe.

Des affiches spéciales peuvent être générées. Pour cela, il faut ajouter les champs suivant dans le fichier de configuration :

"special":
{
    "poules": ["A", "B", "C"],
    "jury": ["Poule A"],
    "orga": {"CRO": "Comité d'organisation"},
    "special": ["Cérémonies / conférences"]
}
  • Poules : Remplissez la liste des noms des poules.
    • NB : par défaut les chiffres ne marchent pas avec la police blackboard bold (\mathbb), il faudra modifier le fichier TeX pour avoir le résultat que vous voulez.
  • Jury : Replissez la liste des noms de poule. Pour une meilleure personalisation, il faut ici remplir en entier ce qui sera affiché en grand sur l'affiche. Toute commande LaTeX est possible, il faut juste faire attention a bien « échapper » les caractères (mettre \\ pour une contre-oblique par exemple).
  • Orga : Remplissez le dictionnaire sous la forme key, description. La key sera affichée en mode blackboard bold, et la description apparaîtra en dessous (comme un trigramme et le nom d'une équipe). Si il y en a plusieurs, il suffit de mettre plusieurs entrées dans le dictionnaire : "orga": {"CRO": "Comité d'organisation", "Boss": "Bureau personnel des présidents de jury"}
  • Special : Pour les salles supplémentaires nécéssitant une affiche (par exemple salle des cérémonies, conférences, etc...), il suffit d'ajouter des éléments à la liste special.

Diplômes

Il y a trois fichiers de template :

Pour ces trois fichiers, si vous compilez le template directement, ça devrait fonctionner avec les fichiers d'exemple présents dans le dossier.

Suivant le nombre de participant·es, le fichier avec les diplômes individuels peut être assez long à compiler. Au moment des tests, pour que ce soit plus rapide, vous pouvez décommenter la ligne % \dtlbreak, pour ne faire que la première page. Une autre solution est de commenter l'appel à backgroundsetup dans le préambule. Cette commande déssine le cadre et est assez long à générer.

Certains noms d'équipe possèdent des caractères spéciaux qui par défaut pourraient causer des erreurs dans LaTeX (par exemple Les S-π aigles, dont le code LaTeX correspondant serait Les S-$\pi$ aigles). Certains cas de figures sont pris en compte, mais si des caractères manquent, il faudra modifier à la main le contenu du dictionnaire CHAR_CORRESPONDANCE dans le fichier src/utils.py.

Il y a aussi le fichier logos_and_signature.tex qui contient la disposition des logos des partenaires (dans le template, ce sont ceux de Strasbourg).

Tip

Si vous arrivez à trouver des logos au format vectoriel, c'est mieux, il n'y aura pas de soucis de qualité d'impression.

Suivant qui est/sont président/e/s du jury, vous pourrez aussi avoir à modifier le petit texte à la fin de ce fichier.

Bonus

Il arrive souvent qu'en remplissant les champs, une personne puisse inverser son nom et son prénom. Une fonctionnalité a été implémentée pour vérifier ci cela peut être arrivé.

Présicément, en ajouant l'option --check-names au lancement du script Python, tous les prénoms (des participant·es, juré·es et membres du CRO) seront comparés à une base de données qui contient tous les prénoms qui ont été déclarés au moins 5 fois à l'État Civil de Paris entre 2004 et 2023. Il est donc possible que certains prénoms n'y apparaîssent pas 🙂.

About

Génération des badges, diplômes et affiches pour le TFJM²

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors