Table of Contents |
---|
Spécifications du module CEPIA-LMS
Le module est constitué d'un composant PHP5 pour Moodle (1.9.5+) et d'un composant Java/J2EE, l'ensemble assurant l'interfacage et l'interopérabilité entre Moodle et ORI-OAI.
Ce module utilise les techniques Java utilisées dans ORI-OAI telles que Spring, Hibernate, XFire. Il implémente les actions décrites plus haut, qui sont disponibles en ligne de commandes ou en appel distant via le MVC Spring.
Voici un tableau des actions et de leurs contraintes et incidences :
Action | Conditions | Description | Etats requis | Type requis | Redirection |
Générer la fiche LOM | 1+2 | Génère la fiche LOM dans CEPIA/ORI-OAI | Aucun | Cours/Section/ressource | si *.redirect=true ou rechargement |
Action du Workflow | 3 | Effectue une action du Workflow ORI-OAI | private,pending,public | Cours/Section/ressource | Rechargement page courante/sous-partie ajax |
Voir la fiche publiée | 4 | Affiche la fiche publiée dans le moteur de recherche | public | Cours/Section/ressource | URL vers search |
Conditions :
Numero | Test |
1 | has_capability “moodle/course/update” |
2 | WS getMetadataType(username) contient transfer.batch.metadataType=ressource_pedago |
3 | WS getAvailableActions(idp, lang) |
4 | WS getCurrentStates(idp, lang) |
Voir la fiche publiée :
Calcul de l'identifiant de la fiche à partir de la proprité du Workflow :
WORKFLOW_LOCAL_APPLICATION_PREFIX=cepia:inpt:repository
A ce préfixe s'ajoute un identifiant interne qui correspond à l'ID de la fiche (wfInstanceId) moins un, ex. :
Pour un wfInstanceId de 6, on a l'identifiant : cepia:inpt:repository-5
Mises à jour
Une mise à jour de fiche depuis Moodle via cepia-lms s'entend uniquement en terme de relations ajoutées ou enlevées : c'est une mise à jour des relations uniquement.
En effet, une fois la fiche générée dans ORI-OAI-workflow, ORI-OAI-md-editor prend la main pour la gestion des métadonnées. Chaque fois qu'une mise à jour de fiche est faite depuis Moodle, les relations de la fiches LOM et uniquement elles sont mises à jour.
Régles de mise à jour des relations :
- On ne créé les relations que vers les fiches publiées.
- La mise à jour des relations haspart niveau Cours implique la mise à jours des relations ispartof au niveau des sections et reciproquement
- La mise à jour des relations haspart niveau Section implique la mise à jours des relations ispartof au niveau des ressources et reciproquement
Tableau des dépendances de mise à jour des relations :
Type | Cours | Section | Ressource |
Cours | - | X | - |
Section | X | - | X |
Ressource | - | X | - |
Tableau des cas de mise à jour des relations
Cas | Action | Déclencheur | Fiche Cours | Fiches Section | Fiches Ressources |
Création fiche cours | Bloc Cepia : créer la fiche du cours | auto | - | MAJ si course.autoindex | - |
Création fiche cours et sections | Bloc Cepia : créer les fiches du cours et sections | auto | MAJ si section.autoindex | MAJ auto si course.autoindex | MAJ si section.autoindex et ressource publiée |
Création fiche section | Bouton Cepia de la section | auto | MAJ si section.autoindex et cours publié | - | MAJ si section.autoindex et ressource publiée |
Création fiche ressource | Bouton Cepia de la ressource | auto | - | MAJ si ressource.autoindex et section publiée | - |
Publication cours | Workflow publier | Bloc Cepia : mettre à jour les relations du cours | - | MAJ si section publiée | - |
Publication section | Workflow publier | Bloc Cepia : mettre à jour les relations du cours | MAJ si cours publié | - | MAJ si ressource publiée |
Publication ressource | Workflow publier | Bloc Cepia : mettre à jour les relations du cours | - | MAJ auto si section publiée | - |
La maj des relations est donc dépendantes du droit de publication/dépublication. Toutefois, comme ces relations ne sont mises à jour que dans le cas des fiches publiées, ce qui a necessité l'action d'un utilisateur autorisé, un compte admin est utilisé pour les effectuer, et non le compte initiateur de la mise à jour manuelle ou automatique (colonne “Déclencheur” dans le tableau plus haut).
Dans le cas des autopublications de cours et de section, les boutons mise à jour de relations des sections n'apparraissent pas.
Contrôleur
Un controlleur d'action multiples répond aux différentes actions passées en paramètre dans les requêtes :
ActionsController
Action | Paramètres | Commande | Description | Implementation/evolution |
getTimeModified | moodleId, type | UtilsCommand | Renvoie la date de création ou de modification de la fiche, null si pas de fiche | Ok |
getButtons | moodleId, type, username,backUrl,divId | UtilsCommand, | Renvoie une vue “boutons” des actions sur la section/ressource | ressource Ok, section en cours |
createMD | resourceId,username | ORICreateMDCommand | Créé la fiche | Ok |
performAction | typeId,type,username,backUrl | ORIPreformActionCommand | Effectue une action disponible pour l'utilisateur | Ok |
updateCourse | courseID,backUrl | ORILOMCourseUpdateCommand | Obsolescent - Créé les fiches pour cours et section (properties autoindex) | renommer ORICreateCourseSectionCommand |
updateRelations | typeId,type,backUrl | ORIUpdateMDCommand | Mettre à jour les MD (relations, selon properties autoindex) | En cours… |
exportFile | typeId, type,username | ORIViewFileCommand | export les fichiers ressource attachés | En cours… |
Vues attachées au controleur
Le fichier cepia-lms-servlet.xml définit la liaison entre le contrôleur et les vue JSP utilisées :
Code Block |
---|
<bean id="paramMultiController" class="org.springframework.web.servlet.mvc.multiaction.MultiActionController"> <property name="methodNameResolver"> <bean class="org.springframework.web.servlet.mvc.multiaction.ParameterMethodNameResolver"> <property name="paramName" value="action" /> </bean> </property> <property name="delegate"> <bean> <property name="xmlRecordBuilder" ref="xmlRecordBuilder" /> <property name="resourceMapper" ref="resourceMapper" /> <property name="transferService" ref="transferService" /> <property name="lmsService" ref="moodleService" /> <property name="privateFileTransferService" ref="privateFileTransferService" /> <property name="publicFileTransferService" ref="publicFileTransferService" /> <property name="redirectService" ref="redirectService" /> <property name="observation" value="${worfklow.action.message}" /> <property name="metadataType" value="${transfer.batch.metadataType}" /> </bean> </property> </bean> <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> <property name="viewClass" value="org.springframework.web.servlet.view.JstlView" /> <property name="prefix" value="/WEB-INF/stylesheets/" /> <property name="suffix" value=".jsp" /> </bean> |
Les vues
- buttons.jsp : les boutons des actions disponibles pour une ressource
- courseBlock.jsp : les boutons des actions au niveau du bloc Moodle (cours)
- errors.jsp : affichage d'un message en cas d'erreur
- record-list.jsp : affichage de la liste des fiches générées depuis Moodle.
Paramétrage du Workflow cepia_lom_easy
Certains paramètres du workflow sont modifiés par rapport au workflow d'origine "lom_easy" du module ORI-OAI.
- Les contraintes de publication définies par le schematron
- La transition d'état depuis l'état publié vers l'état pending par l'action "rendre privé" et le non-ajout de LOME_USE_CREATE_FORM dans les post fonctions.
Utilisation de vocabulaires VDEX via le module ORI-OAI-VOCABULARY
Taxonomies pour classification automatique
Deux vocabulaires sont utilisés pour attribuer automatiquement un code Dewey aux fiches générés depuis Moodle et naviguer dans la thématique de l'établissement dans le moteur de recherche :
- le premier représente la structure thématique complète : catégories de cours et cours (voir l'exemple livré avec l'application, properties/xml/vdex/inpt_taxonomie_full.xml
- le deuxième ne comporte que les catégories de cours associées à tous les codes Dewey qu'elles contiennent (voir properties/xml/vdex/inpt_taxonomie.xml).
Une feuille de transformation XSL permet de générer la deuxième à partir de la première( properties/xml/xsl/full2notfull.xsl).
Modifications du vocabulaire contenant la liste des catalogues pour le champ LOM:CATALOG
Le vocabulaire common_lom_gen_catalogs.xml est augmentés de trois entréés correspondant aux trois niveaux de fiches générées par CEPIA-LMS :
- Les fiches cours sont affectées au catalogue défini par la propriété lom.gen.course.catalog
- Les fiches sections sont affectées au catalogue défini par la propriété lom.gen.course.section
- Les fiches ressources sont affectés au catalogue définit par la propriété lom.gen.catalog
Ces propriétés sont définies dans le fichier properties/transfer.properties.
Heritages des donnés du Workflow
Les auteurs et les codes Dewey doivent être hérités de la fiche cours si elle existe, et générés au cas échéant.
Les informations de type learning également.
Pour les descriptions, la concaténation des niveaux cours et sections dans la fiche ressource doit également provenir des fiches ORI si elles existent.
Modifications du workflow lom-easy en cepia_lom_easy
Des modification au workflow LOM_EASY sont apportées dans sa forme dérivée CEPIA_LOM_EASY.
Spécifications du bloc CEPIA-lms pour Moodle
Le bloc Cepia est constitué d'un bloc au sens Moodle du terme, c'est-à-dire un module enfichable sur une installation standard de Moodle (version 1.9.5+).
Affichage du bloc CEPIA
Ce bloc offre les actions suivantes (V1) :
- Générer les fiches du cours :
Cette action va générer une fiche pour le cours courant ainsi que pour chacune de ses sections, à partir des métadonnées de Moodle (titre, description, auteurs), et pré-remplir automatiquement certaines métadonnés (voir les fonctionnalités décrites sur la page principale du module). Les relations sont également créées entre la fiche cours et les fiches sections. Attention, une fois cette action effectuée pour un cours, les métadonnées Moodle ne seront plus utilisées utlérieurement par ORI-OAI. Pour modifier les métadonnées LOM, il faudra passer par ORI-OAI-md-editor.
- Mettre à jour les relations des fiches :
Cette action n'est disponible que si l'action “Générer les fiches du cours” a déjà été effectuée pour ce cours. Elle permet de mettre à jour les relations entre les fiches sections et les fiches resources en fonction de leur état de publication dans ORI-OAI-workflow.
- Editer la fiche du cours :
Cette action ouvre une fenêtre permettant d'editer les métadonnées de la fiche LOM du cours.
Bouton de référencement d'une ressource
Dans la liste des ressources du cours, un bouton supplémentaire permet également de générer et d'editer la fiche de la ressource.
Implémentation
Fichiers :
- moodle/blocks/cepia/block_cepia.php
- moodle/blocks/cepia/config_instance.html
- moodle/blocks/cepia/settings.php
- moodle/course/lib.php (patché pour les boutons)
- moodledata/lang/fr_utf8/block_cepia.php