Skip to content
Snippets Groups Projects
Unverified Commit 08ff6b8a authored by Tom Teichler's avatar Tom Teichler :beers:
Browse files

Add view for all lessons on a day. Advances #19.

parent ee3d39a0
No related branches found
No related tags found
1 merge request!5WIP: Add view for all lessons on a day. Advances #19.
...@@ -11,6 +11,11 @@ MENUS = { ...@@ -11,6 +11,11 @@ MENUS = {
'name': _('Timetable'), 'name': _('Timetable'),
'url': 'timetable', 'url': 'timetable',
'validators': ['menu_generator.validators.is_authenticated', 'menu_generator.validators.is_superuser'] 'validators': ['menu_generator.validators.is_authenticated', 'menu_generator.validators.is_superuser']
},
{
'name': _('Lessons'),
'url': 'lessons',
'validators': ['menu_generator.validators.is_authenticated', 'menu_generator.validators.is_superuser']
} }
] ]
} }
......
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'}
subject = tables.LinkColumn('substitution_by_id', args=[A('id')])
teachers = tables.LinkColumn('substitution_by_id', args=[A('id')])
periods = tables.LinkColumn('substitution_by_id', args=[A('id')])
groups = tables.LinkColumn('substitution_by_id', args=[A('id')])
{% extends "core/base.html" %}
{% load bootstrap4 i18n %}
{% load render_table from django_tables2 %}
{% block page_title %}{% blocktrans %}Lessons{% endblocktrans %}{% endblock %}
{% block content %}
<h2>
{% blocktrans %}List of all Lessons{% endblocktrans %}
</h2>
{% render_table lessons_table %}
{% endblock %}
...@@ -5,4 +5,5 @@ from . import views ...@@ -5,4 +5,5 @@ from . import views
urlpatterns = [ urlpatterns = [
path('timetable', views.timetable, name='timetable'), path('timetable', views.timetable, name='timetable'),
path('lessons', views.lessons, name='lessons'),
] ]
from collections import OrderedDict from collections import OrderedDict
from datetime import datetime
from django.contrib.auth.decorators import login_required from django.contrib.auth.decorators import login_required
from django.http import HttpRequest, HttpResponse from django.http import HttpRequest, HttpResponse
...@@ -11,6 +12,7 @@ from biscuit.core.models import Group, Person ...@@ -11,6 +12,7 @@ from biscuit.core.models import Group, Person
from .models import LessonPeriod, TimePeriod, Room from .models import LessonPeriod, TimePeriod, Room
from .util import current_week from .util import current_week
from .tables import LessonsTable
@login_required @login_required
...@@ -78,3 +80,19 @@ def timetable(request: HttpRequest) -> HttpResponse: ...@@ -78,3 +80,19 @@ def timetable(request: HttpRequest) -> HttpResponse:
context['current_week'] = current_week() context['current_week'] = current_week()
return render(request, 'chronos/tt_week.html', context) return render(request, 'chronos/tt_week.html', context)
@login_required
@admin_required
def lessons(request: HttpRequest) -> HttpResponse:
context = {}
today = datetime.today()
lessons = Lesson.objects.filter(date_start=today)
# Build table
lessons_table = LessonsTable(lessons)
RequestConfig(request).configure(lessons_table)
context['lessons_table'] = lessons_table
return render(request, 'chronos/lessons.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