Notes de version

Version 0.13

Changements externes

  • Ajout de l’emploi du temps des salles
  • Ajout d’une fonctionnalité permettant de connaître les salles disponibles
  • Améliorations de la navigabilité du site
    • Ajout de liens pour revenir en arrière sur le site
    • Ajout de liens pour parcourir les semaines de l’emploi du temps
  • Les groupes qui n’ont plus de cours du tout ne sont plus affichés
  • Ajout d’une page contenant la liste complète des groupes
  • Ajout d’une page contenant la liste complète des semaines de cours pour les groupes et les salles
  • Ajout d’un texte de description sur la page des ICS
  • Création de la documentation

Changements internes

  • Passage à Django 2.0
    • Utilisation des routes path() au lieu de url()
  • Création d’une table Source pour stocker la source des emplois du temps. Cela permet d’éviter de récupérer plusieurs fois le même fichier et d’éviter les doublons sur les emplois du temps des salles.
  • Ajout de la commande reparse
  • Meilleure abstraction des templates, notamment de index.html

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 version 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.

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.

Version 0.14.1

  • Correction d’un bogue qui faisait planter la recherche de salles si l’heure de début est après l’heure de fin.
  • Correction d’un bogue lorsqu’un cours ne possède ni nom ni type dans le parseur UPS2018, résultant en un échec de mise à jour.

Version 0.14.2

  • Renvoi d’un code d’erreur 400 lorsque le formulaire de QSJPS est invalide.
  • Correction du texte d’erreur du formulaire de QSJPS.
  • Changement des textes « semaine N » par « semaine précédente/suivante » dans les calendriers.
  • Correction d’un bogue qui faisait croire au parseur que l’heure de début et de fin d’un cours était son type.
  • Correction d’un bogue qui faisait que le parseur créait un cours vide quand il traitait un événement global, alors qu’il ne devrait pas en créer du tout.
  • Lorsqu’un cours a plusieurs noms, la technique de déduplication utilisée jusqu’alors faisait que l’ordre des noms n’était pas forcément identique d’une mise à jour à une autre. Cette technique a été changée par une autre permettant de conserver cet ordre.

Version 0.14.3

  • Il arrive que la source renvoie des pages incomplètes ne contenant aucun cours, ce qui peut donner des mois complètement vides. Ajout d’une vérification lors de la récupération des pages ; si une page est invalide, elle est re-demandée tant qu’elle est incomplète, et ce trois fois au maximum.