Whatsnew 2.0

De Wikipfc2i.

V 2.0


La version 2.0 est en cours de finalisation selon la feuille de route suivante

Sommaire

Passage de la base de données en UTF8

Afin de faciliter la traduction ultérieure de la plate-forme dans des langues non latines, la base de données contenant les questions, réponses, les référentiels ... est désormais en encodage UTF8. Il importe donc lors de l'installation que vous définissiez sous phpMyAdmin une base de données avec l'interclassement uft8_general_ci. Encodage utf8.png

Il en est de même pour tous les textes déclarés dans les fichiers de langues de la plate-forme. Les fichiers contenus dans le dossier langues sont en encodage UTF8. En cas de modification par vos soins, veillez à bien utiliser un éditeur de texte capable de lire et de sauvegarder dans ce format (natif sous Linux ou avec Notepad++ sous Windows).

Mise à disposition du code dans le domaine public et nouvelle procédure d'installation

Dans les versions précédentes, le code de la plate-forme était téléchargeable sous forme d'une archive ZIP (contenant le code source et un jeu de questions validées) depuis la plate-forme nationale correspondant au C2I visé. Seul un correspondant C2I disposant d'un compte dûment créé sur cette plate-forme nationale, pouvait effectuer cette opération.

Depuis la version 2.0, le code source a été mis dans le domaine public et est désormais accessible sur la dépôt github de la MINES à l'adresse https://github.com/mines-mesr/pfc2i .

Cette procédure a différents avantages :

  • L'installation de la plate-forme peut se faire par un admin système (DSI) et ce n'est qu'à la première utilisation que le correspondant C2I de l'établissement se chargera de la récupération des questions avec son compte sur la plate-forme nationale.
  • le code source de la plate-forme est strictement le même quelque soit le C2I visé (seuls quelques images et fichiers de langue changent).
  • la mise à jour du code de la plate-forme se fera par une simple commande git.
  • les contributions des établissements au code de la plate-forme sont désormais possibles par le mécanisme des pull-request.
  • en utilisant le mécanisme des branches sous git, il vous sera possible de réaliser des modifications locales au code de votre plate-forme, sans les mettre en péril lors des futures mises à jour.


Si vous ne disposez pas de git sur le serveur qui va héberger votre plate-forme, il reste toujours possible (mais beaucoup moins souple) de télécharger une archive ZIP depuis le dépôt github et d'installer la plate-forme par un simple désarchivage dans votre arborescence Web.

Dans tous les cas, vous disposez alors d'une plate-forme 'vierge de toute question'. Il conviendra à la première utilisation de la synchroniser avec la nationale correspondant au type de C2I visé. Cette opération vous sera automatiquement proposée au premier lancement de votre plate-forme.


Tous les détails sur l'installation sont sur cette page

Mise à jour du code

Tous les détails sur la mise à jour sont sur cette page


Edition 'en ligne ' des libellés des questions et des examens

L'éditeur en ligne décrit ci-dessus est aussi disponible pour éditer rapidement le libellé d'une question ou d'un examen sans passer par l'icone de modification. Double-cliquez simplement sur ce libellé et effectuez vos modifications ; pour valider cliquez en dehors de l'éditeur ; pour annuler appuyez sur la touche Echap.

Une petite zone d'aide au dessus de la liste vous rappellera les options en cours :

  • Edition en cours : Echap. pour annuler ou cliquez ailleurs pour valider (en orange)
  • Modifications enregistrées (en vert)
  • ou rien de changé si l'éditeur n'a détecté aucun changement (les espaces en début et en fin sont ignorés).


Aide editeur inline.png

Possibilité de commenter les réponses aux questions (sur les PF nationales)

Afin de faciliter la tâche des experts validateurs, il est désormais possible sur une plate-forme nationale uniquement, de commenter les différentes réponses aux questions : Commenter questions.png

Cette option n'est évidemment disponible que pour les questions en cours de validation, pour les utilisateurs ayant le droit de modifier ou de valider les dites questions.

Les commentaires proposés apparaissent en dessous de chaque réponse :

Commenter questions fiche.png

Cette option peut être globalement désactivée par un administrateur en mettant à 0 l'item de configuration avancée utiliser_commentaires_reponses.

Mise en place d'un mode maintenance

Afin d'éviter que des utilisateurs ne se connectent durant une opération de maintenance de la plate-forme (mise à jour du code, synchronisation des questions...) ou tout simplement pour en interdire l'accès durant une certaine période, il vous est possible de placer la plate-forme en mode maintenance. Dans ce mode, seuls les utilisateurs ayant un rôle d’administrateur peuvent s'y connecter. Les autres (y compris pour les passage d'examens anonymes) seront salués par l'écran suivant :

Ecran maintenance etudiant.png

Pour activer le mode maintenance, cliquez sur le lien Activer le mode maintenance de la plate-forme dans la rubrique Configuration avancée de l'écran de Configuration  :

Mode maintenance on.png

Vous aurez la possibilité d'éditer le message par défaut (avec un éditeur HTML basique) qui sera affiché aux utilisateurs lors de leur tentative de connexion :

Ecran maintenance.png


Pour désactiver le mode maintenance, cliquez sur le lien Désactiver le mode maintenance de la plate-forme dans la rubrique Configuration avancée de l'écran de Configuration  :

Mode maintenance off.png

Une confirmation vous sera demandée :

Ecran maintenance off.png


Ajout de nouvelles options de configuration avancées

La plate-forme s'est enrichie d'une dizaine de nouvelles options. Pour une liste détaillée voyez cette page .

Archivage en une opération de plusieurs examens

L'archivage d'un examen a été introduit à la version 1.5 pour produire une archive zip contenant le sujet de l'examen, le corrigé et l'ensemble des résultats au format Open Document et CSV. Cette option étant disponible dans l'onglet Résultats de la fiche de l'examen, il pouvait être fastidieux de le faire un examen à la fois. Il est désormais possible, pour un utilisateur ayant le rôle administrateur, d'archiver tous les examens (ou une sélection) d'une plate-forme.

Cette nouvelle option apparaît dans le menu Tracking de l'écran de configuration :


Archiver examens menu.png


Par défaut, tous les examens de votre établissement ayant des résultats vous sont présentés et sont sélectionnés :


Archiver examens form.png


Au bout de quelques instants (ou minutes si vous avez de nombreux examens), vous recevrez l'écran de résultats ci-dessous avec un lien pour télécharger l'archive zip produite. Cette archive est nommée selon le type de plate-forme et un horodatage (annee_mois_jour_heure) :


Archiver examens final.png


Elle contient une archive zip par examen sélectionné :


Archiver examens zip global.png


Chacune d'entre elles contient les données relatives à un examen :


Archiver examens zip un.png


Dans le cas ou l'examen est un pool, la structure de l'archive est un peu plus complexe, puisque chaque membre du pool contient un jeu de questions différentes ; on aura donc un fichier global pour les inscrits, les absents et les résultats synthétiques (par domaine) et un fichier par membre pour le sujet, le corrigé et les résultats détaillés (par question) :


Archive examen pool.png

Implémentation d'un mécanisme d’évènements (pour les développeurs)

De nombreuses demandes ont été formulées auprès de l'équipe de développement pour faire effectuer à la plate-forme des opérations supplémentaires (et variées selon l'établissement) lors d'une action (ajout, suppression, modification, passage ...) sur un élément comme un compte, un examen ou une question. Typiquement l'envoi d'un email lors du passage d'un examen ou de la validation d'une question.

A ce jour 50 évènements sont enregistrés sur une plate-forme fraîchement installée ; ils sont décrits dans la table c2ievents qui contient le nom de l’évènement (objet concerné et action) le nom du script et de la fonction PHP appelée (nommée systématiquement evt_objet_action comme evt_qcm_passage ou evt_examen_suppression) . Le contenu de cette table est donnée dans cette page

Les 50 fonctions PHP appelées ne font pour l'instant qu'enregistrer l’évènement dans un fichier de log nommé events.log dans le dossier des ressources de votre plate-forme (si l'option de configuration avancée debug_events est activée).

Pour faire effectuer des actions supplémentaires lors d'un évènement, il vous suffit (dans une branche GIT locale) de compléter la fonction correspondante en utilisant l'API de programmation de la plate-forme. Notez que les fonctions de traitement reçoivent en paramètres :

  • les données spécifiques à l'action comme un objet PHP qui contient tous les détails donc vous pourriez avoir besoin pour le traiter ; pour connaitre la structure de cet objet, activez l'option de configuration avancée debug_events et consultez le contenu du fichier events.log dans le dossier des ressources de votre plate-forme.


Les fonctions de traitement des évènements doivent renvoyer la valeur TRUE en cas de succès et FALSE sinon.

Il est aussi possible d'ajouter des évènements en complétant cette table et en ajoutant vos propres fonctions de traitement au script codes/locale/local_events.php . Deux exemples sont fournis pour les évènements examen/verrouillage et examen/deverouillage.

Mise en place d'actions programmées avec un cron (pour les développeurs)

A partir de la version 2, la plate-forme contient un fichier cron.php, situé dans le dossier admin, qui peut être utilisé pour effectuer des taches répétitives, par exemple chaque nuit à l'aide du mécanisme de cron du serveur hébergeant la plate-forme.


Pour l'activer il vous suffit d'ajouter dans le fichier /etc/crontab du serveur une ligne similaire à celle-ci :

10 3 * * * root nice wget http://votreplateforme.fr/c2ixxx/admin/cron.php >>/var/log/c2ixxx_cron.log

Ainsi, dans cet exemple , ce script sera appelé chaque nuit à 3h10 et déposera à la suite du fichier de log c2ixxx_cron.log une trace de ses actions. A ce jour ce script ne réalise aucune action. Des exemples de ce qu'il pourrait faire sont disponibles dans le script commun/lib_cron.php (purger les comptes non inscrits à un examen, purger les comptes qui ne sont plus dans l'annuaire LDAP ...).

Voici un exemple des lignes ajoutées au fichier de log ; notez qu'un fichier codes/locale/cron.php a été detecté (quoique vide) et a été traité :

Server Time: Wed, 09 Jul 2014 19:04:30 +0200

Starting processing the event queue...
done.
Running clean-up tasks...
Finished clean-up tasks...
Processing customized cron script ...
début cron local
fin cron local
done.
Cron script completed correctly
Execution took 0.060288 seconds


Si vous ne souhaitez pas modifier le code de la plate-forme il vous est possible de créer le fichier codes/locale/cron.php contenant des actions supplémentaires que vous voudriez voir réaliser.

Outils personnels