Files
UCS_Import_Python/main.py
2024-02-15 09:04:12 +01:00

82 lines
3.3 KiB
Python

########################################
# -- Python Script für UCS Import -- #
# -- by Patrick vom Hagen 2024 -- #
########################################
###############################################################
# IMPORT - standard Python imports für benötigte Bibliotheken #
from src import step1
import pandas as pd # pandas für Datenmanagement
import chardet # chardet erkennt Formatierung - Umwandlung des erkannten Formats in UTF-8
import csv # zur Verarbeitung von .csv Dateien
import uuid # zur Generierung von neuen UUIDs
#############################
# Flags / globale Variablen #
del_zeros = False # Boolean, ob führende Nullen bei Klassen entfernt werden sollen
get_typos = False # Boolean, ob geringe Unterschiede zwischen den Listen ausgegeben werden sollen
test_user = [] # Array in dem Spezialuser gespeichert und wieder eingefügt werden
school_id = 'HL' # HL-Tag für Klassen
ox_context = 0 # OX Context pro Schule
mail_quota_lul = 2048 # MailUserQuota LuL
ox_quota_lul = 20480 # oxUserQuota LuL
mail_quota_sus = 1024 # MailUserQuota SuS
ox_quota_sus = 5120 # oxUserQuota LuL
#######################
# MAIN FUNCTION START #
if __name__ == "__main__":
print("Schul-IT UCS-Import Tool:")
# ----------------------------------------------------------------- #
# Step 1 - Dateien wählen, formatieren, einlesen | Variablen setzen #
# ToDo Daten mit UI einlesen
# lehrer_liste_neu = "./Data/SaM/export_lehrer_SaM.csv"
lehrer_liste_neu = "./Data/Test/export_lehrer_202402121146.CSV"
lehrer_liste_system = "./Data/SaM/sys_lehrer_SaM.csv"
schueler_liste_neu = "./Data/SaM/export_schueler_SaM.csv"
schueler_liste_system = "./Data/SaM/sys_schueler_SaM.csv"
# Variablen füllen:
# school_id = "HL070" + input("Schul-ID eingeben HL070:")
# ox_context = input("OX-Context der Schule eingeben:")
# if input("Klassen mit führenden Nullen? (y/n) ").lower() == "y":
# del_zeros = False
# else:
# del_zeros = True
#
# print("Schul ID:", school_id, "OX-Context:", ox_context, "Nullen:", del_zeros)
lul_new = step1.check_export_file(lehrer_liste_neu)
print("Spalten der Import Liste - Lehrer:", lul_new.columns)
lul_sys = step1.create_dataframe_system(lehrer_liste_system)
sus_new = step1.check_export_file(schueler_liste_neu)
print("Spalten der Import Liste - Schüler:", sus_new.columns)
sus_sys = step1.create_dataframe_system(schueler_liste_system)
# Test- und Funktionsuser auslagern
keywords = 'Test'
lul_testuser_df = step1.extract_testusers(lul_sys, keywords)
#sus_testuser_df = step1.extract_testusers(sus_sys, keywords)
# print(lul_testuser_df)
# in Datasets aufteilen - Testuser, Abgleich, UUIDs
# ---------------------------------------------------- #
# Step 2 - auf name, vorname reduzieren und abgleichen #
# 2.1 Data Frames für Abgleich erstellen
# 2.2 Datei mit gesamten Anzahlen generieren und füllen
# 2.3 Nicht zuordnungsbare bzw. neue Einträge nach Abweichung zur Bestandsliste prüfen und ausgeben
# UUIDs zwischenspeichern?
# Step 3 - Import Data generieren - klasse, uuids, weiteres in einer Liste zusammenführen