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

Merge branch 'issue01' into 'master'

Add templates for timetable. Advances #1.

See merge request Teckids/BiscuIT/BiscuIT-App-Chronos!1
parents 0d709137 1c59e331
No related branches found
No related tags found
1 merge request!1Add templates for timetable. Advances #1.
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
# Distribution / packaging
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib/
lib64/
parts/
sdist/
var/
wheels/
*.egg-info/
.installed.cfg
*.egg
# Installer logs
pip-log.txt
pip-delete-this-directory.txt
# Translations
*.mo
*.pot
# Django stuff:
*.log
local_settings.py
# pyenv
.python-version
# Environments
.env
.venv
env/
venv/
ENV/
# Editors
*~
DEADJOE
\#*#
# Database
db.sqlite3
......@@ -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=_(
......
<div class="col-sm">
<ul class="list-group">
<li class="list-group-item active">
{{ lesson_periods.0.period.get_weekday_display }}
</li>
</ul>
<div class="container">
{% for lesson_period in lesson_periods %}
<div class="row">
<div class="col-sm">
{% include "chronos/tt_lesson.html" with lesson_period=lesson_period %}
</div>
</div>
{% endfor %}
</div>
</div>
<div class="card chronos-lesson"
style="
{% if lesson_period.lesson.subject.colour_fg %}
color: {{ lesson_period.lesson.subject.colour_fg }};
{% endif %}
{% if lesson_period.lesson.subject.colour_bg %}
background-color: {{ lesson_period.lesson.subject.colour_bg }};
{% endif %}
">
<div class="card-body">
<div class="row">
<div class="col-sm">
<span class="card-title">{{ lesson_period.lesson.subject.abbrev }}</span>
</div>
</div>
<div class="row">
<div class="col-sm">
{% for group in lesson_period.lesson.groups.all %}
<span class="card-text">{{ group.short_name }}</span>
{% endfor %}
</div>
<div class="col-sm">
{% for teacher in lesson_period.lesson.teachers.all %}
<span class="card-text">{{ teacher.short_name }}</span>
{% endfor %}
</div>
<div class="col-sm">
<span class="card-text">{{ lesson_period.room.short_name }}</span>
</div>
</div>
</div>
</div>
{# -*- engine:django -*- #}
{% extends "core/base.html" %}
{% load bootstrap4 i18n %}
{% block page_title %}Timetable{% endblock %}
{% block content %}
<p>
{{ filter_descs }}
</p>
<div class="row">
<div class="col-sm">
<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 chronos-lesson">
<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 %}
</div>
{% endblock %}
\ No newline at end of file
from collections import OrderedDict
from django.contrib.auth.decorators import login_required
from django.shortcuts import render
from django.utils.translation import gettext_lazy as _
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, TimePeriod
@login_required
@admin_required
def timetable(request):
pass
context = {}
lesson_periods = LessonPeriod.objects.all()
filter_descs = []
if 'group' in request.GET:
lesson_periods = lesson_periods.filter(
lesson__groups__pk__contains=int(request.GET['group']))
filter_descs.append(_('Group: %s') % Group.objects.get(
pk=int(request.GET['group'])).name)
if 'teacher' in request.GET:
lesson_periods = lesson_periods.filter(
lesson__teachers__pk__contains=int(request.GET['teacher']))
filter_descs.append(_('Teacher: %s') % Person.objects.get(
pk=int(request.GET['teacher'])).name)
if 'room' in request.GET:
lesson_periods = lesson_periods.filter(
room__pk=int(request.GET['room']))
filter_descs.append(_('Room: %s') % Room.objects.get(
pk=int(request.GET['room'])).name)
per_day = {}
for lesson_period in lesson_periods:
per_day.setdefault(lesson_period.period.weekday,
[]).append(lesson_period)
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)
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