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

Add function to get lessons on date. Advances #33, #34.

parent 6c73fa33
No related branches found
No related tags found
No related merge requests found
from datetime import datetime, timedelta
from datetime import date, datetime, timedelta
from typing import Dict, Optional, Tuple
from django.core import validators
......@@ -10,7 +10,7 @@ from django.utils.translation import ugettext_lazy as _
from biscuit.core.mixins import SchoolRelated
from .util import CalendarWeek
from .util import CalendarWeek, week_weekday_from_date
class LessonPeriodManager(models.Manager):
......@@ -37,6 +37,16 @@ class LessonPeriodQuerySet(models.QuerySet):
select={'_week': wanted_week.week}
)
def on_day(self, day: date):
week, weekday = week_weekday_from_date(day)
return self.filter(
lesson__date_start__lte=day, lesson__date_end__gte=day,
period__weekday=weekday
).extra(
select={'_week': week.week}
)
def filter_group(self, group: int):
return self.filter(
Q(lesson__groups__pk=group) | Q(lesson__groups__parent_groups__pk=group))
......
......@@ -16,7 +16,7 @@ from biscuit.core.util import messages
from .forms import SelectForm, LessonSubstitutionForm
from .models import LessonPeriod, TimePeriod, LessonSubstitution
from .util import CalendarWeek, week_weekday_from_date
from .util import CalendarWeek
from .tables import LessonsTable
......@@ -97,22 +97,16 @@ def lessons_day(request: HttpRequest, when: Optional[str] = None) -> HttpRespons
else:
day = date.today()
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
)
lesson_periods = LessonPeriod.objects.on_day(day)
# Build table
lessons_table = LessonsTable(lesson_periods.extra(select={'_week': week.week}).all())
lessons_table = LessonsTable(lesson_periods.all())
RequestConfig(request).configure(lessons_table)
context['current_head'] = _('Lessons %s') % (day)
context['lessons_table'] = lessons_table
context['day'] = day
context['week'] = week
context['lesson_periods'] = lesson_periods
day_prev = day - timedelta(days=1)
......
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