aboutsummaryrefslogtreecommitdiff
path: root/management
AgeCommit message (Collapse)Author
2019-06-08commands: ajout d’une commande pour lister les propriétés des coursAlban Gruin
Pour pouvoir analyser plus facilement les attributs d’un cours, un nouvel outil est rajouté pour lister tous les attributs d’un ou plusieurs cours. Il fait appel au parseur et permet de sélectionner une source, et de limiter le nombre de cours affichés. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-06-08commands: ajout d’un modèle abstrait de commande accédant au parseurAlban Gruin
Pour les besoins de l’ajout de la notion de module, un nouvel outil permettant de lister les attributs d’un cours sera rajouté. À l’instar de timetables, il fera aussi appel au parseur. Pour éviter de dupliquer du code, la partie accès au parseur est déplacé dans une autre classe. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09ups2018: vérification de la présence des événements dans la pageag/ups2018-correctifs-apres-testsAlban Gruin
Il arrive que les pages retournées par la source sont incomplètes et ne contiennent pas d’événement, et parfois des mois entiers sont vides. On tente donc de récupérer une page trois fois au maximum, et, si cela échoue toujours, on abandonne en renvoyant une exception. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09parsers: ajout d’une exception pour les parseursAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29ups2018: pas de création de cours si l’événement est globalAlban Gruin
Pour l’instant, on ne souhaite pas enregistrer les événement globaux. On vérifie donc si l’événement est global, et, si c’est le cas, on ne traite pas l’événement. Or, on insérait un cours dans la base de données avant de faire ce test. Un cours avec aucun attribut était donc laissé dans la base de données. Ce commit déplace donc la création du cours après avoir vérifié si un événement est global. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-23ups2018: détection du premier élément « utile » des données du coursAlban Gruin
La plupart des cours contiennent un élément correspondant à l’heure de début et de fin du cours. Lorsqu’un cours ne possède pas de nom, il se peut que cet élément soit utilisé comme type, ce qui n’a pas de sens. On va donc détecter la présence de cet élément à la première place à l’aide d’une regex, et, si jamais il est présent, on n’utilise pas le premier élément de la liste. À l’origine, cet élément ne devait pas être utilisé pour cette raison, mais ce comportement a été changé avec le commit ab6ca3c ("parsers: correction de l’index du premier élément à analyser"), après la détection de cours n’ayant pas cet élément. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-23ups2018: déduplication avec OrderedDict au lieu de set()Alban Gruin
set() ne conserve pas nécessairement l’ordre des données, ce qui a plusieurs conséquences. Premièrement, un cours avec plusieurs noms séparés par un point-virgule peut changer de nom dans celcatsanitizer d’une mise à jour à une autre. Deuxièmement, cette fonctionnalité devient intestable de manière certaine. Pour remédier à cela, on utilise la structure OrderedDict à la place. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-19parsers: correction de l’index du premier élément à analyserAlban Gruin
Commencer au premier élément fait planter l’étape de déduction des éléments des cours si jamais un cours n’a ni nom, ni type. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06timetables: ne rien faire si une source ne contient pas de semainesAlban Gruin
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é. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06parsers: nouveau parseur pour le format utilisé par l’UPS en 2018Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-03parsers: parseur orienté objet avec une classe abstraiteAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-03parsers: déplacement de delete_courses_in_week() vers timetable.pyAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-03management: création d’un sous-module parserAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-04-22Suppression du paramètre --order-by-id dans listtimetablesAlban Gruin
Ce paramètre est devenu inutile depuis l’ajout des sources, qui sont déjà triées par leur ID.
2018-02-10Correction des importsAlban Gruin
2018-02-10Ajout d’une commande pour reparser les groupesAlban Gruin
2018-01-28Revert "Remplacement de l’arithmétique de date et heure par ↵Alban Gruin
datetime.combine()" This reverts commit 37d80d84d8ce6cb0a17a0e4179e4c7a453f7fcc2.
2018-01-28Remplacement de l’arithmétique de date et heure par datetime.combine()Alban Gruin
2018-01-28Remplacement de la fonction get_from_db_or_create() par objects.get_or_create()Alban Gruin
2018-01-28Changements dans le formatage du code pour le rendre plus lisibleAlban Gruin
2018-01-27PEP8Alban Gruin
2018-01-18Mise à jour des copyrightsAlban Gruin
2018-01-11On remplace les <br /> dans le champ remarque par des retours à laAlban Gruin
ligne lors du parsage, puis on les remplace à nouveau par des <br /> lors du rendu des templates.
2017-11-27Fonction pour formater les emplois du temps à partir d’une sourceAlban Gruin
2017-11-27Adaptation des commandes cleancourses et listtimetables au changementsAlban Gruin
2017-11-27Adaptation de la commande de mise à jour des emplois du temps auxAlban Gruin
changements effectués sur la structure de la base de données
2017-11-16Correction d’un crash lorqu’on force une mise à jour sur tout l’emploiAlban Gruin
du temps Lorsqu’on effectue cette opération, la date à laquelle est effectuée la mise à jour est à None. get_event() effectue donc une comparaison entre la date du cours et un objet nul, ce qui est impossible. Cela provoque un crash. Le correctif consiste à dire que si la date de début de la mise à jour est nulle, alors le cours n’est pas ignoré, avant d’effectuer la comparaison décrite ci-dessus.
2017-11-07La commande `timetables` n’affiche pas de trace d’erreur lorsqu’on ↵Alban Gruin
l’arrête avec un Ctrl-C.
2017-11-04Affichage de la pile d’exécution lors d’une erreur de màj d’emploi ↵Alban Gruin
du temps
2017-11-04Correction d’un bug qui empêche la mise à jour complète de l’emploi ↵Alban Gruin
du temps Lorsqu’on demande une mise à jour, la semaine et le mois à mettre à jour sont passés en paramètre de la fonction de mise à jour. Mais quand on demande la mise à jour de tout l’emploi du temps, ces deux paramètres sont à None, faisant planter la fonction qui calcul le début et la fin de la semaine.
2017-10-22Suppression de l’étape de consolidationAlban Gruin
2017-10-22Suppression des imports inutilesAlban Gruin
2017-10-22Le parseur de cours récupère à nouveau le champ « remarque ».Alban Gruin
Pour récupérer ce champ, le parseur est censé vérifier que la valeur existe dans un cours, sinon il ne faisait rien. Sauf que depuis un moment (commit 72dcae5c), la valeur qu’il vérifiait était celle de l’objet en cours de création, forcément nul, et non pas celle du XML.
2017-10-14timezone.now() retourne l’heure UTC, ce qui empêche la mise à jour deAlban Gruin
la semaine prochaine le samedi à minuit. Remplacement de ces appels par une fonction qui retourne la bonne heure dans le bon fuseau horaire.
2017-10-10Il est plus pertinent de remplacer le nom du cours par son typeAlban Gruin
lorsqu’il n’y en a pas que par sa remarque.
2017-10-10Envoi d’un user-agent personnaliséAlban Gruin
2017-10-09Lorsque le nom d’un cours et son champ remarque est vide, le nom dev0.10.4Alban Gruin
l’objet cours final était égal à None et faisait crasher les flux RSS et Atom, ainsi que l’ICS et n’affichait aucun cours à la semaine du cours problématique. C’est maintenant corrigé.
2017-10-07La fonction create() des modèles créée un objet en base, donc ne pasv0.10.3Alban Gruin
sauvegarder après coup, comme ce qui était fait jusque là créait des cours sans nom ni type, faisant crasher le générateur d’ICS. La comparaison du début d’un cours se fait maintenant directement dans get_event(), avant que l’objet Course ne soit créé.
2017-10-06Si on force une mise à jour, on efface les cours autant qu’on peutv0.10.2Alban Gruin
au lieu de le faire à partir du lancement du traitement
2017-10-05Simplification du filtrage de process_timetable_week() (pourquoiv0.10.1Alban Gruin
réinventer la roue carrée ?…) Ajout de commentaires
2017-10-05Mauvais moduleAlban Gruin
2017-10-05On ne supprime pas les cours qui commencent avant le début du traitementAlban Gruin
2017-10-01Ajout d’une colonne pour stocker la date de dernière mise à jourAlban Gruin
2017-09-30On ne supprime pas les éléments plus anciens que ceux référencés par CelcatAlban Gruin
2017-09-30Suppression de tous les cours d’un edt si jamais aucune semaine n’estAlban Gruin
fournie. Pas de filtre de début ou de fin dans le cas où aucune semaine n’est fournie. Changement du type d’aggrégation (minimum au lieu de maximum).
2017-09-30Ajout de commentaires à la fonction get_weeks()Alban Gruin
2017-09-30Déplacement de la logique de création de l’objet Course dans sa propre ↵Alban Gruin
fonction
2017-09-29Ajout d’un paramètre à la commande timetables pour forcer la mise à jourAlban Gruin
2017-09-29Suppression de la classe Week \o/Alban Gruin
2017-09-29Ajout d’une option pour récupérer tout un emploi du tempsAlban Gruin
Pas encore testé parce que j’aime vivre dangereusement