Skip to content
Snippets Groups Projects
Verified Commit 1f2347f4 authored by Jonathan Weth's avatar Jonathan Weth :keyboard:
Browse files

Merge branch 'master' into 84-translate-weekdays

parents 5400880f aa4bd7e8
No related branches found
No related tags found
1 merge request!85Resolve "Translate weekdays"
Pipeline #3858 passed
......@@ -514,7 +514,7 @@ class DateRangeQuerySetMixin:
)
class AbsenceQuerySet(SchoolTermRelatedQuerySet, DateRangeQuerySetMixin):
class AbsenceQuerySet(DateRangeQuerySetMixin, SchoolTermRelatedQuerySet):
"""QuerySet with custom query methods for absences."""
def absent_teachers(self):
......@@ -637,7 +637,7 @@ class TimetableQuerySet(models.QuerySet):
class EventQuerySet(
SchoolTermRelatedQuerySet, DateRangeQuerySetMixin, TimetableQuerySet
DateRangeQuerySetMixin, SchoolTermRelatedQuerySet, TimetableQuerySet
):
"""QuerySet with custom query methods for events."""
......@@ -647,7 +647,7 @@ class EventQuerySet(
class ExtraLessonQuerySet(
SchoolTermRelatedQuerySet, TimetableQuerySet, GroupByPeriodsMixin
TimetableQuerySet, SchoolTermRelatedQuerySet, GroupByPeriodsMixin
):
"""QuerySet with custom query methods for extra lessons."""
......
......@@ -12,8 +12,8 @@ from django.db.models.functions import Coalesce
from django.forms import Media
from django.urls import reverse
from django.utils import timezone
from django.utils.decorators import classproperty
from django.utils.formats import date_format
from django.utils.functional import classproperty
from django.utils.translation import gettext_lazy as _
from cache_memoize import cache_memoize
......@@ -109,7 +109,7 @@ class ValidityRange(ExtensibleModel):
qs = ValidityRange.objects.within_dates(self.date_start, self.date_end)
if self.pk:
qs.exclude(pk=self.pk)
qs = qs.exclude(pk=self.pk)
if qs.exists():
raise ValidationError(
_(
......@@ -205,6 +205,26 @@ class TimePeriod(ValidityRangeRelatedExtensibleModel):
return day
@classmethod
def get_relevant_week_from_datetime(
cls, when: Optional[datetime] = None
) -> CalendarWeek:
"""Return currently relevant week depending on current date and time."""
if not when:
when = timezone.now()
day = when.date()
time = when.time()
week = CalendarWeek.from_date(day)
if cls.weekday_max and day.weekday() > cls.weekday_max:
week += 1
elif cls.time_max and time > cls.time_max and day.weekday() == cls.weekday_max:
week += 1
return week
@classmethod
def get_prev_next_by_day(cls, day: date, url: str) -> Tuple[str, str]:
"""Build URLs for previous/next day."""
......
......@@ -4,8 +4,8 @@
{% elif el.room and el.lesson_period.room %}
{# New and old room available #}
<span class="tooltipped" data-position="bottom"
data-tooltip="{{ el.lesson_period.room.name }} → {{ el.lesson_period.room.name }}"
title="{{ el.lesson_period.room.name }} → {{ el.lesson_period.room.name }}">
data-tooltip="{{ el.lesson_period.room.name }} → {{ el.room.name }}"
title="{{ el.lesson_period.room.name }} → {{ el.room.name }}">
<a href="{% url "timetable" "room" el.lesson_period.room.pk %}">
<s>{{ el.lesson_period.room.short_name }}</s>
</a>
......
......@@ -244,6 +244,10 @@ def build_timetable(
if period in lesson_periods_per_period and not holiday:
col += lesson_periods_per_period[period]
# Add extra lessons
if period in extra_lessons_per_period and not holiday:
col += extra_lessons_per_period[period]
# Add events
if period in events_per_period and not holiday:
col += events_per_period[period]
......
......@@ -126,8 +126,7 @@ def timetable(
if year and week:
wanted_week = CalendarWeek(year=year, week=week)
else:
# TODO: On not used days show next week
wanted_week = CalendarWeek()
wanted_week = TimePeriod.get_relevant_week_from_datetime()
# Build timetable
timetable = build_timetable(type_, el, wanted_week)
......
This diff is collapsed.
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