aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-09-01ups2019: réadaptation du parseurag/parser-ups-2019Alban Gruin
L’emplacement des différents éléments a changé, mdr. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-08-30templatetags/rooms: correction du nom brut des sallesAlban Gruin
Les salles et amphis commencent maintenant par leur département, de cette manière : FSI / Amphi FERMAT (bat.1A) Au lieu de : Amphi FERMAT (bat.1A) Cela ne fait que rajouter du bruit sur la page. Ceci modifie le filtre de formatage des salles pour retirer le département si il est présent. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-08-30ups2019: nouveau parseur pour le format UPS2019Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-08-30ups2018: déplacement des préfixes de cours dans une constanteAlban Gruin
Le parseur UPS2018 va se servir de cette liste aussi, elle est donc déplacée dans sa propre constante. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-08-30models: remplacement de RENCONTRE par rencontre dans le type d’un coursAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-08-30models & admin: ajout des champs nécessaires pour le parseur UPS2019Alban Gruin
Le nouveau format utilisé requiert d’effectuer des requêtes POST et non plus GET, une URL n’est donc plus suffisante pour indiquer la source. Un champ `metadata' est rajouté, contenant une métadonnée au format texte. Il serait plus judicieux d’utiliser un champ JSONField, mais ce type est restreint à PostgreSQL (mon environnement de développement utilise toujours SQLite). Les ID des cours dans celcat ne sont plus de simples nombres mais des chaînes de caractères. Ce changement est donc reflété dans le modèle des cours. Dans le nouveau format, si un cours a plus de 3 groupes, seul les 3 premiers groupes sont listés, les autres sont marqués avec un texte du genre « 2 autres… ». (Ça fait 2 ans et demi que je travaille sur ce projet, et plus le temps passe, plus j’ai l’impression que la drogue est un outil de travail comme un autre chez celcat.) Le champ `buggy' est rajouté pour indiquer si c’est le cas de ce cours ou non, ce qui permettra d’ajouter une remarque sur les pages ouèbe ou les ICS. Les interfaces d’administration sont modifiées pour intégrer ces changements. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-06-09tests: test de la détection du module correspondant à un coursag/parserAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-06-09tests: test du parsage des ID de cours CelcatAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-06-08UPS2018: récupération du module (UE) correspondant à un coursAlban Gruin
Il peut être intéressant de lister les cours par module (UE). Une table est donc rajoutée pour stocker cette information et permettre d’effectuer des recherches et des tris. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-06-08UPS2018: ajout du champ celcat_idAlban Gruin
Les cours dans celcat ont un champ id. Ce changement permet de le stocker dans la base de données (sous la forme d’un entier) et de l’afficher dans l’interface d’administration. Pour l’instant, on ne sait pas si cette valeur est unique ou non. Il n’y a donc pas de contraintes sur ce champ pour le moment. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
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-12-31tests: test du tag format_roomsag/testsAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-12-31tests: test du comportement du parseur lorsque la source est mauvaiseAlban Gruin
Il est possible que la source renvoie des pages vides ou incorrectes, il est donc nécessaire de tester le comportement du parseur dans ces cas-là. Ajout d’un modèle de page vide dans les données de test. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-12-31tests: vérification du nombre de cours dans le test du parseurAlban Gruin
Dans certaines conditions, un nouveau cours doit être créé dans la base de données, mais parfois non. Pour vérifier qu’un seul cours a bien été rajouté (ou non, en fonction des cas), on teste aussi le nombre de cours présent dans la base de données. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-12-31tests: ajout de tests pour le parseur UPS2018Alban Gruin
Le parseur est une des parties les plus importantes de celcatsanitizer, mais ni le parseur 2017, ni le parseur 2018 n’ont eu de test unitaires à proprement parler. Jusqu’ici, pour tester ce composant, on ajoutait une source dans la base, on la récupérait, et on regardait si tout correspondait plus ou moins. Cette technique a plusieurs inconvénients : c’était une tâche rébarbative et pas systématiquement effectuée, ce qui a posé quelques problèmes par le passé, certains cas pouvaient ne pas se trouver dans la source au moment de la récupération, et ce n’était pas reproductible proprement. Rajouter des tests permettra donc de tester efficacement le parseur, avec tous les cas de figure, rapidement et en utilisant seulement des ressources locales. Pour éviter d’utiliser le réseau, le module requests est mocké lorsqu’on teste des fonctions qui l’utilisent. L’initialisation du parseur et ses fonctions __get_event(), get_events(), get_source() et get_update_date() (ainsi que la fonction find_events_list() de manière indirecte) sont testées. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09Version 0.14.3v0.14.3Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09doc: mise à jour de la documentationAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09Merge branch 'ag/ups2018-correctifs-apres-tests'Alban Gruin
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-29Version 0.14.2v0.14.2Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29doc: mise à jour de la documentationAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29Merge branch 'mh/correctifs-texte'Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29views: code d’erreur 400 lorsque le formulaire de QSJPS est invalideAlban Gruin
Ce commit change le code HTTP renvoyé si le formulaire de QSJPS est invalide. Le code renvoyé était le code 200, signifiant que la requête s’est bien déroulée. Avec ce commit, on renvoye un code 400, qui indique à l’utilisateur que sa requête est invalide. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29forms: correction du message d’erreur de QSJPSAlban Gruin
Lorsque le formulaire de QSJPS est incorrect, il manque un espace au message affiché. Ce commit corrige cela. 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-28Changement de "Semaine Suivante/Précédente" vers "Semaine ↵mh/correctifs-texteMaxime
suivante/précédente"
2018-09-28Changement de "Semaine NN" vers "Semaine Suivante/Précédente"Maxime
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-19Version 0.14.1v0.14.1Alban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-19doc: mise à jour de la documentationAlban Gruin
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-10forms: correction de l’ajout du message d’erreurAlban Gruin
La fonction de recherche QSJPS demande à ce que l’heure de début soit strictement supérieure à l’heure de fin. Le formulaire vérifie donc que ce critère soit respecté lors de la validation, et devrait afficher une erreur si il ne l’est pas. Or, le message d’erreur n’était pas rajouté correctement et fait planter la validation. De plus, lorsqu’il est 23h, les valeurs par défaut ne respectent pas cette condition (on rajoute une heure, il est donc minuit passé). La valeur par défaut du champ de fin est donc "23:59" si il est 23 heures. Il est important de noter que cette valeur ne valide toujours pas le critère à 23h59, il serait bon de trouver une solution plus pérenne à l’avenir, même si je doute que beaucoup de personnes ne cherche une salle libre à ces heures… Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06Version 0.14.0v0.14.0stable/0.y.zAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06documentation: mise à jour de la documentationag/dev-0.14Alban Gruin
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@pa1ch.fr>
2018-09-06requirements: mise à jour des modules de celcatsanitizerAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06groupes: ajout du support d’une nouvelle syntaxeAlban Gruin
Certains groupes ont la syntaxe suivante : L1 4L s1 CM4L L1 4L s1 TD4L1 L1 4L s1 TP4L12 etc. Le « 4 » entre le CM/TD/TP et le « numéro » fait échouer la regex. Ce commit rajoute le support de cette syntaxe, et ajoute les cas de test adéquats. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06models: augmentation de la limite de taille de cours à 511 caractèresAlban Gruin
Certains cours ont des noms trop long pour entrer dans la limite de 255 caractères. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06admin: la mention, le semestre et le sous-groupe deviennent éditablesAlban Gruin
Les champs mention, semestre et sous-groupe d’un groupe n’étaient pas éditables depuis l’interface d’administration, car ils sont censés êtres générés automatiquement. Cela permet de pouvoir éditer les attributs d’un groupe en attendant de pouvoir corriger la regex des groupes. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-06admin: tri des salles par ordre alphabétique par défautAlban Gruin
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-06utils: correction du format des semaines dans `get_weeks()`Alban Gruin
Les semaines étaient parsées avec le format de base de Python au lieu du format ISO-601. 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. 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-25Version 0.13.0v0.13.0stable/0.13.zAlban Gruin
2018-04-25Merge branch 'futur'Alban Gruin