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