Age | Commit message (Collapse) | Author |
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
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>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
|
|
Ce paramètre est devenu inutile depuis l’ajout des sources, qui sont
déjà triées par leur ID.
|
|
|
|
|
|
datetime.combine()"
This reverts commit 37d80d84d8ce6cb0a17a0e4179e4c7a453f7fcc2.
|
|
|
|
|
|
|
|
|
|
|
|
ligne lors du parsage, puis on les remplace à nouveau par des <br />
lors du rendu des templates.
|
|
|
|
|
|
changements effectués sur la structure de la base de données
|
|
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.
|
|
l’arrête avec un Ctrl-C.
|
|
du temps
|
|
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.
|
|
|
|
|
|
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.
|
|
la semaine prochaine le samedi à minuit. Remplacement de ces appels
par une fonction qui retourne la bonne heure dans le bon fuseau horaire.
|
|
lorsqu’il n’y en a pas que par sa remarque.
|
|
|
|
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é.
|
|
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éé.
|
|
au lieu de le faire à partir du lancement du traitement
|
|
réinventer la roue carrée ?…)
Ajout de commentaires
|
|
|
|
|
|
|
|
|
|
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).
|
|
|