26 Nov 2010

Plugin "Inscription Conférence"

Category: BlogFlorence @ 12:31

But

Ce plugin (compatible SPIP 2.1.2) a pour but de simplifier la gestion des participants à une conférence (plutôt scientifique). En particulier, il permet de :

  • créer un formulaire d’inscription
  • préparer la facture pour un paiement en ligne
  • gérer les sessions de la conférence
  • gérer les événements sociaux
  • gérer les contributions soumises par les participants
  • gérer les paiements effectués
  • créer les formulaires pour l’évaluation des contributions par les membres du comité scientifique (SOC)
  • publier sur le site les soumissions acceptées
  • créer un emploi du temps avec les horaires des présentations
  • faire le “booklet” des présentations en LaTeX

Note : ce plugin a été écrit en partant du plugin inscription2. Il reste pas mal de code provenant de ce plugin dont je ne me sers pas. À nettoyer par endroits…

Plugins nécessaires

  • CFG
  • Forms & table (uniquement pour la notation des soumissions; facultatif)
  • Accès restreint (uniquement pour la notation des soumissions; facultatif)
  • Agenda (uniquement pour générer l’emploi du temps ; facultatif)

Fonctionnement

Tout comme le plugin inscription2 dont il est issu, il effectue l’inscription des participants à la conférence en créant des visiteurs du site SPIP. Il utilise la table spip_auteurs_elargis (qui n’est pas créée si elle existe déjà) pour stocker les informations personnelles des visiteurs.

Configuration

Le plugin se configure via CFG. Les renseignements à fournir sont :

  • Les types d’abstract : permet au visiteur de choisir s’il préfère proposer son abstract en tant que présentation orale, poster, etc… On peut créer autant de types que voulu. Si un type s’appelle “Invited”, il ne sera pas proposé comme choix.
    • Amélioration : ajouter une case à cocher pour ne pas proposer un ou plusieurs types, et non Invited seulement.
  • Les sessions : permet au visiteur de choisir la session dans laquelle il souhaite participer. Cela permet de faire un premier tri dans les papiers soumis. On peut créer autant de sessions que voulu.
  • Les moyens de paiement : liste des moyens de paiement accepté par la conférence. On peut créer autant de moyens de paiement que voulu. Valeurs particulières :
    • Invited : non sélectionnable par le visiteur, mais possible pour les administrateurs du site. Permet de ne pas faire payer les frais d’inscription à un participant.
    • Not coming : non sélectionnable par le visiteur, mais possible pour les administrateurs du site. Permet de ne plus compter un inscrit, sans pour autant supprimer ce visiteur. Utile si la personne a soumis un papier et ne peut plus assister à la conférence.
    • Amélioration : ajouter une case à cocher pour créer un moyen de paiement sans le proposer au visiteur.
  • Les tarifs de la conférence : 4 tarifs sont proposés :
    • Tarif normal
    • Tarif étudiant
    • Tarif normal après la date limite (late registration)
    • Tarif étudiant après la date limite (late registration)
  • Informations diverses.
    • Date du passage en late registration : passé cette date, les factures appliqueront le tarif late registration pour ceux qui n’ont pas encore payé.
    • Date limite de soumission des abstracts : passé cette date, le formulaire d’inscription ne permet plus de soumettre un abstract.
    • Pages d’instructions : URL à utiliser dans le formulaire pour renseigner les visiteurs
    • Formulaire de confirmation :  URL envoyée par email aux visiteurs qui se sont inscrits par le formulaire. Cette page leur permettra de choisir un mot de passe. Une fois ce mot de passe choisi, leur statut est passé de “à confirmer” à “visiteur”.
  • Événements : liste des événements organisés en marge de la conférence, et nécessitant une inscription préalable. On peut créer autant de moyens d’événements que voulu. Pour chacun, il faut donner le nom, le tarif pour les inscrits, le tarif pour les accompagnants, et le nombre maximal de participants par inscrit.
    • Amélioration : ajouter un nombre limite de pré-inscriptions. Au-delà de cette limite, les pré-inscription resteraient possibles, mais en indiquant “sous réserve”.
  • Informations personnelles et sur le déroulement de la conférence : informations demandées au participant. 4 cases permettent de personnaliser le formulaire :
    1. “Formulaire” : détermine si le champ est proposé ou non dans le formulaire
    2. “Obligatoire” : déterminer si le champ est rendu obligatoire
    3. “Table” : affiche ce champ dans la table synoptique des visiteurs
    4. “Fiche” : permet la modification de ce champ dans la fiche du visiteur

Gestion des participants

Un onglet “Participants” est créé dans la partie privée, dans la section “Auteurs”. La page en question affiche une table (dont les colonnes sont celles choisies dans le formulaire de configuration) qui liste les participants. Les participations non confirmées ont une icône rouge. Comme le formulaire d’inscription n’a pas de mécanisme de détection des robots, il peut y avoir des fausses inscriptions. Il faut donc régulièrement aller voir cette table pour supprimer ces fausses inscriptions. Cela permet aussi de relancer ceux qui n’auraient pas reçu le mail de confirmation (mail tombé dans la boîte à spams par exemple).

Lors de l’activation du plugin, chaque auteur de la table spip_auteurs est ajouté dans la table spip_auteur_elargis. Par la suite, lors de l’ajout d’un auteur, il est également inséré dans cette table.

Lors de la validation du formulaire d’inscription par un visiteur, ce dernier est créé dans les 2 tables, avec le statut “à confirmer”. Ce statut est mis à “visiteur” lorsque la personne confirme son inscription et fournit un mot de passe. Il est possible de changer à la main le statut d’une personne qui n’aurait pas confirmé, via la fiche individuelle.

Sur la fiche individuelle de chaque auteur ou visiteur du site, il y a en plus la catégorie “Inscription conférence”, avec un lien “Informations supplémentaires” qui permet de modifier les informations entrées par le visiteur. Pour les auteurs qui auraient été créés par le moyen habituel de SPIP, et non via le formulaire d’inscription, cette fiche est le seul moyen de s’inscrire à la conférence. En effet, l’accès au formulaire d’inscription est conditionné avec une balise #SESSION, qui empêche les personnes identifiées de s’inscrire une 2e fois. Par ailleurs, l’inscription est refusée pour une adresse email qui existe déjà.

On peut aussi accéder aux fiches individuelles des participants via la table synoptique.

Sur la page du tableau synoptique, une table liste le nombre d’inscrits, d’étudiants, de demandes de subvention, et de participants à chaque événement. Un autre table recense le nombre de papiers soumis par session et par type d’abstract.

Utilisation

  1. Configurer le plugin via l’interface CFG.
  2. Créer un article contenant uniquement le modèle <inscription0>. Cet article sera la page qui permettra aux visiteurs de s’inscrire.
  3. Créer un autre article contenant uniquement le modèle <confirmation0>. C’est l’URL de cet article qu’il faut renseigner dans la configuration du plugin. Cet article ne devrait pas être accessible dans la navigation courante du site. D’ailleurs lorsque l’on y accède sans passer par le lien fourni par le mail, un message d’erreur apparaît. Idéalement, il faut modifier vos squelettes pour qu’ils cachent cet article (tout en le laissant accessible).

C’est le minimum vital pour l’utilisation du plugin. Avec ça, les visiteurs s’inscrivent et leurs informations sont stockées dans la base.

Gestion de la facturation

Créer un article contenant le modèle <profil0>. Il affichera le formulaire #LOGIN_PUBLIC si le visiteur n’est pas authentifié, et les informations soumises par le visiteur dans le cas contraire. Ce modèle affiche ainsi le montant de la facture qu’aura à payer le participant.

Un modèle <preparer|paiement> (modeles/preparer_paiement.html) est disponible pour le paiement en ligne. Il doit être surchargé dans le répertoire squelettes du site, car le nom des variables à mettre dépend de l’organisme qui se charge de faire le paiement en ligne. Il faut considérer ce modèle comme un modèle de modèle…

Suivi des inscriptions

Il est utile de pouvoir suivre le nombre d’inscrits, par session, par événement, etc… et de pouvoir leur envoyer un email. Les modèles suivants sont donc disponibles :

  • <liste|events> : affiche la liste des inscrits à chaque événement.
  • <liste|grants> : affiche la liste des demandeurs de subvention.
  • <liste|participants> : affiche la liste des participants.
  • <liste|participants|full> : affiche la liste des participants avec leur affiliation et leur adresse email.
  • <liste|payments> : affiche la liste des participants en fonction de leur mode de paiement.
  • <liste|bonsdecommande> : affiche pour chaque participant la facture qu’il a à payer.
    • Amélioration : créer le PDF pour chaque participant, sans avoir à cliquer sur chacun et d’imprimer la page.

Pour toutes ces listes, les liens affichés sont des “mailto” qui permettent, au choix, de faire un mail généralisé ou de contacter une personne individuellement. Il est fortement conseillé de n’utiliser ces articles que dans une zone réservée au LOC et au SOC, de façon à ne pas divulguer des informations personnelles sur le web.

Un modèle est utilisable de façon publique : <participants|liste>, qui liste les participants, sans leur email, avec leur affiliation. En général, l’article qui contient ce modèle n’est mis en ligne que lorsque le nombre de participants n’est plus ridicule.

Suivi du paiement

Pour chaque paiement reçu, il faut cocher dans la fiche individuelle des participants la case “Paiement effectué”, avec éventuellement la case “Early registration” si le paiement a été reçu avant le passage en “late registration”. Comme ce plugin ne gère pas le paiement en ligne, ces opérations sont à faire à la main.

Évaluation des articles soumis

Lorsque la date de soumission des articles est passée, le SOC doit examiner les papiers soumis, et les classer : invité, présentation orale, poster, refusé… Le mécanisme proposé par le plugin est le suivant.

  1. Créer une rubrique “Contributed abstracts” quelque part dans le site. Amélioration : que le numéro ou le nom de la rubrique en question soit paramétrable dans CFG.
  2. Aller à l’URL ecrire/?exec=bascule_abstract_article pour lancer une première fois le moteur de bascule des abstracts soumis en articles. La page listera les sessions et les papiers soumis par session et par type d’abstracts. Rien n’est créé à ce moment. Il faut recharger la page avec le paramètre debug=0 afin de faire la bascule définitive.
  3. Lors de la bascule définitive, une rubrique est créée pour chaque session de la conférence dans la rubrique “Contributed abstracts”, plus une “Not classified” pour les participants qui n’auraient pas rempli leur souhait.
  4. Dans chacune de ces rubriques, une rubrique par type d’abstract est créée, plus une “Not classified” pour les participants qui n’auraient pas rempli leur souhait.
  5. Chaque papier soumis est rangé dans ces dernières rubriques, avec pour auteur le participant qui l’a soumis.

Il est conseillé d’effectuer cette procédure dans un endroit du site en accès restreint, afin que seul le SOC ait accès à ces articles.

Si vous disposez du plugin Forms & Table, créez un formulaire avec les champs suivants :

  • Evaluation (choix unique) : note que peut attribuer le SOC (Refusé, etc…)
  • id_article (numérique) : numéro de l’article (attribué automatiquement)
  • Alternative session (choix unique) : choix d’une autre session pour les papiers soumis dans une session non appropriée aux yeux du SOC

Ensuite, ajoutez le code suivant dans le squelette de vos articles :

[(#INCLURE{fond=inc/inc-abstract-note}{id_article=#ENV{id_article}}{id_form=1}{id_zone=1})]

où id_form est le numéro du formulaire créé, et id_zone la zone réservée du SOC. Toujours dans le squelette de vos articles, ajoutez le code suivant dans la balise <body> :

onLoad="init_evaluation(#ID_ARTICLE, 1);"

où le 2e paramètre (“1” ici) est le numéro du formulaire créé. Ce code javascript va initialiser le id_article du formulaire à la valeur de l’article courant, et cacher le champ, de façon à ce que le membre du SOC qui évalue l’article n’ait pas à renseigner ce champ, et ne puisse pas le modifier par erreur. Amélioration : faire un formulaire CVT pour se soustraire de la dépendance au plugin Forms & Table. Le formulaire ci-dessous s’affiche alors en fin d’article.

Toujours dans la zone protégée du SOC, on peut alors utiliser le modèle

<abstract|evaluation|id_rubrique=15|id_form=1|id_zone=1|id_supprime=1,173,3,4>

où:

  • id_zone est la zone réservée su SOC;
  • id_supprime est la liste des membres de la zone réservée au SOC qui ne participent pas à l’évaluation des abstracts;
  • id_rubrique est la rubrique “Contributed abstracts”
  • id_form est le numéro du formulaire de notation

Ce modèle va afficher une page résumant pour chaque papier soumis les notes des membres du SOC participant à l’évaluation.

Un autre modèle est disponible pour compter le nombre de papiers soumis par session :

<abstract|stat|id_rubrique=15>

où id_rubrique est la rubrique “Contributed abstracts”.

Publication des articles soumis

Une fois l’évaluation terminée, il faut déplacer à la main les papiers mal classés dans les bonne rubriques. Lorsque le classement est fait, pour publier les articles soumis, il suffit de déplacer la rubrique “Contributed abstracts” dans une zone publique.

Gestion de l’agenda

En associant à chaque présentation orale un événement ayant le même titre (utilisation du plugin Agenda), on peut publier l’agenda de la conférence avec le modèle :

<planning0|id_article=10>

où id_article est le numéro de l’article contenant ce modèle. Les événements associés à l’article contenant ce modèle permettent de programmer les horaires des événements sociaux, des pauses café, des sessions posters… Les événements associés aux autres articles apparaissent comme des liens vers les papiers soumis, et les auteurs sont indiqués. Voir un exemple ci-dessous. Le descriptif des rubriques est utilisé pour indiquer le chairman. TODO : optimiser les continuation plus finement.

Un autre modèle permet de faire le programme des sessions posters.

<poster|sessions>

Le fichier modeles/poster_sessions.html est à copier dans votre répertoire squelettes/modeles, et à adapter selon le nom de vos sessions, et leur numéro de rubrique.  Les horaires des sessions posters sont récupérées via les événements nommés “Poster session”. Amélioration : rendre ça plus automatique.

Étiquettes :

Laisser une réponse

Vous devez vous identifier pour poster un commentaire. Connectez vous maintenant.