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

Fill empty periods each ay.

parent 29f95fd4
No related branches found
No related tags found
No related merge requests found
<div class="col-sm"> <div class="col-sm">
<ul class="list-group"> <ul class="list-group">
<li class="list-group-item active"> <li class="list-group-item active">
{{ lesson_periods.0.period.get_weekday_display }} {{ weekday_name }}
</li> </li>
</ul> </ul>
<div class="container"> <div class="container">
{% for lesson_period in lesson_periods %} {% for period_num, lesson_period in lesson_periods.items %}
<div class="row"> <div class="row">
<div class="col-sm"> <div class="col-sm">
{% include "chronos/tt_lesson.html" with lesson_period=lesson_period %} {% include "chronos/tt_lesson.html" with lesson_period=lesson_period %}
......
...@@ -47,7 +47,7 @@ ...@@ -47,7 +47,7 @@
</div> </div>
{% for weekday, lesson_periods_day in lesson_periods.items %} {% for weekday, lesson_periods_day in lesson_periods.items %}
{% include "chronos/tt_day.html" with lesson_periods=lesson_periods_day %} {% include "chronos/tt_day.html" with weekday_name=weekdays.weekday lesson_periods=lesson_periods_day %}
{% endfor %} {% endfor %}
</div> </div>
{% endblock %} {% endblock %}
...@@ -36,17 +36,35 @@ def timetable(request): ...@@ -36,17 +36,35 @@ def timetable(request):
pk=int(request.GET['room'])).name) pk=int(request.GET['room'])).name)
per_day = {} per_day = {}
period_min, period_max = None, None
for lesson_period in lesson_periods: for lesson_period in lesson_periods:
per_day.setdefault(lesson_period.period.weekday, per_day.setdefault(lesson_period.period.weekday,
[]).append(lesson_period) {})[lesson_period.period.period] = lesson_period
# Fill in weekdays without lessons (to get a compet timetable) # Expand min and max lesson to later fill in empty lessons
if period_min is None or period_min > lesson_period.period.period:
period_min = lesson_period.period.period
if period_max is None or period_max < lesson_period.period.period:
period_max = lesson_period.period.period
# Fill in empty lessons
for weekday_num in range(min(per_day.keys()), max(per_day.keys()) + 1): for weekday_num in range(min(per_day.keys()), max(per_day.keys()) + 1):
# Fill in empty weekdays
if weekday_num not in per_day.keys(): if weekday_num not in per_day.keys():
per_day[weekday_num] = [] per_day[weekday_num] = {}
# Fill in empty lessons on this workday
for period_num in range(period_min, period_max + 1):
if period_num not in per_day[weekday_num].keys():
per_day[weekday_num][period_num] = None
# Order this weekday by periods
per_day[weekday_num] = OrderedDict(
sorted(per_day[weekday_num].items()))
context['lesson_periods'] = OrderedDict(sorted(per_day.items())) context['lesson_periods'] = OrderedDict(sorted(per_day.items()))
context['filter_descs'] = ', '.join(filter_descs) context['filter_descs'] = ', '.join(filter_descs)
context['periods'] = TimePeriod.get_times_dict() context['periods'] = TimePeriod.get_times_dict()
context['weekdays'] = dict(TimePeriod.WEEKDAY_CHOICES)
return render(request, 'chronos/tt_week.html', context) return render(request, 'chronos/tt_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