Skip to content
Snippets Groups Projects
Unverified Commit fbbf6766 authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Partially fix group week view.

parent b5490863
No related branches found
No related tags found
No related merge requests found
......@@ -18,28 +18,22 @@
{{ group.name }}
</div>
<div class="card-body">
{% regroup lesson_periods by period.weekday_display as periods_by_day %}
{% for weekday, periods in periods_by_day %}
{% for weekday, periods in periods_by_day.items %}
<table class="table table-striped table-bordered table-hover table-responsive-xl">
<caption>{{ weekday }}</caption>
<thead>
<tr>
<th>{% blocktrans %}Period{% endblocktrans %}</th>
<th>{% blocktrans %}Subject{% endblocktrans %}</th>
<th>{% blocktrans %}Teachers{% endblocktrans %}</th>
<th>{% blocktrans %}Topic{% endblocktrans %}</th>
</tr>
</thead>
<tbody>
{% for period in periods %}
<tr>
<td>{{ period.period.period }}</td>
<td>{{ lesson.subject.name }}</td>
<td>{{ lesson.teachers|join:', ' }}</td>
<td>
{% if period.documentations__count %}
{% fa 'fa-check' %}
{% endif}
</td>
<td>{{ period.lesson.subject.name }}</td>
<td>{{ period.lesson.teachers|join:', ' }}</td>
</tr>
{% endfor %}
</tbody>
......
......@@ -7,7 +7,8 @@ from django.shortcuts import render
from django.utils.translation import ugettext as _
from biscuit.apps.chronos.models import Lesson, LessonPeriod
from biscuit.apps.chronos.util import current_lesson_periods, current_week
from biscuit.apps.chronos.util import current_lesson_periods, current_week, week_days
from biscuit.core.models import Group
from .forms import LessonDocumentationForm, PersonalNoteFormSet
from .models import LessonDocumentation, PersonalNote
......@@ -69,9 +70,9 @@ def group_week(request: HttpRequest, week: Optional[int] = None) -> HttpResponse
week_start = week_days(wanted_week)[0]
week_end = week_days(wanted_week)[-1]
if request.GET.get('group_id', None):
if request.GET.get('group', None):
# Use requested group
group = Group.objects.get(pk=request.GET['group_id'])
group = Group.objects.get(pk=request.GET['group'])
elif hasattr(request, 'user') and hasattr(request.user, 'person'):
# Try to select group from owned groups of user
group = request.user.person.owner_of.first()
......@@ -80,20 +81,14 @@ def group_week(request: HttpRequest, week: Optional[int] = None) -> HttpResponse
lesson_periods = LessonPeriod.objects.none()
periods_by_day = {}
if group:
for lesson in group.lessons.filter(date_start__lte=week_start, date_end__gte=week_end):
qs = lesson.periods
# Get number of filled-in documentations
qs.annotate(Count('documentations',
filter=Q(documentations__week=wanted_week,
documentations__topic__regex=r'.+')))
# Combine the lesson periods of all lessons
lesson_periods = lesson.periods.union(lesson_periods)
for lesson_period in lesson.lesson_periods.all():
periods_by_day.setdefault(lesson_period.period.get_weekday_display(), []).append(lesson_period)
context['week'] = wanted_week
context['group'] = group
context['lesson_periods'] = lesson_periods
context['periods_by_day'] = periods_by_day
return render(request, 'alsijil/group_week.html', context)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment