diff options
author | Alban Gruin | 2018-04-29 01:23:39 +0200 |
---|---|---|
committer | Alban Gruin | 2019-01-02 18:30:10 +0100 |
commit | 3b81ba3d9f29b792b0b9d9725b32d51a135248bc (patch) | |
tree | dbfca80358691315fc4fb7ccb8e68f60a103355d /urls.py | |
parent | fd516af7aedf938cc6fb65eca556e8341a0dfd92 (diff) |
views: requête de liste des groupes/semaines opti pour PostgreSQLag/requete-groupe-opti-pg
La requête actuelle récupère une ligne par groupe/semaine de cours
sans correspondance inter-groupe (TPA22 veut aussi les cours de TDA2,
etc.), ce qui demande un post-traitement quadratique (voire peut-être
pire) pour regrouper les semaines par groupe.
Grace aux liste de PostgreSQL, il est possible de faire une requête
éliminant le besoin de faire un post-traitement en Python.
Cette requête sélectionne tous les groupes ayant la même source, la
même mention, le même semestre et un sous-groupe qui ont les mêmes
premiers caractères. Elle sélectionne ensuite tous les cours
correspondant à ce groupe qui commencent entre l’heure actuelle sur
une période de un mois. Ensuite, les dates sont tronquées au début de
la semaine, triées, puis aggrégée sous forme de liste. Celle-ci est
rajoutée comme entrée dans le groupe sélectionné.
Le résultat peut être directement passé à une template.
Cette requête est plus lente que l’ancienne, mais l’élimination de
l’étape de post-traitement résulte en une accélération du rendu de la
page.
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
Diffstat (limited to 'urls.py')
0 files changed, 0 insertions, 0 deletions