diff options
-rw-r--r-- | Documentation/dev/roadmap.rst | 14 | ||||
-rw-r--r-- | Documentation/usage/installation.rst | 38 | ||||
-rw-r--r-- | Documentation/usage/versions.rst | 48 |
3 files changed, 92 insertions, 8 deletions
diff --git a/Documentation/dev/roadmap.rst b/Documentation/dev/roadmap.rst index a7db062..14cad2a 100644 --- a/Documentation/dev/roadmap.rst +++ b/Documentation/dev/roadmap.rst @@ -2,19 +2,19 @@ Feuille de route ================ -Version 0.14 +.. _ref-ver-0.15: + +Version 0.15 ============ - Optimisation des requêtes en utilisant des fonctionnalités spécifiques à PostgreSQL si nécessaire - - Remplacement du moteur de templates de Django par Jinja2_. + - Utilisation de Django 2.1 et de l’aggrégat ``TruncWeek``. + - Amélioration du parseur UPS2018 et de sa documentation. + - Remplacement du moteur de templates de Django par Jinja2_ ? + - Améliorations de certaines pages ? .. _Jinja2: http://jinja.pocoo.org/ Version 1.0 =========== - Paquetage permettant l’installation par ``pip``. - -Futures fonctionnalités -======================= - - Utilisation de l’aggrégat ``TruncWeek`` dès que Django le proposera - (*a priori*, dès la version 2.1). diff --git a/Documentation/usage/installation.rst b/Documentation/usage/installation.rst index 2455996..4dde4f4 100644 --- a/Documentation/usage/installation.rst +++ b/Documentation/usage/installation.rst @@ -9,9 +9,14 @@ suivantes : - `Django 2.0`_ - requests_, pour récupérer les emplois du temps en HTTP(S) - - BeautifulSoup4_, pour parser les emplois du temps en XML + - BeautifulSoup4_ et LXML_, pour parser les emplois du temps en XML - icalendar_, pour générer des fichiers ICS_. +celcatsanitizer requiert Python 3.4 au minimum, et marche avec les +versions 3.5 et 3.6. Les versions antérieures de Python 3 n’ont pas +étés testées, et les versions supérieures devraient fonctionner sans +problèmes. + *A priori*, il est possible d’utiliser n’importe quel SGBD supporté par Django avec celcatsanitizer. Cependant, l’utilisation de PostgreSQL_ est fortement recommandée. Dans ce cas, vous aurez besoin @@ -23,6 +28,7 @@ Pour l’instant, l’installation doit passer par git_. .. _requests: http://docs.python-requests.org/en/master/ .. _BeautifulSoup4: https://www.crummy.com/software/BeautifulSoup/bs4/doc/ +.. _LXML: https://lxml.de/ .. _icalendar: https://icalendar.readthedocs.io/en/latest/ .. _ICS: https://fr.wikipedia.org/wiki/ICalendar .. _PostgreSQL: https://www.postgresql.org/ @@ -170,6 +176,36 @@ Cette étape est **obligatoire**. __ https://docs.djangoproject.com/fr/2.0/ref/contrib/flatpages/#installation +Sélection du parseur +```````````````````` +celcatsanitizer dispose d’un système de parseurs modulaires depuis la +:ref:`version 0.14 <ref-ver-0.14>`, et embarque par défaut deux +parseurs : + + - ``edt.management.parsers.ups2017``, pour le format utilisé par + l’Université Paul Sabatier en 2017. C’est le parseur utilisé par + défaut si aucun autre n’est spécifié. Ce parseur utilise + BeautifulSoup4_. + - ``edt.management.parsers.ups2018``, pour le format utilisé par + l’Université Paul Sabatier en 2018. Ce parseur utilise LXML_ et + exploite l’IO asynchrone de Python. + +Pour spécifier le parseur à utiliser, il faut rajouter une variable +``CS_PARSER``, contenant le parseur à utiliser sous forme de chaîne de +caractères. Pour utiliser le parseur +``edt.management.parsers.ups2018``, il faut donc rajouter cette +ligne : + +.. code:: Python + + CS_PARSERS = "edt.management.parsers.ups2018" + +Pour l’instant, le parseur est global. Il n’est pas encore possible +d’en spécifier un par source d’emploi du temps. + +Vous **devez** vérifier le format des emplois du temps à parser, cette +étape est donc **obligatoire**. + Gestion des fichiers statiques `````````````````````````````` Si vous êtes en production, vous devez renseigner l’emplacement de diff --git a/Documentation/usage/versions.rst b/Documentation/usage/versions.rst index d6b8f00..3b45c59 100644 --- a/Documentation/usage/versions.rst +++ b/Documentation/usage/versions.rst @@ -33,3 +33,51 @@ Changements internes salles. - Ajout de la commande :doc:`reparse <commands/reparse>` - Meilleure abstraction des templates, notamment de ``index.html`` + +.. _ref-ver-0.14: + +Version 0.14 +============ +Changements externes +-------------------- + - Tri des salles par ordre alphabétique dans l’interface + d’administration. + - Les champs de mention, de semestre et de sous-groupe d’un groupe ne + sont plus en lecture seule dans l’interface d’administration. + +Changements internes +-------------------- + - Modularisation du parseur d’emplois du temps. + - Nouveau parseur pour supporter le format utilisé en 2018 par + l’Université Paul Sabatier. + - Correction d’un bogue qui faisait planter le parseur si on + demandait une mise à jour complète alors que la source ne contenait + pas de semaines ; désormais, si une source ne contient pas de + semaines, la date de mise à jour de la source est modifiée, et + aucun cours n’est supprimé ou rajouté. + - Correction du format des semaines dans ``get_week()``. Elles + étaient parsées avec le format de base de Python au lieu du format + ISO-8601. Selon le format de Python, le 1er janvier 2019 fait + partie de la 53ème semaine de l’an 2018, alors que selon ISO, il + fait partie de la 1ère semaine de 2019. Étant donné que d’autres + parties de celcatsanitizer gèrent les dates selon ISO, cela posait + des problèmes de cohérence. + - Support des sous-groupes contenant un chiffre avant le premier + caractère. + - Augmentation du nombre de caractères maximum du nom d’un cours de + 255 à 511 caractères. + +Remarques supplémentaires +------------------------- +Les objectifs originaux de celcatsanitizer consistaient en ceux de la +:ref:`version 0.15 <ref-ver-0.15>`, à savoir : + + - Optimisation des requêtes en utilisant des fonctionnalités + spécifiques à PostgreSQL si nécessaire + - Remplacement du moteur de templates de Django par Jinja2_. + - Utilisation de Django 2.1 et de l’aggrégat ``TruncWeek``. + +.. _Jinja2: http://jinja.pocoo.org/ + +Ils n’ont pas pu être suivis à cause d’un manque de temps et de tests +et ont étés reportés à la version 0.15. |