diff options
author | Alban Gruin | 2019-08-30 14:01:21 +0200 |
---|---|---|
committer | Alban Gruin | 2019-09-01 13:28:32 +0200 |
commit | 947632bbb0fb1a721bde549f0ca9bf8b8f281ca4 (patch) | |
tree | 4374644f8091829e9596bac9686d1c567b343973 | |
parent | d1369ea3654b56e6a91335bd108035cd5eecbc76 (diff) |
views: utilisation de TruncWeek
Signed-off-by: Alban Gruin <alban at pa1ch dot fr>
-rw-r--r-- | views.py | 16 |
1 files changed, 6 insertions, 10 deletions
@@ -17,7 +17,8 @@ import datetime from django.db import connection from django.db.models import Count, Max -from django.db.models.functions import ExtractWeek, ExtractYear, Length +from django.db.models.functions import ExtractWeek, ExtractYear, Length, \ + TruncWeek from django.http import Http404 from django.shortcuts import get_object_or_404, render from django.utils import timezone @@ -32,7 +33,6 @@ import edt if connection.vendor == "postgresql": from django.contrib.postgres.aggregates import ArrayAgg - from django.db.models.expressions import RawSQL def index(request): @@ -195,9 +195,8 @@ def rooms(request): rooms = Room.objects.filter(course__begin__gte=start, course__begin__lt=end) \ .order_by("name") \ - .annotate(weeks=ArrayAgg( - RawSQL("date_trunc('week', edt_course.begin)", - []), distinct=True)) + .annotate(weeks=ArrayAgg(TruncWeek("week"), + distinct=True)) return render(request, "room_list.html", {"elements": rooms}) @@ -210,8 +209,7 @@ def rooms(request): rooms = Room.objects.filter(course__begin__gte=start, course__begin__lt=end) \ .order_by("name") \ - .annotate(year=ExtractYear("course__begin"), - week=ExtractWeek("course__begin"), + .annotate(week=TruncWeek("course__begin"), c=Count("*")) # Regroupement des semaines dans une liste de chaque objet salle @@ -226,10 +224,8 @@ def rooms(request): room.weeks = [] rooms_weeks.append(room) - # On récupère le premier jour de la semaine - date, _ = get_week(room.year, room.week) # Et on le rajoute dans la liste des semaines de la salle. - rooms_weeks[-1].weeks.append(date) + rooms_weeks[-1].weeks.append(room.week) # Rendu de la page. return render(request, "room_list.html", {"elements": rooms_weeks}) |