diff --git a/aleksis/apps/chronos/migrations/0001_initial.py b/aleksis/apps/chronos/migrations/0001_initial.py index 28eab760977e1f3290581cf1930a09a1c2ad7fc5..a5273c7889a7d9d4fa9eaeadb0e144f9e9ff1a28 100644 --- a/aleksis/apps/chronos/migrations/0001_initial.py +++ b/aleksis/apps/chronos/migrations/0001_initial.py @@ -4,7 +4,7 @@ import django.core.validators import django.db.models.deletion from django.db import migrations, models -import aleksis.apps.chronos.util.weeks +import aleksis.apps.chronos.util.date import aleksis.core.util.core_helpers @@ -229,7 +229,7 @@ class Migration(migrations.Migration): ( "week", models.IntegerField( - default=aleksis.apps.chronos.util.weeks.CalendarWeek.current_week, + default=aleksis.apps.chronos.util.date.CalendarWeek.current_week, verbose_name="Week", ), ), diff --git a/aleksis/apps/chronos/models.py b/aleksis/apps/chronos/models.py index 0f9c5f9e409b53f15bab8b1e4c4674e4076ab88b..9f3c2fcb17b32d9c915610bd6aaa8b948752ee44 100644 --- a/aleksis/apps/chronos/models.py +++ b/aleksis/apps/chronos/models.py @@ -17,7 +17,7 @@ from calendarweek.django import CalendarWeek, i18n_day_names_lazy, i18n_day_abbr from aleksis.core.mixins import ExtensibleModel from aleksis.core.models import Group, Person -from aleksis.apps.chronos.util.weeks import week_weekday_from_date +from aleksis.apps.chronos.util.date import week_weekday_from_date class LessonPeriodManager(models.Manager): diff --git a/aleksis/apps/chronos/templatetags/week_helpers.py b/aleksis/apps/chronos/templatetags/week_helpers.py index 26dee1e900e84367e8ec4b1efbcdd8c6d298499e..acfb3a3a8859cc50c9e250520d9bcb32f3764ebe 100644 --- a/aleksis/apps/chronos/templatetags/week_helpers.py +++ b/aleksis/apps/chronos/templatetags/week_helpers.py @@ -4,7 +4,7 @@ from typing import Optional, Union from django import template from django.db.models.query import QuerySet -from aleksis.apps.chronos.util.weeks import CalendarWeek, week_period_to_date, week_weekday_to_date +from aleksis.apps.chronos.util.date import CalendarWeek, week_period_to_date, week_weekday_to_date register = template.Library() diff --git a/aleksis/apps/chronos/util/weeks.py b/aleksis/apps/chronos/util/date.py similarity index 54% rename from aleksis/apps/chronos/util/weeks.py rename to aleksis/apps/chronos/util/date.py index 32ec8b81f006d0332b5be8b1502043a1c1806766..a0f5c3b0c59ccc83ef6caef1f5c1117b4ab269a1 100644 --- a/aleksis/apps/chronos/util/weeks.py +++ b/aleksis/apps/chronos/util/date.py @@ -2,6 +2,9 @@ from datetime import date from typing import Tuple, List, Union from calendarweek import CalendarWeek +from calendarweek.django import i18n_day_names +from django.utils import timezone +from django.utils.translation import gettext_lazy as _ def week_weekday_from_date(when: date) -> Tuple[CalendarWeek, int]: @@ -28,3 +31,21 @@ def get_weeks_for_year(year: int) -> List[CalendarWeek]: current_week += 1 return weeks + + +def get_name_for_day_from_today(next_day: date) -> str: + """ + Return the next week day as you would say it from today: "today", "tomorrow" or "<weekday>" + """ + + if next_day == timezone.now().date(): + # Today + date_formatted = _("today") + elif next_day == timezone.now().date() + timezone.timedelta(days=1): + # Tomorrow + date_formatted = _("tomorrow") + else: + # Other weekday + date_formatted = i18n_day_names()[next_day.weekday()] + + return date_formatted diff --git a/aleksis/apps/chronos/views.py b/aleksis/apps/chronos/views.py index 388307c0a01ba3bcde067d456ea41b6348ed1223..b3dedd30fc75c63be1600a76e851fc418b42468e 100644 --- a/aleksis/apps/chronos/views.py +++ b/aleksis/apps/chronos/views.py @@ -20,7 +20,7 @@ from .models import LessonPeriod, LessonSubstitution, TimePeriod, Room from .tables import LessonsTable from .util.js import date_unix from .util.prev_next import get_next_relevant_day, get_prev_next_by_day -from .util.weeks import CalendarWeek, get_weeks_for_year +from .util.date import CalendarWeek, get_weeks_for_year from aleksis.core.util.core_helpers import has_person