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})