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

Merge get_prev_relevant_day to get_next_relevant_day by adding an extra attribute "prev"

parent 6648d720
No related branches found
No related tags found
1 merge request!31Biscuit merge. Closes #53.
......@@ -7,39 +7,30 @@ from django.utils import timezone
from aleksis.apps.chronos.util.min_max import weekday_min_, weekday_max, time_max
def get_next_relevant_day(day: Optional[date] = None, time: Optional[time] = None) -> date:
""" Returns next day with lessons depending on date and time """
def get_next_relevant_day(day: Optional[date] = None, time: Optional[time] = None, prev: bool = False) -> date:
""" Returns next (previous) day with lessons depending on date and time """
if day is None:
day = timezone.now().date()
if time is not None:
if time is not None and not prev:
if time > time_max:
day += timedelta(days=1)
cw = CalendarWeek.from_date(day)
if day.weekday() > weekday_max:
cw += 1
day = cw[weekday_min_]
if prev:
day = cw[weekday_max]
else:
cw += 1
day = cw[weekday_min_]
elif day.weekday() < weekday_min_:
day = cw[weekday_min_]
if prev:
cw -= 1
day = cw[weekday_max]
else:
day = cw[weekday_min_]
return day
def get_prev_relevant_day(day: Optional[date] = None) -> date:
""" Returns previous day with lessons depending on date """
if day is None:
day = timezone.now().date()
cw = CalendarWeek.from_date(day)
if day.weekday() > weekday_max:
day = cw[weekday_max]
elif day.weekday() < weekday_min_:
cw -= 1
day = cw[weekday_max]
return day
......@@ -23,14 +23,14 @@ from .util.min_max import (
weekday_min_,
weekday_max
)
from .util.prev_next import get_prev_relevant_day, get_next_relevant_day
from .util.prev_next import get_next_relevant_day
from .util.weeks import CalendarWeek, get_weeks_for_year
def get_prev_next_by_day(day: date, url: str) -> Tuple[str, str]:
""" Build URLs for previous/next day """
day_prev = get_prev_relevant_day(day - timedelta(days=1))
day_prev = get_next_relevant_day(day - timedelta(days=1), prev=True)
day_next = get_next_relevant_day(day + timedelta(days=1))
url_prev = reverse(url, args=[day_prev.year, day_prev.month, day_prev.day])
......
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