From 7444fc5881cc38666717a5fb08aa0b55b5823e9e Mon Sep 17 00:00:00 2001 From: Dominik George <dominik.george@teckids.org> Date: Thu, 18 Jul 2019 00:36:17 +0200 Subject: [PATCH] Add times and periods as first column. --- biscuit/apps/chronos/models.py | 8 ++++ .../chronos/templates/chronos/tt_week.html | 38 ++++++++++++++++++- biscuit/apps/chronos/views.py | 3 +- 3 files changed, 47 insertions(+), 2 deletions(-) diff --git a/biscuit/apps/chronos/models.py b/biscuit/apps/chronos/models.py index 3b27ed81..b1182497 100644 --- a/biscuit/apps/chronos/models.py +++ b/biscuit/apps/chronos/models.py @@ -24,6 +24,14 @@ class TimePeriod(models.Model): def __str__(self): return '%s, %d. period (%s - %s)' % (self.weekday, self.period, self.time_start, self.time_end) + @classmethod + def get_times_dict(cls): + periods = {} + for period in cls.objects.all(): + periods[period.period] = (period.time_start, period.time_end) + + return periods + class Subject(models.Model): abbrev = models.CharField(verbose_name=_( diff --git a/biscuit/apps/chronos/templates/chronos/tt_week.html b/biscuit/apps/chronos/templates/chronos/tt_week.html index 6bc25000..c07d17de 100644 --- a/biscuit/apps/chronos/templates/chronos/tt_week.html +++ b/biscuit/apps/chronos/templates/chronos/tt_week.html @@ -1,6 +1,6 @@ {# -*- engine:django -*- #} {% extends "core/base.html" %} -{% load bootstrap4 %} +{% load bootstrap4 i18n %} {% block page_title %}Timetable{% endblock %} @@ -9,6 +9,42 @@ {{ filter_descs }} </p> + <div class="float-left"> + <ul class="list-group"> + <li class="list-group-item active"> + {% blocktrans %}Times{% endblocktrans %} + </li> + </ul> + <div class="container"> + {% for num, times in periods.items %} + <div class="row"> + <div class="col-sm"> + <div class="card" style="width: 18rem; {% if lesson.colour_fg %} color: {{ lesson.colour_fg }}; {% endif %} {% if lesson.colour_bg %} background-color: {{ lesson.colour_bg }}; {% endif %}"> + <div class="card-body"> + <div class="row"> + <div class="col-sm"> + <span class="card-title">{{ num }}.</span> + </div> + </div> + <div class="row"> + <div class="col-sm"> + <span class="card-text">{{ times.0}}</span> + </div> + <div class="col-sm"> + <span class="card-text">-</span> + </div> + <div class="col-sm"> + <span class="card-text">{{ times.1 }}</span> + </div> + </div> + </div> + </div> + </div> + </div> + {% endfor %} + </div> + </div> + {% for weekday, lesson_periods_day in lesson_periods.items %} {% include "chronos/tt_day.html" with lesson_periods=lesson_periods_day %} {% endfor %} diff --git a/biscuit/apps/chronos/views.py b/biscuit/apps/chronos/views.py index e52840d8..776f7e92 100644 --- a/biscuit/apps/chronos/views.py +++ b/biscuit/apps/chronos/views.py @@ -8,7 +8,7 @@ from biscuit.apps.cambro.models import Room from biscuit.core.decorators import admin_required from biscuit.core.models import Group, Person -from .models import LessonPeriod +from .models import LessonPeriod, TimePeriod @login_required @@ -42,5 +42,6 @@ def timetable(request): context['lesson_periods'] = OrderedDict(sorted(per_day.items())) context['filter_descs'] = ', '.join(filter_descs) + context['periods'] = TimePeriod.get_times_dict() return render(request, 'chronos/tt_week.html', context) -- GitLab