From 2102352dafa63c5d8f4981cd05e50e94010ac04a Mon Sep 17 00:00:00 2001 From: Jonathan Weth <git@jonathanweth.de> Date: Sun, 9 Feb 2020 15:35:03 +0100 Subject: [PATCH] Rename util/weeks.py to util/date.py and add function which return the name for a day from today --- .../apps/chronos/migrations/0001_initial.py | 4 ++-- aleksis/apps/chronos/models.py | 2 +- .../apps/chronos/templatetags/week_helpers.py | 2 +- .../apps/chronos/util/{weeks.py => date.py} | 21 +++++++++++++++++++ aleksis/apps/chronos/views.py | 2 +- 5 files changed, 26 insertions(+), 5 deletions(-) rename aleksis/apps/chronos/util/{weeks.py => date.py} (54%) diff --git a/aleksis/apps/chronos/migrations/0001_initial.py b/aleksis/apps/chronos/migrations/0001_initial.py index 28eab760..a5273c78 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 0f9c5f9e..9f3c2fcb 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 26dee1e9..acfb3a3a 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 32ec8b81..a0f5c3b0 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 388307c0..b3dedd30 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 -- GitLab