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 ...@@ -6,7 +6,7 @@ from .... import models as mysql_models
from ..util import ( from ..util import (
run_default_filter, run_default_filter,
get_term, get_term,
untis_date_to_date, untis_date_to_date, move_weekday_to_range, get_first_period, get_last_period,
) )
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
...@@ -52,21 +52,12 @@ def import_absences( ...@@ -52,21 +52,12 @@ def import_absences(
weekday_to = date_to.weekday() weekday_to = date_to.weekday()
# Check min/max weekdays # Check min/max weekdays
first_weekday = sorted(time_periods_ref.keys())[0] weekday_from = move_weekday_to_range(time_periods_ref, weekday_from)
last_weekday = sorted(time_periods_ref.keys())[-1] weekday_to = move_weekday_to_range(time_periods_ref, weekday_to)
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
# Check min/max periods # Check min/max periods
first_period = sorted(time_periods_ref[first_weekday].keys())[0] first_period = get_first_period(time_periods_ref, weekday_from)
last_period = sorted(time_periods_ref[first_weekday].keys())[-1] last_period = get_last_period(time_periods_ref, weekday_from)
if period_from == 0: if period_from == 0:
period_from = first_period period_from = first_period
......
...@@ -147,3 +147,36 @@ def connect_untis_fields(obj: Model, attr: str, limit: int) -> List[str]: ...@@ -147,3 +147,36 @@ def connect_untis_fields(obj: Model, attr: str, limit: int) -> List[str]:
all_data += data all_data += data
return all_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