2025-03-24 14:34:56 +01:00

66 lines
2.1 KiB
Python

from django.shortcuts import render
from .models import JsonParser
from pruefplan_parser.models import JsonParser
from django.shortcuts import render
from django.contrib.auth.decorators import user_passes_test
from .forms import UploadFileForm
from pruefplan_parser.utils import handle_uploaded_file
from medinf.settings import (
PP_EXAM_FILE,
PP_ATTENDANCE_FILE,
PP_STUDENT_FILE,
PP_SUBJECT_FILE,
PP_TEACHER_FILE,
)
def is_pp_admin(user):
return user.groups.filter(name="PP_ADMIN").exists()
def parse():
parser = JsonParser()
parser.clearTable()
parser.fillLecturerTable()
parser.fillAttendanceTable()
parser.fillSubjectTable()
parser.fillExamTable()
parser.fillStudentExamTable()
@user_passes_test(is_pp_admin)
def clearTable(request):
parser = JsonParser()
parser.clearTable()
return render(request, "pruefplan/clearTable.html")
@user_passes_test(is_pp_admin)
def upload_file(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
print(request.FILES)
handle_uploaded_file(
request.FILES.get("attendance_file"), PP_ATTENDANCE_FILE
)
handle_uploaded_file(request.FILES.get("student_file"), PP_STUDENT_FILE)
handle_uploaded_file(request.FILES.get("exams_file"), PP_EXAM_FILE)
handle_uploaded_file(request.FILES.get("lecturers_file"), PP_TEACHER_FILE)
handle_uploaded_file(request.FILES.get("subjects_file"), PP_SUBJECT_FILE)
parse()
if (
len(JsonParser.exceptionMessages) != 0
or len(JsonParser.warningMessages) != 0
):
context = {
"exceptions": JsonParser.exceptionMessages,
"warnings": JsonParser.warningMessages,
}
return render(request, "pruefplan/exceptionHandling.html", context)
else:
return render(request, "pruefplan/parse.html")
else:
form = UploadFileForm()
return render(request, "pruefplan/upload.html", {"form": form})