65 lines
2.5 KiB
Python
65 lines
2.5 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/test_new.csv"
|
|
lehrer_liste_system = "./Data/test.csv"
|
|
|
|
schueler_liste_neu = "./Data/test_new.csv"
|
|
schueler_liste_system = "./Data/test.csv"
|
|
|
|
# Variablen füllen:
|
|
school_id = input("Schul-ID eingeben (Format: 'HL070XXXX):")
|
|
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
|
|
|
|
# step1.check_file()
|
|
|
|
# ---------------------------------------------------- #
|
|
# 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
|