aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2019-01-27Version 0.14.4-1-pa1chv0.14.4-1-pa1chAlban Gruin
2019-01-27Merge branch 'ag/api' into prod/pa1ch/0.14.zAlban Gruin
2019-01-27Documentation: ajout d’une doc sur l’API RESTAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-27api: ajout d’un routeur pour l’API, branchement sur urls.pyAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-27api: complétion des vues de l’APIAlban Gruin
Ajout de vues permettant de consulter les emplois du temps associés à une année ou à une source, les groupes associés à un emploi du temps, les cours d’un groupe ou d’une salle (soit tous, soit ceux de la semaine courante, soit ceux d’une semaine précise), de lister les semaines de cours, et d’accéder à QSJPS. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-27api: ajout des vues de l’APIAlban Gruin
L’API a besoin de vues pour renvoyer des données. Ces vues utilisent les sérialiseurs écrits précédement. Pour l’instant, les sérialiseurs sont assez rudimentaires (ils ne peuvent afficher qu’une liste d’objets ou un seul objet sans filtres ou fonctionnalités supplémentaires), et ne permettent pas d’effectuer de modifications. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-27api: ajout d’un sérialiseur pour chaque modèleAlban Gruin
Les sérialiseurs permettent de représenter les modèles en JSON. Tous les sérialiseurs exportent tous les champs de leurs modèles respectifs. En plus de cela, le sérialiseur du modèle des cours sérialise en plus les groupes et salles pour ne pas avoir à faire trop d’appels à l’API. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-27requirements: ajout d’une dépendance à Django REST FrameworkAlban Gruin
Django REST Framework sera utilisé pour réaliser l’API de celcatsanitizer. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-04Merge branch 'ag/pa1ch/nique-toi-google' into prod/pa1ch/0.14.zv0.14.4-pa1chAlban Gruin
2019-01-04Merge branch 'stable/0.14.z' into prod/pa1ch/0.14.zAlban Gruin
2019-01-04templates: ajout d’un gabarit flatpage pour les guidesag/pa1ch/nique-toi-googleAlban Gruin
Les guides ICS vont intégrer des images, or aucune directive CSS n’est présente pour les afficher correctement dans le thème de base. Ceci rajoute donc un gabarit flatpage avec quelques directives CSS supplémentaires pour qu’elles s’intègrent bien sur les pages. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-04templates: ajout de liens vers des guides d’utilisation des ICSAlban Gruin
Les utilisateurs ne savent pas forcément se servir des différents logiciels permettant de lire les calendriers au format ICS. Ceci rajoute donc des liens vers des guides pour se servir des logiciels listés, à l’exception d’iCloud (ça arrivera peut-être à l’avenir ?). Ces guides seront gérés par des flatpages Django. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-04Version 0.14.4v0.14.4stable/0.14.zag/reneAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-04doc: mise à jour de la documentationAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2019-01-04Merge branch 'ag/nique-toi-google'Alban Gruin
2019-01-04templates: ajout d’un message déconseillant l’utilisation de GCalendarAlban Gruin
Le service Calendar du géant du numérique Google ne supporte pas bien les fichiers ICS. Les mises à jour sont plus ou moins quotidiennes, et il est impossible d’en changer la fréquence ou de les forcer. Or, celcatsanitizer rafraîchir ces informations juste après que Google ait mis à jour ses ICS. Cela signifie qu’il peut y avoir un délai de un jour entre le changement d’une information sur celcatsanitizer et sa prise en compte par Google Calendar, sans aucun recours possible. Les utilisateurs ne sont pas forcément au courant de ce problème, alors un texte a été rajouté pour les en informer. Le lecteur attentif pourra se demander si il n’y a pas de conflit d’intérêt entre l’écosystème Android, dans lequel l’application de base (Agenda) ne peut se synchroniser qu’à Google Calendar à moins d’installer une application tierce (telles que DAVDroid ou ICSDroid, malheureusement payantes sur le Play Store mais gratuites sur F-Droid). Il pourra aussi se questionner sur la raison du mauvais support des ICS par ce service -- serait-ce une technique pour inciter les utilisateurs à se servir de Google Calendar en priorité, au détriment des formats standards et des autres écosystèmes (par exemple, celui d’Apple), et ainsi attirer plus d’utilisateurs ? Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-12-31templates: ajout d’une liste de logiciels lisant les fichiers ICSAlban Gruin
Il existe plusieurs logiciels permettant d’utiliser le format ICS, mais les utilisateurs ne les connaissent pas forcément. Le but est de les informer sur les solutions existantes. Google Calendar est volontairement exclu de cette liste. Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-10-09Merge branch 'stable/0.14.z' into prod/pa1ch/0.14.zv0.14.3-pa1chAlban Gruin
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-29Merge branch 'stable/0.14.z' into prod/pa1ch/0.14.zv0.14.2-pa1chAlban Gruin
Signed-off-by: Alban Gruin <alban@pa1ch.fr>
2018-09-29scraptimetables: adaptation de scraptimetables à la nouvelle pageAlban 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-19Merge branch 'stable/0.14.z' into prod/pa1ch/0.14.zv0.14.1-pa1chAlban Gruin
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-06Merge branch 'stable/0.14.z' into prod/pa1ch/0.y.zv0.14.0-pa1chprod/pa1ch/0.y.zAlban Gruin
2018-09-06templates: changement du titre et de la description de l’indexAlban Gruin
Ces changements indiquent que cette instance de celcatsanitizer héberge les emplois du temps de l’Université Paul Sabatier, via le titre de la page et la description. Ça aidera peut-être pour le référencement. 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>