Skip to content
Snippets Groups Projects
main.py 2.38 KiB
Newer Older
from typing import Optional

from django.db.models import QuerySet
Jonathan Weth's avatar
Jonathan Weth committed

from tqdm import tqdm
Jonathan Weth's avatar
Jonathan Weth committed
from aleksis.apps.untis.util.mysql.importers.terms import import_terms
Jonathan Weth's avatar
Jonathan Weth committed
from aleksis.apps.untis.util.mysql.util import TQDM_DEFAULTS

from .importers.absences import import_absences
Jonathan Weth's avatar
Jonathan Weth committed
from .importers.common_data import (
    import_absence_reasons,
    import_breaks,
Jonathan Weth's avatar
Jonathan Weth committed
    import_classes,
    import_rooms,
    import_subjects,
Jonathan Weth's avatar
Jonathan Weth committed
    import_supervision_areas,
    import_teachers,
from .importers.events import import_events
from .importers.holidays import import_holidays
from .importers.lessons import import_lessons
from .importers.substitutions import import_substitutions
def untis_import_mysql(terms: Optional[QuerySet] = None):
    # School terms and validity ranges
    validity_ref = import_terms(terms)

Jonathan Weth's avatar
Jonathan Weth committed
    for validity_range in tqdm(
        validity_ref.values(), desc="Import data for terms", **TQDM_DEFAULTS
    ):
        # Common data for Chronos
        subjects_ref = import_subjects(validity_range)
        rooms_ref = import_rooms(validity_range)
        absence_reasons_ref = import_absence_reasons(validity_range)
        # Common data for core
        teachers_ref = import_teachers(validity_range)
        classes_ref = import_classes(validity_range, teachers_ref)
        # Time periods
        time_periods_ref = import_time_periods(validity_range)
        breaks_ref = import_breaks(validity_range, time_periods_ref)
        # Holidays
        holidays_ref = import_holidays(validity_range)
Tom Teichler's avatar
Tom Teichler committed
        supervision_areas_ref = import_supervision_areas(validity_range, breaks_ref, teachers_ref)
Jonathan Weth's avatar
Jonathan Weth committed
        import_lessons(
Tom Teichler's avatar
Tom Teichler committed
            validity_range, time_periods_ref, rooms_ref, subjects_ref, teachers_ref, classes_ref,
Jonathan Weth's avatar
Jonathan Weth committed
        )
Jonathan Weth's avatar
Jonathan Weth committed
        import_absences(
            validity_range,
            absence_reasons_ref,
            time_periods_ref,
            teachers_ref,
            classes_ref,
            rooms_ref,
        )
Jonathan Weth's avatar
Jonathan Weth committed
            validity_range,
            teachers_ref,
            subjects_ref,
            rooms_ref,
            classes_ref,
            supervision_areas_ref,
            time_periods_ref,
Tom Teichler's avatar
Tom Teichler committed
        import_events(validity_range, time_periods_ref, teachers_ref, classes_ref, rooms_ref)