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

Add importer for absence reasons

parent 875503b4
No related branches found
No related tags found
1 merge request!13Resolve "Support import from MySQL"
......@@ -72,4 +72,8 @@ chronos_models.SupervisionSubstitution.field(
verbose_name=_("UNTIS import reference"), null=True, blank=True
)
)
chronos_models.AbsenceReason.field(
import_ref_untis=IntegerField(
verbose_name=_("UNTIS import reference"), null=True, blank=True
)
)
......@@ -495,3 +495,51 @@ def import_breaks(
breaks_ref[weekday][next_period] = new_break
return breaks_ref
def import_absence_reasons() -> Dict[int, chronos_models.AbsenceReason]:
""" Import absence reasons """
ref = {}
# Get reasons
reasons = run_default_filter(mysql_models.Absencereason.objects, filter_term=False)
for reason in reasons:
if not reason.name:
logger.error(
"Absence reason ID {}: Cannot import absence reason without short name.".format(
reason.absence_reason_id
)
)
continue
# Build values
short_name = reason.name
name = reason.longname if reason.longname else short_name
import_ref = reason.absence_reason_id
logger.info("Import absence reason {} …".format(short_name))
new_reason, created = chronos_models.AbsenceReason.objects.get_or_create(
import_ref_untis=import_ref,
defaults={"short_name": short_name, "name": name}
)
if created:
logger.info(" New absence reason created")
changed = False
if new_reason.short_name != short_name or new_reason.name != name:
new_reason.short_name = short_name
new_reason.name = name
changed = True
logger.info(" Short name and name updated")
if changed:
new_reason.save()
ref[import_ref] = new_reason
return ref
......@@ -5,7 +5,9 @@ from .importers.common_data import (
import_supervision_areas,
import_teachers,
import_time_periods,
import_breaks)
import_breaks,
import_absence_reasons,
)
from .importers.lessons import import_lessons
from .importers.substitutions import import_substitutions
......@@ -14,6 +16,7 @@ def untis_import_mysql():
# Coomon data for Chronos
subjects_ref = import_subjects()
rooms_ref = import_rooms()
absence_reasons_ref = import_absence_reasons()
# Common data for core
teachers_ref = import_teachers()
......
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