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

Move util code for getting first/last weekdays/periods to util.py

parent 3fe94035
No related branches found
No related tags found
1 merge request!13Resolve "Support import from MySQL"
......@@ -6,7 +6,7 @@ from .... import models as mysql_models
from ..util import (
run_default_filter,
get_term,
untis_date_to_date,
untis_date_to_date, move_weekday_to_range, get_first_period, get_last_period,
)
logger = logging.getLogger(__name__)
......@@ -52,21 +52,12 @@ def import_absences(
weekday_to = date_to.weekday()
# Check min/max weekdays
first_weekday = sorted(time_periods_ref.keys())[0]
last_weekday = sorted(time_periods_ref.keys())[-1]
if weekday_from < first_weekday:
weekday_from = first_weekday
if weekday_from > last_weekday:
weekday_from = last_weekday
if weekday_to < first_weekday:
weekday_to = first_weekday
if weekday_to > last_weekday:
weekday_to = last_weekday
weekday_from = move_weekday_to_range(time_periods_ref, weekday_from)
weekday_to = move_weekday_to_range(time_periods_ref, weekday_to)
# Check min/max periods
first_period = sorted(time_periods_ref[first_weekday].keys())[0]
last_period = sorted(time_periods_ref[first_weekday].keys())[-1]
first_period = get_first_period(time_periods_ref, weekday_from)
last_period = get_last_period(time_periods_ref, weekday_from)
if period_from == 0:
period_from = first_period
......
......@@ -147,3 +147,36 @@ def connect_untis_fields(obj: Model, attr: str, limit: int) -> List[str]:
all_data += data
return all_data
def get_first_weekday(time_periods_ref: dict) -> int:
""" Get first weekday from time periods reference """
return sorted(time_periods_ref.keys())[0]
def get_last_weekday(time_periods_ref: dict) -> int:
""" Get last weekday from time periods reference """
return sorted(time_periods_ref.keys())[-1]
def get_first_period(time_periods_ref: dict, weekday: int) -> int:
""" Get first period on a weekday from time periods reference """
return sorted(time_periods_ref[weekday].keys())[0]
def get_last_period(time_periods_ref: dict, weekday: int) -> int:
""" Get last period an a weekday from time periods reference """
return sorted(time_periods_ref[weekday].keys())[-1]
def move_weekday_to_range(time_periods_ref: dict, weekday: int) -> int:
""" Move weekday values into school week (e. g. saturday to friday) """
first_weekday = get_first_weekday(time_periods_ref)
last_weekday = get_last_weekday(time_periods_ref)
if weekday < first_weekday:
weekday = first_weekday
if weekday > last_weekday:
weekday = last_weekday
return weekday
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