aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlban Gruin2018-09-03 13:53:43 +0200
committerAlban Gruin2018-09-06 21:03:49 +0200
commit169226eda0a5ab4711fe0a0097f211ff31353708 (patch)
treea36a6e76d2eb31422e4d120f3a9650abc13dc501
parent935a8d7d2b7a9a0dc3b6c0480ee29c0432412db9 (diff)
documentation: mise à jour de la documentationag/dev-0.14
Rajout des nouveautés de la (future) version 0.14, met à jour la feuille de route pour la version 0.15, rajout d’informations par rapport aux parseurs lors de l’installation, rajout de LXML dans la liste des modules nécessaires, rajout d’un paragraphe sur les versions de Python 3 testées. Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
-rw-r--r--Documentation/dev/roadmap.rst14
-rw-r--r--Documentation/usage/installation.rst38
-rw-r--r--Documentation/usage/versions.rst48
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.