Proposition initiale de l'équipe ROF (le 12 septembre 2013)
L'équipe de projet ROF souhaite que pour une même formation, le générateur diffuse des valeurs différentes pour :
- l'année,
- la langue,
- l'objectif (pres, réseau d'écoles...),
- le média (smartphone, desktop, tablette, papier),
- l'état (définitif, provisoire )
Pour gérer cet ensemble de fichiers pour une même formation, l'équipe ROF propose soit :
- d'organiser les fichiers CDM dans des dossiers hiérarchisés définis par un ensemble de règles
- de définir une règle de nommage des fichiers
Tout d'abord, est-ce que l'équipe ROF accepte de séparer objectif et média comme c'est indiqué plus haut ou s'agit-il d'une erreur de compréhension de la part du rédacteur ?
Début d'élaboration du cahier des charges Uniform pour supporter les évolutions
La notion de facette
L'équipe uniform utilise le nom "facette" d'une formation pour identifier un des documents XML généré par ROF en utilisant un semble de valeurs pour chacun des paramètres cités ci-dessus.
Uniform aurait aussi une facette par défaut définit dans un fichier de configuration.
Il s'agit d'abord de déterminer si uniform n'affiche qu'une seule facette à la fois. Si oui, il n'y aurait qu'une seule facette active par session. Uniform pourrait permettre de basculer d'une facette à une autre au cours de sa session pour :
- Changer de langue (les constantes des écrans et les contenus de la formation s'ajustent sur la langue choisie),
- éventuellement changer d'année,
- éventuellement d'objectif.
Importation et organisation hiérarchiques des facettes
Uniform balayera, lors de l'import global, toute l’arborescence pour en importer les fichiers qu'il y trouve. Dans le fichier de configuration d'uniform, une expression régulière définira les valeurs possibles pour le "path" d'un fichier importé depuis ROF. Si le "path" d'un fichier ou d'un dossier ne correspond pas alors l'import n'a pas lieu.
L'arborescence pourrait être :
- etat,
- annee,
- langue,
- media,
- objectif.
Nous pourrions imposer un nommage du type /etat-{valEtat}/annee-{valAnnee}/langue-{valLangue}/media-{valMedia}/objectif-{valObjectif} ou plus simple : /{valEtat}/{valAnnee}/{valLangue}/{valMedia}/{valObjectif}
Si le second cas est retenu, alors l'arborescence est imposée. Dans le premier cas, Uniform pourra s'adapter à des variantes même si la réalisation sera plus compliquée que dans le premier cas.
Note : { et } ne sont pas inclus dans le path.
Uniform pourrait valoriser la facette de cette façon : {valEtat}-{valAnnee}-{valLangue}-{valMedia}-{valObjectif}
La configuration d'un serveur uniform brouillon pourrait être /etat-brouillon/annee-.*/langue-.*/media-.*/objectif-.* ou plus simplement : /brouillon/.*/.*/.*/.*
Uniform fera la transposition suivante par rapport au fonctionnement actuel : un codAnu deviendra une facette. Ainsi les mécanismes internes d'uniform sont préservés.
Pour chaque facette, il y a aura des index de recherche distincts.
Prise en compte "automatique" des media
A la connexion du navigateur et uniquement lors d'une ouverture de session, uniform utilise le "user-agent" pour rediriger le navigateur vers la facette et éventuellement aussi le site si une instance d'uniform existe pour le média détecté.
Il est fort probable qu'il y aura une instance d'uniform pour prendre en charge chaque état : en fait un serveur pour le "définitif" et un autre pour le "provisoire".
L'utilisateur peut choisir une facette
Si l'on veut permettre à l'utilisateur de sélectionner une facette, il faudra en définir les libellés dans le fichiers des "constantes".
Note : à terme ROF pourrait charger ces données ou mettre à disposition toutes ces constantes.
Si au cours d'un changement de facette, une formation n'y est pas trouvée (ou la facette n'existe pas) alors il faut prévoir une règle qui indique à uniform la facette à choisir.
Le document xml d 'une facette inclura la description de cette facette afin de pouvoir indiquer à l'utilisateur quelle est la facette qu'il visualise.
Le multilinguisme
Le support du multilinguisme tel que l'envisage l'amue oblige unform à évoluer de "ISO-8859-1" vers utf-8 ou utf-16
Tâches à réaliser
- Modifier uniform pour utiliser le codage UTF-8 ou UTF-16 (à déterminer)
- Modifier l'import avec codAnu pour l'import des facettes "récursif"
- modification du dépôt oai pour prendre en compte la facette
- utilisation des données de orgunit insérées dans chaque facette au lieu de l'insertion d'une orgunit définie pour chaque instance d'uniform
- prise des user-agents pour rediriger vers le bon média au démarrage d'une session