diff --git a/src/devices/a4.css b/src/devices/a4.css index 864d80b..06bb91d 100644 --- a/src/devices/a4.css +++ b/src/devices/a4.css @@ -5,3 +5,7 @@ margin-top: 0.25cm; margin-bottom: 0.25cm; } + +@import url("devices/css/general.css"); + +@import url("devices/css/color.css"); \ No newline at end of file diff --git a/src/devices/a4.ini b/src/devices/a4.ini index 71e6f74..e5c627e 100644 --- a/src/devices/a4.ini +++ b/src/devices/a4.ini @@ -1,30 +1,31 @@ [Navigation] +# Navigationsleiste auch auf Klassen- und Kursseiten einblenden: ja, nein +navileiste = ja + # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal bezeichnung = normal + [Korrekturbogen] # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... anzahl_aufgaben = 6 + [SoMiNoten] # Anzahl der SoMi-Noten-Spalten anzahl_noten = 16 + [Hausaufgaben] # Anzahl der HA-Noten-Spalten anzahl_ha = 10 -# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ... -umschalten_kleinschrift = 30 [Checkliste] # Anzahl der Check-Spalten anzahl_checks = 10 - -# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ... -umschalten_kleinschrift = 30 diff --git a/src/devices/css/color.css b/src/devices/css/color.css new file mode 100644 index 0000000..a060d68 --- /dev/null +++ b/src/devices/css/color.css @@ -0,0 +1,35 @@ +.n0 { + background-color: lightgrey; +} + +.n1, .h1, .t1 { + background-color: lightpink; +} + +.n2, .h2, .t2 { + background-color: powderblue; +} + +.n3, .h3, .t3 { + background-color: lightgreen; +} + +.n4, .h4, .t4 { + background-color: peachpuff; +} + +.n5, .h5, .t5 { + background-color: lavender; +} + +.n6, .h6, .t6 { + background-color: lemonchiffon; +} + +.n7, .h7, .t7 { + background-color: darkseagreen; +} + +.n8, .h8, .t8 { + background-color: cadetblue; +} diff --git a/src/devices/general.css b/src/devices/css/general.css similarity index 97% rename from src/devices/general.css rename to src/devices/css/general.css index 5637560..8658c6b 100644 --- a/src/devices/general.css +++ b/src/devices/css/general.css @@ -44,12 +44,6 @@ table.lerngruppen td.home { font-size: 100%; border: none; } -td.group { - background-color: white; -} -td.current { - background-color: lightgrey; -} /* Überschriftszeile mit Icon-Symbolen */ @@ -107,7 +101,6 @@ table.timetable tr { } table.timetable a { text-decoration: none; - background-color: #f2f2f2; color: black; } th.stunde, td.stunde { diff --git a/src/devices/css/sw.css b/src/devices/css/sw.css new file mode 100644 index 0000000..935e817 --- /dev/null +++ b/src/devices/css/sw.css @@ -0,0 +1,13 @@ + +/* SW-Konzept: keine Farben in Navileiste, Überschrift, Stundenplan */ + +td.group { + background-color: white; /* keine Einfärbung */ +} +td.current { + background-color: lightgrey; /* aktiv = schwach grau hinterlegt */ +} + +table.timetable a { + background-color: #f2f2f2; /* Links = leicht grau hinterlegt */ +} diff --git a/src/devices/paperpro.css b/src/devices/paperpro.css index 2b9f233..b76acc4 100644 --- a/src/devices/paperpro.css +++ b/src/devices/paperpro.css @@ -5,3 +5,8 @@ margin-top: 0.25cm; margin-bottom: 0.25cm; } + +@import url("devices/css/general.css"); + +@import url("devices/css/color.css"); + diff --git a/src/devices/paperpro.ini b/src/devices/paperpro.ini index edb5bc1..b19d4df 100644 --- a/src/devices/paperpro.ini +++ b/src/devices/paperpro.ini @@ -1,30 +1,31 @@ [Navigation] +# Navigationsleiste auch auf Klassen- und Kursseiten einblenden: ja, nein +navileiste = ja + # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal bezeichnung = kurz + [Korrekturbogen] # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... anzahl_aufgaben = 5 + [SoMiNoten] # Anzahl der SoMi-Noten-Spalten anzahl_noten = 15 + [Hausaufgaben] # Anzahl der HA-Noten-Spalten anzahl_ha = 9 -# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ... -umschalten_kleinschrift = 24 [Checkliste] # Anzahl der Check-Spalten anzahl_checks = 9 - -# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ... -umschalten_kleinschrift = 22 \ No newline at end of file diff --git a/src/devices/rm2.css b/src/devices/rm2.css index 2c417e1..3a851d4 100644 --- a/src/devices/rm2.css +++ b/src/devices/rm2.css @@ -5,3 +5,7 @@ margin-top: 0.25cm; margin-bottom: 0.25cm; } + +@import url("devices/css/general.css"); + +@import url("devices/css/sw.css"); \ No newline at end of file diff --git a/src/devices/rm2.ini b/src/devices/rm2.ini index 76934aa..768fa6d 100644 --- a/src/devices/rm2.ini +++ b/src/devices/rm2.ini @@ -1,23 +1,30 @@ [Navigation] +# Navigationsleiste auch auf Klassen- und Kursseiten einblenden: ja, nein +navileiste = nein + # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal bezeichnung = kurz + [Korrekturbogen] # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... anzahl_aufgaben = 5 + [SoMiNoten] # Anzahl der SoMi-Noten-Spalten anzahl_noten = 14 + [Hausaufgaben] # Anzahl der HA-Noten-Spalten anzahl_ha = 8 + [Checkliste] # Anzahl der Check-Spalten diff --git a/src/lehrerpdf.py b/src/lehrerpdf.py index de0ca71..68e6861 100644 --- a/src/lehrerpdf.py +++ b/src/lehrerpdf.py @@ -63,16 +63,6 @@ css_devicefile = 'devices/'+device+'.css' if (not(os.path.exists(css_devicefile))): print(css_devicefile+" nicht vorhanden!") exit(0) -fd = open(css_devicefile) -devicestyle = fd.read() - -# CSS Formatierung für alle Devices einlesen -css_file = 'devices/general.css' -if (not(os.path.exists(css_file))): - print(css_file+" nicht vorhanden!") - exit(0) -f = open(css_file) -style = f.read() # 4. Vorbereitungen für Verarbeitung @@ -170,7 +160,7 @@ for datei in dateien: gebdaten_all = False # Übersichtsseite Noten zusammenbauen - body = body + uebersicht.erstelleUebersicht(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + uebersicht.erstelleUebersicht(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # optional: Korrekturbögen zusammenbauen try: @@ -179,10 +169,10 @@ for datei in dateien: print('Der Schlüssel "schr_anzahl" fehlt im Bereich "'+kursid+'" der Input-Datei!') exit(0) if (schr_anzahl>0): - body = body + korrektur.erstelleKorrekturbogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + korrektur.erstelleKorrekturbogen(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # SoMi-Bogen zusammenbauen - body = body + somi.erstelleSoMiBogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + somi.erstelleSoMiBogen(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # optional: HA-Bogen zusammenbauen try: @@ -191,24 +181,25 @@ for datei in dateien: print('Der Schlüssel "ha_zeilen" fehlt im Bereich "'+kursid+'" der Input-Datei!') exit(0) if (ha_zeilen>0): - body = body + ha.erstelleHABogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + ha.erstelleHABogen(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # Checkliste(n) zusammenbauen - body = body + checkliste.erstelleCheckliste(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + checkliste.erstelleCheckliste(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # Geburtstagsseite zusammenbauen if (len(gebdaten)==0): print(' - Geburtstagsliste wird weggelassen.') else: - body = body + birthday.erstelleGeburtstagsBogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + birthday.erstelleGeburtstagsBogen(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # Planungsseite für das Halbjahr zusammenbauen - body = body + halbjahr.erstelleHalbjahresuebersicht(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) + body = body + halbjahr.erstelleHalbjahresuebersicht(kursid, klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) # 6. Abschluss: PDF Generierung html_source = '' -html_source += ''+body+'' +html_source += '' +html_source += ''+body+'' pisa.showLogging() diff --git a/src/pages/birthday.py b/src/pages/birthday.py index 890f2e1..477de62 100644 --- a/src/pages/birthday.py +++ b/src/pages/birthday.py @@ -4,7 +4,7 @@ from datetime import datetime import header -def erstelleGeburtstagsBogen(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleGeburtstagsBogen(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -29,7 +29,7 @@ def erstelleGeburtstagsBogen(klassekurs_name, dateien, path, namen, gebdaten, co table += '' - table += header.erstelleHeader('Geburtstage', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, 'Geburtstage', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += '' diff --git a/src/pages/checkliste.py b/src/pages/checkliste.py index d6c7d75..7bb2fab 100644 --- a/src/pages/checkliste.py +++ b/src/pages/checkliste.py @@ -3,7 +3,7 @@ import os import header -def erstelleCheckliste(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleCheckliste(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -26,7 +26,7 @@ def erstelleCheckliste(klassekurs_name, dateien, path, namen, gebdaten, config, if check_seiten > 1: line += 'n' - table += header.erstelleHeader(line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) css = 'check' diff --git a/src/pages/ha.py b/src/pages/ha.py index 049676b..cca355f 100644 --- a/src/pages/ha.py +++ b/src/pages/ha.py @@ -3,7 +3,7 @@ import os import header -def erstelleHABogen(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleHABogen(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -27,7 +27,7 @@ def erstelleHABogen(klassekurs_name, dateien, path, namen, gebdaten, config, inp table += '' - table += header.erstelleHeader('HA', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, 'HA', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += '
' diff --git a/src/pages/halbjahr.py b/src/pages/halbjahr.py index 21a4c6d..f245297 100644 --- a/src/pages/halbjahr.py +++ b/src/pages/halbjahr.py @@ -3,7 +3,7 @@ import os import header -def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleHalbjahresuebersicht(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -24,7 +24,7 @@ def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten table += '' - table += header.erstelleHeader('Planung', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, 'Planung', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) css = 'halbjahr' diff --git a/src/pages/header.py b/src/pages/header.py index c38d608..66bd5eb 100644 --- a/src/pages/header.py +++ b/src/pages/header.py @@ -7,12 +7,16 @@ def erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs): myclass = "group" if (klassekurs_name==''): - header += '' + header += '' else: - header += '' + header += '' + + count = 0 for kursid in lerngruppen: + count = count + 1 + try: kurs_inputs_aktuell = inputs[kursid] except KeyError: @@ -35,11 +39,11 @@ def erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs): print('Der Schlüssel "(kurz)bezeichnung" fehlt im Bereich "'+kursid+'" der Input-Datei!') exit(0) - myclass = "group" + myclass = ' n'+str(count) # Navileisten-CSS nX if (klassekurs_aktuell == klassekurs_name): - header += '' + header += '' else: - header += '' + header += '' header += '
StartseiteStartseiteStartseiteStartseite'+klassekurs_print+''+klassekurs_print+''+klassekurs_print+''+klassekurs_print+'
' @@ -47,13 +51,26 @@ def erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs): -def erstelleHeader(line, klassekurs_name, gebdaten, lerngruppen, path, config, inputs, kurs_inputs): +def erstelleHeader(kursid, line, klassekurs_name, gebdaten, lerngruppen, path, config, inputs, kurs_inputs): - # vorerst abgeschaltet: Navigation für alle Lerngruppen - # header = erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs) + # Navigationsleiste für die Lerngruppen + try: + navileiste = config["Navigation"]["navileiste"] + except KeyError: + print('Der Schlüssel Navigation oder "kurzbezeichnung" existiert nicht in der Device-Datei!') + exit(0) - # Icons für die aktuelle Lerngruppe - header = '' + zeige_navi = False + if (navileiste=='ja'): + zeige_navi = True + + if (zeige_navi): + header = erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs) + else: + header = '' + + + # Überschrift inkl. verlinkte Icons für die aktuelle Lerngruppe header += '' # Icon @@ -72,13 +89,22 @@ def erstelleHeader(line, klassekurs_name, gebdaten, lerngruppen, path, config, i myline = str(zschuljahr) + '/' + str((zschuljahr-2000)+1) + ', ' + halbjahr + '. Hj.' # Überschrift links - header+= '' + count = 0 + for gruppe in lerngruppen: + count = count + 1 + if (gruppe==kursid): + break + + mycss = 'h'+str(count) # Headline-CSS hX + + header+= '' # Iconleiste rechts header += '
'+klassekurs_name+' - '+myline+''+klassekurs_name+' - '+myline+'' - # Link zur Startseite - header += ' ' + # Link zur Startseite, falls keine Navileiste + if (not(zeige_navi)): + header += ' ' # Notenübersicht header += ' ' diff --git a/src/pages/korrektur.py b/src/pages/korrektur.py index 45554c7..06afc4d 100644 --- a/src/pages/korrektur.py +++ b/src/pages/korrektur.py @@ -3,7 +3,7 @@ import os import header -def erstelleKorrekturbogen(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleKorrekturbogen(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -37,7 +37,7 @@ def erstelleKorrekturbogen(klassekurs_name, dateien, path, namen, gebdaten, conf line = schr_bez+' Nr. '+str(no) - table += header.erstelleHeader(line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += '' diff --git a/src/pages/somi.py b/src/pages/somi.py index 03ba61d..31df0fd 100644 --- a/src/pages/somi.py +++ b/src/pages/somi.py @@ -3,7 +3,7 @@ import os import header -def erstelleSoMiBogen(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleSoMiBogen(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -35,7 +35,7 @@ def erstelleSoMiBogen(klassekurs_name, dateien, path, namen, gebdaten, config, i line += 'SoMi Q'+str(no) line += '/Q'+str(no+1) - table += header.erstelleHeader(line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += '
' diff --git a/src/pages/start.py b/src/pages/start.py index 5b872b2..eb1dbaf 100644 --- a/src/pages/start.py +++ b/src/pages/start.py @@ -4,7 +4,7 @@ import markdown import header -def erstelleStartseite(lerngruppen, path,config, inputs): +def erstelleStartseite(lerngruppen, path,config, inputs): table = '' @@ -60,8 +60,13 @@ def erstelleStartseite(lerngruppen, path,config, inputs):
''','''
 ''') # ggf. Links zu Lerngruppen einfügen + count = 0 + for kursid in lerngruppen: + count = count + 1 + mycss = 't'+str(count) # Timetable-CSS tX + try: kurs_inputs_aktuell = inputs[kursid] except KeyError: @@ -75,7 +80,7 @@ def erstelleStartseite(lerngruppen, path,config, inputs): print('Der Schlüssel "bezeichnung" fehlt im Bereich "'+kursid+'" der Input-Datei!') exit(0) - html = html.replace('['+kursid+']',''+klassekurs_aktuell_kurz+'') + html = html.replace('['+kursid+']',''+klassekurs_aktuell_kurz+'') table += html diff --git a/src/pages/uebersicht.py b/src/pages/uebersicht.py index eef6eab..3573981 100644 --- a/src/pages/uebersicht.py +++ b/src/pages/uebersicht.py @@ -2,7 +2,7 @@ import os import header -def erstelleUebersicht(klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): +def erstelleUebersicht(kursid, klassekurs_name, dateien, path, namen, gebdaten, config, inputs, kurs_inputs): table = '' @@ -18,7 +18,7 @@ def erstelleUebersicht(klassekurs_name, dateien, path, namen, gebdaten, config, if (kurs_inputs["halbjahresnote"]=='ja'): halbjahresnote = True - table += header.erstelleHeader('Übersicht', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) + table += header.erstelleHeader(kursid, 'Übersicht', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) schr_bez = kurs_inputs["schriftlich_bez"] schr_anzahl = int(kurs_inputs["schriftlich_anzahl"])