Skip to content
Snippets Groups Projects
Commit 29b6c4ca authored by Nik | Klampfradler's avatar Nik | Klampfradler
Browse files

Merge branch '27-assign-rooms-correctly' into 'master'

Resolve "Assign rooms correctly"

Closes #27

See merge request !84
parents db7363a8 7645d34d
No related branches found
No related tags found
1 merge request!84Resolve "Assign rooms correctly"
Pipeline #34035 passed
Pipeline: AlekSIS

#34037

    ...@@ -18,6 +18,7 @@ Fixed ...@@ -18,6 +18,7 @@ Fixed
    ~~~~~ ~~~~~
    * Skip extra lessons without a subject. * Skip extra lessons without a subject.
    * Fix problems with lesson parts without a room and lesson parts with two courses and one teacher in a room.
    `2.0rc2`_ - 2021-07-30 `2.0rc2`_ - 2021-07-30
    ---------------------- ----------------------
    ......
    ...@@ -63,12 +63,16 @@ def import_lessons( ...@@ -63,12 +63,16 @@ def import_lessons(
    for el in raw_time_data_2: for el in raw_time_data_2:
    weekday = int(el[1]) - 1 weekday = int(el[1]) - 1
    hour = int(el[2]) hour = int(el[2])
    room_ids = untis_split_third(el[3], conv=int) room_ids = list(filter(lambda r: r != "", el[3].split(";")))
    # Get rooms # Get rooms
    rooms = [] rooms = []
    for room_id in room_ids: for room_id in room_ids:
    r = rooms_ref[room_id] if room_id and room_id != "0":
    room_id = int(room_id)
    r = rooms_ref[room_id]
    else:
    r = None
    rooms.append(r) rooms.append(r)
    # Get time period # Get time period
    ...@@ -81,6 +85,8 @@ def import_lessons( ...@@ -81,6 +85,8 @@ def import_lessons(
    for el in raw_lesson_data: for el in raw_lesson_data:
    raw_lesson_data_2.append(el.split("~")) raw_lesson_data_2.append(el.split("~"))
    use_room_idx = 0
    current_teacher_id = None
    # All part lessons (courses) # All part lessons (courses)
    for i, el in enumerate(raw_lesson_data_2): for i, el in enumerate(raw_lesson_data_2):
    logger.info(" Lesson part {}".format(i)) logger.info(" Lesson part {}".format(i))
    ...@@ -105,6 +111,9 @@ def import_lessons( ...@@ -105,6 +111,9 @@ def import_lessons(
    logger.warning(_(" Skip because missing subject")) logger.warning(_(" Skip because missing subject"))
    continue continue
    if current_teacher_id and current_teacher_id != teacher_id:
    use_room_idx += 1
    # Get classes # Get classes
    course_classes = [] course_classes = []
    for class_id in class_ids: for class_id in class_ids:
    ...@@ -235,8 +244,8 @@ def import_lessons( ...@@ -235,8 +244,8 @@ def import_lessons(
    # Get room if provided # Get room if provided
    rooms = rooms_per_periods[j] rooms = rooms_per_periods[j]
    if i < len(rooms): if use_room_idx < len(rooms):
    room = rooms[i] room = rooms[use_room_idx]
    else: else:
    room = None room = None
    ...@@ -259,6 +268,8 @@ def import_lessons( ...@@ -259,6 +268,8 @@ def import_lessons(
    ) )
    logger.info(" New time period added") logger.info(" New time period added")
    current_teacher_id = teacher_id
    for lesson in chronos_models.Lesson.objects.filter(validity=validity_range): for lesson in chronos_models.Lesson.objects.filter(validity=validity_range):
    if lesson.lesson_id_untis and lesson.lesson_id_untis not in existing_lessons: if lesson.lesson_id_untis and lesson.lesson_id_untis not in existing_lessons:
    logger.info("Lesson {} deleted".format(lesson.id)) logger.info("Lesson {} deleted".format(lesson.id))
    ......
    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