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

[Week view] Show this or next week depending on date and time

parent 5d161253
No related branches found
No related tags found
1 merge request!88Resolve "Go to next week if current day is out of range (weekly timetable view)"
Pipeline #3703 passed
This commit is part of merge request !88. Comments created here will be created in the context of that merge request.
......@@ -201,6 +201,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."""
......
......@@ -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)
......
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