aboutsummaryrefslogtreecommitdiff
path: root/Documentation/usage
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/usage')
-rw-r--r--Documentation/usage/installation.rst38
-rw-r--r--Documentation/usage/versions.rst48
2 files changed, 85 insertions, 1 deletions
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.