aboutsummaryrefslogtreecommitdiff
path: root/management/commands/_private.py
diff options
context:
space:
mode:
authorAlban Gruin2018-04-29 01:23:39 +0200
committerAlban Gruin2019-01-02 18:30:10 +0100
commit3b81ba3d9f29b792b0b9d9725b32d51a135248bc (patch)
treedbfca80358691315fc4fb7ccb8e68f60a103355d /management/commands/_private.py
parentfd516af7aedf938cc6fb65eca556e8341a0dfd92 (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 'management/commands/_private.py')
0 files changed, 0 insertions, 0 deletions