Пример #1
0
    def DateienEinlesen(self, pathUnter: str, pathZuordnung: str):
        dateiUnter = open(pathUnter, "r")
        stunden = dateiUnter.read().splitlines()
        dateiUnter.close()

        dateiZuordnung = open(pathZuordnung, "r")
        zuordnung = dateiZuordnung.read().splitlines()
        dateiZuordnung.close()

        while "" in stunden:
            stunden.remove("")

        stundenListen = []  #2d list
        for element in stunden:
            if element[0] == "U":
                a = element.split(" ")
                while "" in a:
                    a.remove("")
                if "//" in a:  # if \\ in a
                    a = a[:a.index("//")]
                stundenListen.append(a)
        while [] in stundenListen:
            stundenListen.remove([])

        while "" in zuordnung:
            zuordnung.remove("")

        zuordnungListen = []  #2d list
        for element in zuordnung:
            if element[0] == "U":
                a = element.split(" ")
                while "" in a:
                    a.remove("")
                if "//" in a:  # if \\ in a
                    a = a[:a.index("//")]
                zuordnungListen.append(a)
        while [] in zuordnungListen:
            zuordnungListen.remove([])

        dictionary = {}  # ([unter],[zuord])
        for element in stundenListen:
            dictionary[element[0]] = element

        for element in zuordnungListen:
            dictionary[element[0]] = (dictionary[element[0]], element)

        for _, uz in dictionary.items():
            tag = Tools.convertWeekdayGerman(uz[0][1])
            stunde = uz[0][2]
            klasse = uz[1][1]
            lehrer = uz[0][5]
            raum = uz[0][3]
            fach = uz[1][2]

            Stunde(tag, stunde, klasse, lehrer, raum, fach)
Пример #2
0
    def exportierenPDF(self, path, datum):
        font = "Helvetica"

        # basic pdf setup
        #----------------------------------------
        pdf = FPDF()
        pdf.set_font(font, size=12)
        pdf.add_page()
        row_height = pdf.font_size * 1.5
        #----------------------------------------

        # set title
        #----------------------------------------
        datumStr = str(Tools.convertWeekdayGerman(
            datum.dayOfWeek())) + ', ' + str(datum.day()) + '.' + str(
                datum.month()) + '.' + str(datum.year())
        title = "Vertretungsplan von " + datumStr
        pdf.set_font(font, 'B', 14)
        w = pdf.get_string_width(title) + 6
        pdf.set_x((210 - w) / 2)
        pdf.cell(w, 9, txt=title, border=0)
        pdf.ln(10)
        #----------------------------------------

        if datum.Informationen() != "":
            # set info title
            #----------------------------------------
            title = "allgemeine Informationen"
            pdf.set_font(font, '', 12)
            w = pdf.get_string_width(title) + 6
            pdf.set_x(10)
            pdf.cell(w, 9, txt=title, border=0)
            pdf.ln(10)
            #----------------------------------------

            # set info
            #----------------------------------------
            pdf.set_font(font, 'I', 11)
            w = pdf.get_string_width(datum.Informationen()) + 6
            pdf.set_x(10)
            pdf.cell(w, 9, txt=datum.Informationen(), border=1)
            pdf.ln(10)
            pdf.ln(10)
            #----------------------------------------

        # set table
        #----------------------------------------
        # content = [((("str",width),("str",width),("str",width),("str",width),("str",width)),("Art","typ",size)),
        #            ((("str",width),("str",width),("str",width),("str",width),("str",width)),("Art","typ",size))]
        content = []
        t1 = ("Klasse", pdf.get_string_width("Klasse") + 6)
        t2 = ("Std", pdf.get_string_width("Std") + 6)
        t3 = ("Fach", pdf.get_string_width("Fach") + 6)
        t4 = ("Vertretung", pdf.get_string_width("Vertretung") + 6)
        t5 = ("Raum", pdf.get_string_width("Raum") + 6)
        t6 = ("Bemerkung", pdf.w - t1[1] - t2[1] - t3[1] - t4[1] - t5[1] - 20)
        content.append(((t1, t2, t3, t4, t5, t6), (font, 'B', 13)))
        for stunde in Vertretungsstunde.VertretungsstundenListe():
            if stunde.datum == datum:
                klasse = (str(stunde.Klasse()), t1[1])
                stu = (str(stunde.Stunde()), t2[1])
                fach = (str(stunde.Fach()), t3[1])
                lehrer = (str(stunde.Lehrer()), t4[1])
                raum = (str(stunde.Raum()), t5[1])
                bemerkung = (stunde.Bemerkung(), t6[1])
                item = (klasse, stu, fach, lehrer, raum, bemerkung)
                content.append((item, (font, '', 12)))

        for row in content:
            font = row[1][0]
            style = row[1][1]
            size = row[1][2]
            pdf.set_font(font, style, size)
            row_height = pdf.font_size * 1.5
            for item in row[0]:
                pdf.cell(item[1], row_height, txt=item[0], border=1)
            pdf.ln(row_height)
        #----------------------------------------

        pdf.output(path)