import os, sys
from configparser import ConfigParser


# 1. Python-Module einbinden
sys.path.append(os.path.abspath("./modules"))
import schild, reveal, pdf


# 2. Konfigurationsdatei einlesen
inputpath = "../input/"
outputpath = "../output/"

if (not(os.path.exists(inputpath))):
    print("Eingabeverzeichnis input/ existiert nicht, verarbeite beispielinput/ ...")
    inputpath = "../beispielinput/"
    if (not(os.path.exists(inputpath))):
        print("Eingabeverzeichnis beispielinput/ existiert ebenfalls nicht.")
        exit(0)
else:
    print("Verarbeite Eingabeverzeichnis input/ ...")

inputs_file = inputpath+"config.ini"
if (not(os.path.exists(inputs_file))):
    print(inputs_file+" nicht vorhanden!")
    exit(0)
inputs = ConfigParser()
inputs.read(inputs_file) 


# 3. Konfiguration einlesen
try:
    schuljahr = int(inputs["Allgemein"]["schuljahr"])
    halbjahr = int(inputs["Allgemein"]["halbjahr"])
except KeyError:
    print('Der Schlüssel Allgemein oder "schuljahr/halbjahr" existiert nicht in der Input-Datei!')
    exit(0)


# 4. Verarbeitung anstoßen
print("Lese die Daten ein...")
alleklassen, klassenschueler, allekurse, alleabschnitte, epochen = schild.liesDaten(inputpath, schuljahr, halbjahr, inputs)

print("Erzeuge HTML-Folien...")
reveal.erzeugeHTMLSeite(outputpath,
                        alleklassen, klassenschueler, allekurse, alleabschnitte, epochen, 
                        schuljahr, halbjahr, inputs)

print("Erzeuge PDF-Ausdruck in Farbe...")
pdf.erzeugePDFAusdruck(outputpath, alleklassen, klassenschueler, allekurse, alleabschnitte, epochen, schuljahr, halbjahr, inputs, True)

print("Erzeuge PDF-Ausdruck in SW...")
pdf.erzeugePDFAusdruck(outputpath, alleklassen, klassenschueler, allekurse, alleabschnitte, epochen, schuljahr, halbjahr, inputs, False)

print("Erzeuge PDF-Notenübersichten für die SI...")
pdf.erzeugePDFÜbersichtSI(outputpath, alleklassen, klassenschueler, allekurse, alleabschnitte, epochen, schuljahr, halbjahr, inputs)

print("Fertig!")