1
0
Fork 0
mirror of https://codeberg.org/Mo8it/AdvLabDB.git synced 2024-11-08 21:21:06 +00:00

Only lower if not None

This commit is contained in:
Mo 2022-09-12 19:20:01 +02:00
parent 19819d7e99
commit b1195fff7f
2 changed files with 18 additions and 16 deletions

View file

@ -6,7 +6,7 @@ from flask import flash
from sqlalchemy import select from sqlalchemy import select
from . import data_dir from . import data_dir
from .exceptions import DataBaseImportException from .exceptions import DatabaseImportException
from .models import ( from .models import (
Appointment, Appointment,
Assistant, Assistant,
@ -42,7 +42,7 @@ def nullable(entry):
def not_nullable(entry): def not_nullable(entry):
if is_null(entry): if is_null(entry):
raise DataBaseImportException("Unnullable entry is NULL!") raise DatabaseImportException("Unnullable entry is NULL!")
return entry.strip() return entry.strip()
@ -54,7 +54,7 @@ def importFromFile(filePath: Path):
db_bk_dir.mkdir(exist_ok=True) db_bk_dir.mkdir(exist_ok=True)
if filePath.name[-4:] != ".txt": if filePath.name[-4:] != ".txt":
raise DataBaseImportException( raise DatabaseImportException(
"The import file has to be a text file with txt extension (.txt at the end of the filename)!" "The import file has to be a text file with txt extension (.txt at the end of the filename)!"
) )
@ -82,7 +82,7 @@ def importFromFile(filePath: Path):
if expectingTable: if expectingTable:
if line[0] != "#": if line[0] != "#":
raise DataBaseImportException(f"Expected a Table name starting with # but got this line: {line}") raise DatabaseImportException(f"Expected a Table name starting with # but got this line: {line}")
expectingTable = False expectingTable = False
tableName = line[1:] tableName = line[1:]
@ -104,7 +104,7 @@ def importFromFile(filePath: Path):
elif tableName == "Appointment": elif tableName == "Appointment":
activeDict = appointments activeDict = appointments
else: else:
raise DataBaseImportException(f"{tableName} is not a valid table name!") raise DatabaseImportException(f"{tableName} is not a valid table name!")
readHeader = True readHeader = True
continue continue
@ -122,7 +122,7 @@ def importFromFile(filePath: Path):
cellsLen = len(cells) cellsLen = len(cells)
if cellsLen != len(activeDict["_header"]): if cellsLen != len(activeDict["_header"]):
raise DataBaseImportException( raise DatabaseImportException(
f"The number of header cells is not equal to the number of row cells in row {cells}!" f"The number of header cells is not equal to the number of row cells in row {cells}!"
) )
@ -134,14 +134,14 @@ def importFromFile(filePath: Path):
flash("Semester...") flash("Semester...")
if len(semesters["label"]) != 1: if len(semesters["label"]) != 1:
raise DataBaseImportException("Only one semester is allowed in an import file!") raise DatabaseImportException("Only one semester is allowed in an import file!")
semesterLabel = not_nullable(semesters["label"][0]) semesterLabel = not_nullable(semesters["label"][0])
semesterYear = int(not_nullable(semesters["year"][0])) semesterYear = int(not_nullable(semesters["year"][0]))
dbSemester = get_first(select(Semester).where(Semester.label == semesterLabel, Semester.year == semesterYear)) dbSemester = get_first(select(Semester).where(Semester.label == semesterLabel, Semester.year == semesterYear))
if dbSemester is None: if dbSemester is None:
raise DataBaseImportException( raise DatabaseImportException(
f"{semesterLabel}{semesterYear} does not exist in the database! Please make sure that you create the semester from the web interface first." f"{semesterLabel}{semesterYear} does not exist in the database! Please make sure that you create the semester from the web interface first."
) )
@ -164,7 +164,7 @@ def importFromFile(filePath: Path):
) )
if dbPart is None: if dbPart is None:
raise DataBaseImportException( raise DatabaseImportException(
f"Part with number {partNumber} and program label {partProgramLabel} does not exist in the database! Please make sure that you create parts from the web interface first." f"Part with number {partNumber} and program label {partProgramLabel} does not exist in the database! Please make sure that you create parts from the web interface first."
) )
@ -179,7 +179,9 @@ def importFromFile(filePath: Path):
first_name = not_nullable(students["first_name"][i]) first_name = not_nullable(students["first_name"][i])
last_name = not_nullable(students["last_name"][i]) last_name = not_nullable(students["last_name"][i])
uni_email = not_nullable(students["uni_email"][i]).lower() uni_email = not_nullable(students["uni_email"][i]).lower()
contact_email = nullable(students["contact_email"][i]).lower() contact_email = nullable(students["contact_email"][i])
if contact_email is not None:
contact_email = contact_email.lower()
bachelor_thesis = nullable(students["bachelor_thesis"][i]) bachelor_thesis = nullable(students["bachelor_thesis"][i])
bachelor_thesis_work_group = nullable(students["bachelor_thesis_work_group"][i]) bachelor_thesis_work_group = nullable(students["bachelor_thesis_work_group"][i])
note = nullable(students["note"][i]) note = nullable(students["note"][i])
@ -277,7 +279,7 @@ def importFromFile(filePath: Path):
if dbExperiment is None: if dbExperiment is None:
# TODO: Check if experimentProgram is None # TODO: Check if experimentProgram is None
raise DataBaseImportException( raise DatabaseImportException(
f"Experiment with number {experimentNumber} and program {experimentProgram} does not exist in the database. Please make sure that experiments are created from the web interface." f"Experiment with number {experimentNumber} and program {experimentProgram} does not exist in the database. Please make sure that experiments are created from the web interface."
) )
@ -288,7 +290,7 @@ def importFromFile(filePath: Path):
) )
if dbSemesterExperiment is None: if dbSemesterExperiment is None:
raise DataBaseImportException( raise DatabaseImportException(
f"No semester experiment exists in the database to the experiment with number {experimentNumber} and program {experimentProgram}. Please make sure that semester experiments are created in the web interface. The problem might be that the experiment was not active while creating a new semester" f"No semester experiment exists in the database to the experiment with number {experimentNumber} and program {experimentProgram}. Please make sure that semester experiments are created in the web interface. The problem might be that the experiment was not active while creating a new semester"
) )
@ -316,7 +318,7 @@ def importFromFile(filePath: Path):
assistant = get_first(select(Assistant).join(User).where(User.email == assistantEmail)) assistant = get_first(select(Assistant).join(User).where(User.email == assistantEmail))
if assistant is None: if assistant is None:
raise DataBaseImportException( raise DatabaseImportException(
f"Assistant with email {assistantEmail} does not exist in the database! Please make sure that you create assistants in the web interface." f"Assistant with email {assistantEmail} does not exist in the database! Please make sure that you create assistants in the web interface."
) )
@ -345,5 +347,5 @@ def importFromFile(filePath: Path):
flash(f"Made a backup of the database after the import at {dest}") flash(f"Made a backup of the database after the import at {dest}")
flash("\nImport done!") flash("\nImport done!", "success")
flash("Please check that everything worked as expected. Restore the database backup otherwise!") flash("Please check that everything worked as expected. Restore the database backup otherwise!", "warning")

View file

@ -6,5 +6,5 @@ class DatabaseException(Exception):
pass pass
class DataBaseImportException(Exception): class DatabaseImportException(Exception):
pass pass