From ae9d7cf47137bc8301fb398cd6d3c5732a0136b8 Mon Sep 17 00:00:00 2001 From: Daniel Egger Date: Tue, 29 Aug 2023 14:38:39 +0200 Subject: [PATCH] Try to fix deadlock import error by lazy loading openpyxl --- server/vbv_lernwelt/core/utils.py | 1 + server/vbv_lernwelt/importer/services.py | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/server/vbv_lernwelt/core/utils.py b/server/vbv_lernwelt/core/utils.py index 75b3e517..e2a012fa 100644 --- a/server/vbv_lernwelt/core/utils.py +++ b/server/vbv_lernwelt/core/utils.py @@ -1,6 +1,7 @@ import json import re +from django.utils.safestring import mark_safe from rest_framework.throttling import UserRateThrottle diff --git a/server/vbv_lernwelt/importer/services.py b/server/vbv_lernwelt/importer/services.py index 912b6145..0677e354 100644 --- a/server/vbv_lernwelt/importer/services.py +++ b/server/vbv_lernwelt/importer/services.py @@ -3,7 +3,6 @@ from typing import Any, Dict, List import structlog from django.utils import timezone -from openpyxl.reader.excel import load_workbook from vbv_lernwelt.assignment.models import AssignmentType from vbv_lernwelt.core.models import User @@ -275,6 +274,8 @@ def import_course_sessions_from_excel( "Basis", "Fahrzeug", ] + from openpyxl.reader.excel import load_workbook + workbook = load_workbook(filename=filename) sheet = workbook["Schulungen Durchführung"] no_course = course is None @@ -521,6 +522,8 @@ def get_uk_course(language: str) -> Course: def import_trainers_from_excel_for_training( filename: str, language="de", course: Course = None ): + from openpyxl.reader.excel import load_workbook + workbook = load_workbook(filename=filename) sheet = workbook["Schulungen Trainer"] @@ -609,6 +612,8 @@ def create_or_update_trainer(course: Course, data: Dict[str, Any], language="de" def import_students_from_excel(filename: str): + from openpyxl.reader.excel import load_workbook + workbook = load_workbook(filename=filename) sheet = workbook.active @@ -671,6 +676,8 @@ def _get_date_of_birth(data: Dict[str, Any]) -> str: def sync_students_from_t2l_excel(filename: str): + from openpyxl.reader.excel import load_workbook + workbook = load_workbook(filename=filename) sheet = workbook.active