From 53b23d071be5a64abfa064b629929edb580e49e0 Mon Sep 17 00:00:00 2001 From: Tom Teichler <tom.teichler@teckids.org> Date: Sat, 31 Aug 2019 21:26:40 +0200 Subject: [PATCH] Create django_tables table. --- biscuit/apps/chronos/tables.py | 13 +++++++++++++ .../chronos/templates/chronos/lessons_day.html | 14 ++++++++++++++ biscuit/apps/chronos/views.py | 7 +++++++ 3 files changed, 34 insertions(+) create mode 100644 biscuit/apps/chronos/tables.py create mode 100644 biscuit/apps/chronos/templates/chronos/lessons_day.html diff --git a/biscuit/apps/chronos/tables.py b/biscuit/apps/chronos/tables.py new file mode 100644 index 00000000..f6e541e6 --- /dev/null +++ b/biscuit/apps/chronos/tables.py @@ -0,0 +1,13 @@ +from django.utils.translation import ugettext_lazy as _ +import django_tables2 as tables +from django_tables2.utils import A + +class LessonsTable(tables.Table): + class Meta: + attrs = {'class': 'table table-striped table-bordered table-hover table-responsive-xl'} + + period__period = tables.Column() + lesson__groups = tables.Column() + lesson_teachers = tables.Column() + lesson_subject = tables.Column() + room = tables.Column() diff --git a/biscuit/apps/chronos/templates/chronos/lessons_day.html b/biscuit/apps/chronos/templates/chronos/lessons_day.html new file mode 100644 index 00000000..a0dbd412 --- /dev/null +++ b/biscuit/apps/chronos/templates/chronos/lessons_day.html @@ -0,0 +1,14 @@ +{% extends "core/base.html" %} +{% load bootstrap4 i18n %} +{% load render_table from django_tables2 %} + +{% block page_title %}{% blocktrans %}Lessons{% endblocktrans %}{% endblock %} + +{% block content %} + <h2> + {{ day }} + </h2> + + {% render_table lessons_table %} + +{% endblock %} diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py index 00931349..726530bd 100644 --- a/biscuit/apps/chronos/views.py +++ b/biscuit/apps/chronos/views.py @@ -14,6 +14,7 @@ from biscuit.core.models import Group, Person from .forms import SelectForm from .models import LessonPeriod, TimePeriod, Room from .util import current_week, week_weekday_from_date +from .tables import LessonsTable @login_required @@ -92,11 +93,17 @@ def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpRespons week, weekday = week_weekday_from_date(day) + # Get lessons lesson_periods = LessonPeriod.objects.filter( lesson__date_start__lte=day, lesson__date_end__gte=day, period__weekday=weekday ).all() + # Build table + lesson_table = LessonsTable(lesson_periods) + RequestConfig(request).configure(lesson_table) + + context['lesson_table'] = lesson_table context['day'] = day context['day_prev'] = day + timedelta(days=-1) context['day_next'] = day + timedelta(days=1) -- GitLab