From 1049e0a6a47a6c4fc798960afb141a0be0c948be Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Wed, 8 Jan 2020 20:28:32 +0100 Subject: [PATCH] =?UTF-8?q?Use=20right=20data=20in=20=E2=80=9Eall=20timeta?= =?UTF-8?q?bles=E2=80=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../apps/chronos/templates/chronos/all.html | 14 +++++++------ aleksis/apps/chronos/urls.py | 1 + aleksis/apps/chronos/views.py | 21 +++++++++++++++++-- 3 files changed, 28 insertions(+), 8 deletions(-) diff --git a/aleksis/apps/chronos/templates/chronos/all.html b/aleksis/apps/chronos/templates/chronos/all.html index 443394be..fd9ce0e2 100644 --- a/aleksis/apps/chronos/templates/chronos/all.html +++ b/aleksis/apps/chronos/templates/chronos/all.html @@ -1,10 +1,12 @@ {% extends 'core/base.html' %} +{% load i18n %} + {% block content %} <h3>{% blocktrans %}All timetables{% endblocktrans %}</h3> <div class="row"> <div class="col s12 m4"> - <h4>Lehrkräfte</h4> + <h4>{% blocktrans %}Teachers{% endblocktrans %}</h4> <ul class="collection"> {% for teacher in teachers %} <li class="collection-item avatar"> @@ -17,14 +19,14 @@ </div> <div class="col s12 m4"> - <h4>Klassen</h4> + <h4>{% blocktrans%}Groups{% endblocktrans %}</h4> <ul class="collection"> - {% for class in classes %} + {% for group in groups %} <li class="collection-item avatar"> - <i class="circle">{{ class.name }}</i> - <a href="{% url 'timetable_smart_plan' 'class' class.id %}"><strong>{{ class.name }}</strong></a> + <i class="circle">{{ group.name }}</i> + <a href="{% url 'timetable_smart_plan' 'group' group.id %}"><strong>{{ group.name }}</strong></a> <p> - {{ class.text1|default:"" }} – {{ class.text2|default:"" }} <br> + {{ group.text1|default:"" }} – {{ class.text2|default:"" }} <br> Raum: {{ class.room.name|default:"---" }} </p> </li> diff --git a/aleksis/apps/chronos/urls.py b/aleksis/apps/chronos/urls.py index cf94f08a..e73bdb57 100644 --- a/aleksis/apps/chronos/urls.py +++ b/aleksis/apps/chronos/urls.py @@ -4,6 +4,7 @@ from . import views urlpatterns = [ path("timetable", views.timetable, name="timetable"), + path("all_timetables", views.all, name="all_timetables"), path("timetable/<int:year>/<int:week>", views.timetable, name="timetable_by_week"), path("lessons", views.lessons_day, name="lessons_day"), path("lessons/<when>", views.lessons_day, name="lessons_day_by_date"), diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py index 966dc0b8..70c68e58 100644 --- a/aleksis/apps/chronos/views.py +++ b/aleksis/apps/chronos/views.py @@ -3,7 +3,7 @@ from datetime import date, datetime, timedelta from typing import Optional from django.contrib.auth.decorators import login_required -from django.db.models import Max, Min +from django.db.models import Count, Max, Min from django.http import HttpRequest, HttpResponse from django.shortcuts import get_object_or_404, redirect, render from django.urls import reverse @@ -12,14 +12,31 @@ from django.utils.translation import ugettext as _ from django_tables2 import RequestConfig from aleksis.core.decorators import admin_required +from aleksis.core.models import Person, Group from aleksis.core.util import messages from .forms import LessonSubstitutionForm, SelectForm -from .models import LessonPeriod, LessonSubstitution, TimePeriod +from .models import LessonPeriod, LessonSubstitution, TimePeriod, Room from .tables import LessonsTable, SubstitutionsTable from .util import CalendarWeek +@login_required +def all(request: HttpRequest) -> HttpResponse: + + context = {} + + teachers = Person.objects.annotate(lessons_count=Count("lessons_as_teacher")).filter(lessons_count__gt=0) + groups = Group.objects.annotate(lessons_count=Count("lessons")).filter(lessons_count__gt=0) + rooms = Room.objects.annotate(lessons_count=Count("lesson_periods")).filter(lessons_count__gt=0) + + context['teachers'] = teachers + context['groups'] = groups + context['rooms'] = rooms + + return render(request, 'chronos/all.html', context) + + @login_required def timetable( request: HttpRequest, year: Optional[int] = None, week: Optional[int] = None -- GitLab