From 5490a366c2acba45cc617a825904ba95eeb6b374 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Tue, 12 Sep 2017 21:42:52 +0200
Subject: Ajout d’une page contact. L’adresse email est brouillée.
---
views.py | 4 ++++
1 file changed, 4 insertions(+)
(limited to 'views.py')
diff --git a/views.py b/views.py
index f445725..302b375 100644
--- a/views.py
+++ b/views.py
@@ -13,6 +13,7 @@
# You should have received a copy of the GNU Affero General Public License
# along with celcatsanitizer. If not, see .
+from django.conf import settings
from django.shortcuts import get_object_or_404, render
from .models import Timetable, LastUpdate, Group, Course, Year
@@ -65,3 +66,6 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
grouped_courses = group_courses(courses)
return render(request, "timetable.html", {"group": group, "courses": grouped_courses, "last_update": last_update.date, "year": year, "week": int(week)})
+
+def contact(request):
+ return render(request, "contact.html", {"email": settings.ADMINS[0][1]})
--
cgit v1.2.1
From e30b0c673cae607175c5bae6df6e87d8b100bdf3 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Sun, 24 Sep 2017 17:16:10 +0200
Subject: Suppression du modèle LastUpdate, utilisation du champ last_update à
la place.
---
views.py | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 302b375..eb6a7ac 100644
--- a/views.py
+++ b/views.py
@@ -14,9 +14,11 @@
# along with celcatsanitizer. If not, see .
from django.conf import settings
+from django.db.models import Max
+from django.http import Http404
from django.shortcuts import get_object_or_404, render
-from .models import Timetable, LastUpdate, Group, Course, Year
+from .models import Timetable, Group, Course, Year
from .utils import get_current_week, get_week, group_courses
def index(request):
@@ -60,12 +62,14 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
- last_update = get_object_or_404(LastUpdate, timetable=timetable, week=week, year=year)
- courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end)
+
+ courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end).annotate(Max("last_update"))
+ if courses.count == 0:
+ raise Http404
grouped_courses = group_courses(courses)
- return render(request, "timetable.html", {"group": group, "courses": grouped_courses, "last_update": last_update.date, "year": year, "week": int(week)})
+ return render(request, "timetable.html", {"group": group, "courses": grouped_courses, "last_update": courses.first().last_update__max, "year": year, "week": int(week)})
def contact(request):
return render(request, "contact.html", {"email": settings.ADMINS[0][1]})
--
cgit v1.2.1
From ba343196f8305dfadf01f8a617b05e6d9723ce13 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Wed, 27 Sep 2017 13:48:44 +0200
Subject: On compare le résultat de la fonction à 0, pas la fonction
---
views.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index eb6a7ac..66f0a03 100644
--- a/views.py
+++ b/views.py
@@ -64,7 +64,7 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end).annotate(Max("last_update"))
- if courses.count == 0:
+ if courses.count() == 0:
raise Http404
grouped_courses = group_courses(courses)
--
cgit v1.2.1
From a43f7fa835fcdf9f591c3f759f5ab7545c9df5b3 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Wed, 27 Sep 2017 14:58:06 +0200
Subject: Affichage d’un message lorsque quelqu’un consulte un emploi du temps
périmé
---
views.py | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 66f0a03..442ada6 100644
--- a/views.py
+++ b/views.py
@@ -55,8 +55,13 @@ def group_list(request, year_slug, timetable_slug):
return render(request, "group_list.html", {"timetable": timetable, "groups": groups})
def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None):
+ current_year, current_week = get_current_week()
+ is_old_timetable = False
+
if year is None or week is None:
- year, week = get_current_week()
+ year, week = current_year, current_week
+ elif (int(year), int(week)) < (current_year, current_week):
+ is_old_timetable = True
start, end = get_week(int(year), int(week))
@@ -69,7 +74,10 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
grouped_courses = group_courses(courses)
- return render(request, "timetable.html", {"group": group, "courses": grouped_courses, "last_update": courses.first().last_update__max, "year": year, "week": int(week)})
+ return render(request, "timetable.html", {"group": group, "courses": grouped_courses,
+ "last_update": courses.first().last_update__max,
+ "year": year, "week": int(week),
+ "is_old_timetable": is_old_timetable})
def contact(request):
return render(request, "contact.html", {"email": settings.ADMINS[0][1]})
--
cgit v1.2.1
From 436099ebef2acb8a3965cc39b07d99f61fa1eba2 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Wed, 27 Sep 2017 15:06:54 +0200
Subject: Suppression des lignes trop longues
---
views.py | 11 ++++++++---
1 file changed, 8 insertions(+), 3 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 442ada6..404b7cb 100644
--- a/views.py
+++ b/views.py
@@ -37,11 +37,15 @@ def group_list(request, year_slug, timetable_slug):
year, week = get_current_week()
start, _ = get_week(year, week)
- groups_weeks = Course.objects.get_weeks(begin__gte=start, timetable=timetable).values("groups__mention", "groups__subgroup", "groups__td", "groups__tp", "year", "week")
+ groups_weeks = Course.objects.get_weeks(begin__gte=start, timetable=timetable) \
+ .values("groups__mention", "groups__subgroup",
+ "groups__td", "groups__tp", "year", "week")
for group in groups:
for group_week in groups_weeks:
- if group.corresponds_to(timetable.id, group_week["groups__mention"], group_week["groups__subgroup"], group_week["groups__td"], group_week["groups__tp"]):
+ if group.corresponds_to(timetable.id, group_week["groups__mention"],
+ group_week["groups__subgroup"], group_week["groups__td"],
+ group_week["groups__tp"]):
if not hasattr(group, "weeks"):
group.weeks = []
@@ -68,7 +72,8 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
- courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end).annotate(Max("last_update"))
+ courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end) \
+ .annotate(Max("last_update"))
if courses.count() == 0:
raise Http404
--
cgit v1.2.1
From 0b3fabb03d98cf2455818aa2650df1ab86846431 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Thu, 28 Sep 2017 21:35:35 +0200
Subject: Si un utilisateur consulte un groupe qui a des enfants, on lui
propose une liste de groupes enfants
---
views.py | 13 +++++++++----
1 file changed, 9 insertions(+), 4 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 404b7cb..82ef639 100644
--- a/views.py
+++ b/views.py
@@ -31,10 +31,7 @@ def mention_list(request, year_slug):
return render(request, "mention_list.html", {"year": year, "timetables": timetables})
-def group_list(request, year_slug, timetable_slug):
- timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
- groups = Group.objects.get_relevant_groups(timetable=timetable).order_by("name")
-
+def group_list_common(request, timetable, groups):
year, week = get_current_week()
start, _ = get_week(year, week)
groups_weeks = Course.objects.get_weeks(begin__gte=start, timetable=timetable) \
@@ -58,6 +55,11 @@ def group_list(request, year_slug, timetable_slug):
return render(request, "group_list.html", {"timetable": timetable, "groups": groups})
+def group_list(request, year_slug, timetable_slug):
+ timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
+ groups = Group.objects.get_relevant_groups(timetable=timetable).order_by("name")
+ return group_list_common(request, timetable, groups)
+
def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None):
current_year, current_week = get_current_week()
is_old_timetable = False
@@ -72,6 +74,9 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
+ if group.children.count():
+ return group_list_common(request, timetable, group.children.order_by("name"))
+
courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end) \
.annotate(Max("last_update"))
if courses.count() == 0:
--
cgit v1.2.1
From a1231e340dbb9236f3804679360c0ab7895ae903 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Thu, 28 Sep 2017 21:57:54 +0200
Subject: Affichage seulement des groupes intéressants pour éviter des clics
inutiles : Si les enfants d’un groupe ont eux-mêmes des enfants, on n’affiche
pas ce groupe mais ces enfants.
---
views.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 82ef639..23bced4 100644
--- a/views.py
+++ b/views.py
@@ -75,7 +75,7 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No
group = get_object_or_404(Group, slug=group_slug, timetable=timetable)
if group.children.count():
- return group_list_common(request, timetable, group.children.order_by("name"))
+ return group_list_common(request, timetable, Group.objects.get_relevant_children(group))
courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end) \
.annotate(Max("last_update"))
--
cgit v1.2.1
From 1d5068de5e4babb8c2c969c626fd1d8b53bc28ea Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Thu, 28 Sep 2017 22:27:50 +0200
Subject: Mise en commun de la template de sélection de l’année et de la
mention
---
views.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 23bced4..14a4208 100644
--- a/views.py
+++ b/views.py
@@ -23,13 +23,13 @@ from .utils import get_current_week, get_week, group_courses
def index(request):
years = Year.objects.order_by("name")
- return render(request, "index.html", {"years": years})
+ return render(request, "index.html", {"elements": years})
def mention_list(request, year_slug):
year = get_object_or_404(Year, slug=year_slug)
timetables = Timetable.objects.order_by("name").filter(year=year)
- return render(request, "mention_list.html", {"year": year, "timetables": timetables})
+ return render(request, "index.html", {"year": year, "elements": timetables})
def group_list_common(request, timetable, groups):
year, week = get_current_week()
--
cgit v1.2.1
From bf7c0b026284d7abe0390912253f07a65fa991d7 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Sat, 30 Sep 2017 17:01:32 +0200
Subject: On affiche que les groupes qui commencent par le nom de l’emploi du
temps
---
views.py | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 14a4208..2d59c7c 100644
--- a/views.py
+++ b/views.py
@@ -57,7 +57,9 @@ def group_list_common(request, timetable, groups):
def group_list(request, year_slug, timetable_slug):
timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
- groups = Group.objects.get_relevant_groups(timetable=timetable).order_by("name")
+ groups = Group.objects.get_relevant_groups(timetable=timetable, name__startswith=timetable) \
+ .order_by("name")
+
return group_list_common(request, timetable, groups)
def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None):
--
cgit v1.2.1
From e3594050b78d3b28b5696e9a546163945d8073da Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Sun, 1 Oct 2017 11:22:29 +0200
Subject: Revert "On affiche que les groupes qui commencent par le nom de
l’emploi du temps"
This reverts commit bf7c0b026284d7abe0390912253f07a65fa991d7.
---
views.py | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 2d59c7c..14a4208 100644
--- a/views.py
+++ b/views.py
@@ -57,9 +57,7 @@ def group_list_common(request, timetable, groups):
def group_list(request, year_slug, timetable_slug):
timetable = get_object_or_404(Timetable, year__slug=year_slug, slug=timetable_slug)
- groups = Group.objects.get_relevant_groups(timetable=timetable, name__startswith=timetable) \
- .order_by("name")
-
+ groups = Group.objects.get_relevant_groups(timetable=timetable).order_by("name")
return group_list_common(request, timetable, groups)
def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None):
--
cgit v1.2.1
From d015314d3ccbb35f52a28698444de8ff60002e10 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Sun, 1 Oct 2017 11:26:18 +0200
Subject: On affiche pas plus d’un mois en avance
---
views.py | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 14a4208..d34fadd 100644
--- a/views.py
+++ b/views.py
@@ -13,6 +13,8 @@
# You should have received a copy of the GNU Affero General Public License
# along with celcatsanitizer. If not, see .
+import datetime
+
from django.conf import settings
from django.db.models import Max
from django.http import Http404
@@ -34,7 +36,8 @@ def mention_list(request, year_slug):
def group_list_common(request, timetable, groups):
year, week = get_current_week()
start, _ = get_week(year, week)
- groups_weeks = Course.objects.get_weeks(begin__gte=start, timetable=timetable) \
+ end = start + datetime.timedelta(weeks=4)
+ groups_weeks = Course.objects.get_weeks(begin__gte=start, begin__lt=end, timetable=timetable) \
.values("groups__mention", "groups__subgroup",
"groups__td", "groups__tp", "year", "week")
--
cgit v1.2.1
From f7016ebb865a5b334aff2d84ab009bb491921e54 Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Sun, 1 Oct 2017 11:38:41 +0200
Subject: Suppression des variables inutiles
---
views.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index d34fadd..4fc0147 100644
--- a/views.py
+++ b/views.py
@@ -34,9 +34,9 @@ def mention_list(request, year_slug):
return render(request, "index.html", {"year": year, "elements": timetables})
def group_list_common(request, timetable, groups):
- year, week = get_current_week()
- start, _ = get_week(year, week)
+ start, _ = get_week(*get_current_week())
end = start + datetime.timedelta(weeks=4)
+
groups_weeks = Course.objects.get_weeks(begin__gte=start, begin__lt=end, timetable=timetable) \
.values("groups__mention", "groups__subgroup",
"groups__td", "groups__tp", "year", "week")
--
cgit v1.2.1
From ef693288dab169d6a45cb0d02635187c21c3b0ab Mon Sep 17 00:00:00 2001
From: Alban Gruin
Date: Mon, 2 Oct 2017 15:23:27 +0200
Subject: Affichage de la semaine prochaine dans l’emploi du temps général le
dimanche
---
views.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
(limited to 'views.py')
diff --git a/views.py b/views.py
index 4fc0147..bd93712 100644
--- a/views.py
+++ b/views.py
@@ -21,7 +21,7 @@ from django.http import Http404
from django.shortcuts import get_object_or_404, render
from .models import Timetable, Group, Course, Year
-from .utils import get_current_week, get_week, group_courses
+from .utils import get_current_week, get_current_or_next_week, get_week, group_courses
def index(request):
years = Year.objects.order_by("name")
@@ -64,7 +64,7 @@ def group_list(request, year_slug, timetable_slug):
return group_list_common(request, timetable, groups)
def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None):
- current_year, current_week = get_current_week()
+ current_year, current_week = get_current_or_next_week()
is_old_timetable = False
if year is None or week is None:
--
cgit v1.2.1