diff options
Diffstat (limited to 'views.py')
-rw-r--r-- | views.py | 11 |
1 files changed, 6 insertions, 5 deletions
@@ -65,10 +65,11 @@ def group_list(request, year_slug, timetable_slug): def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=None): current_year, current_week = get_current_or_next_week() - is_old_timetable = False + is_old_timetable, provided_week = False, True if year is None or week is None: year, week = current_year, current_week + provided_week = False elif (int(year), int(week)) < (current_year, current_week): is_old_timetable = True @@ -80,15 +81,15 @@ def timetable(request, year_slug, timetable_slug, group_slug, year=None, week=No if group.children.count(): 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")) - if courses.count() == 0: + courses = Course.objects.get_courses_for_group(group, begin__gte=start, begin__lt=end) + if courses.count() == 0 and provided_week: raise Http404 + last_update = courses.aggregate(Max("last_update"))["last_update__max"] grouped_courses = group_courses(courses) return render(request, "timetable.html", {"group": group, "courses": grouped_courses, - "last_update": courses.first().last_update__max, + "last_update": last_update, "year": year, "week": int(week), "is_old_timetable": is_old_timetable}) |