Optische Vereinheitlichungen, Verbesserungen und Vereinfachungen

This commit is contained in:
2025-08-30 18:45:01 +02:00
parent 5fada80363
commit 0e1c8f2667
15 changed files with 5149 additions and 4846 deletions

File diff suppressed because one or more lines are too long

View File

@@ -17,7 +17,7 @@ stundenplandatei = stundenplan.md
csvtrenner = ; csvtrenner = ;
# Ausgabegerät: rm2, paperpro, a4 # Ausgabegerät: rm2, paperpro, a4
device = rm2 device = a4
[klasse-5a] [klasse-5a]
@@ -44,7 +44,7 @@ somi_zeilen = 2
halbjahresnote = ja halbjahresnote = ja
# Anzahl der Zeilen pro Schüler in einem HA-Bogen: 0, 1, 2, ... (0=kein HA-Bogen) # Anzahl der Zeilen pro Schüler in einem HA-Bogen: 0, 1, 2, ... (0=kein HA-Bogen)
ha_zeilen = 1 ha_zeilen = 2
# Anzahl der Seiten mit Checkliste: 1, 2, ... # Anzahl der Seiten mit Checkliste: 1, 2, ...
checkliste_seiten = 2 checkliste_seiten = 2

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -3,11 +3,6 @@
# Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal
bezeichnung = normal bezeichnung = normal
[Startseite]
# Schriftgröße der Kalenderwochen (Seitenumbruch vermeiden): normal, klein
schrift = normal
[Korrekturbogen] [Korrekturbogen]
# Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ...
@@ -16,7 +11,7 @@ anzahl_aufgaben = 6
[SoMiNoten] [SoMiNoten]
# Anzahl der SoMi-Noten-Spalten # Anzahl der SoMi-Noten-Spalten
anzahl_noten = 10 anzahl_noten = 14
[Hausaufgaben] [Hausaufgaben]

View File

@@ -108,11 +108,6 @@ table.timetable tr {
table.timetable a { table.timetable a {
color: black; color: black;
} }
th.luecke, td.luecke {
width: 5.5%;
text-align: center;
border: none;
}
th.stunde, td.stunde { th.stunde, td.stunde {
width: 7.5%; width: 7.5%;
text-align: center; text-align: center;
@@ -149,11 +144,26 @@ th.name, td.name {
vertical-align: middle; vertical-align: middle;
border-right: 1px solid black; border-right: 1px solid black;
} }
tr.header { tr.header, tr.muster {
border-bottom: 1px solid black; border-bottom: 1px solid black;
} }
th.luecke, td.luecke {
width: 5.5%;
text-align: center;
border: none;
}
/* Halbjahresübersicht */ /* Halbjahresübersicht */
table.halbjahr {
border: none;
}
table.halbjahr tr {
border: none;
}
th.kw, th.kwsmall, th.kw_sessions, th.kw_content {
border: 0.3px solid black;
border-bottom: 1px solid black;
}
th.kw, td.kw { th.kw, td.kw {
width: 5.5%; width: 5.5%;
text-align: right; text-align: right;
@@ -167,12 +177,14 @@ th.kwsmall, td.kwsmall {
font-size: 8.5pt; font-size: 8.5pt;
} }
th.kw_sessions, td.kw_sessions { th.kw_sessions, td.kw_sessions {
width: 20%; width: 19%;
text-align: center; text-align: center;
padding-left: 0pt; padding-left: 0pt;
border-left: 1px solid black;
border-right: 1px solid black;
} }
th.kw_content, td.kw_content { th.kw_content, td.kw_content {
width: 75%; width: 70%;
} }
/* Geburtstagstabelle */ /* Geburtstagstabelle */
@@ -260,8 +272,14 @@ table.somi th {
table.somi td { table.somi td {
vertical-align: middle; vertical-align: middle;
} }
table.somi tr.header {
height: 30pt;
}
table.somi tr.secretheader {
height: 30pt;
}
th.somi, td.somi, th.schr, td.schr { th.somi, td.somi, th.schr, td.schr {
width: 8.5%; width: 4.5%;
text-align: center; text-align: center;
padding-left: 0pt; padding-left: 0pt;
} }
@@ -282,22 +300,16 @@ table.check th {
table.check td { table.check td {
vertical-align: middle; vertical-align: middle;
} }
th.check, td.check, th.checksmall, td.checksmall { th.check, td.check {
width: 8%; width: 8%;
} }
table.checksmall td {
font-size: 8pt;
}
/* HA-Tabelle */ /* HA-Tabelle */
th.ha, td.ha, th.hasmall, td.hasmall { th.ha, td.ha {
width: 8%; width: 8%;
} }
th.ha, th.hasmall { th.ha {
border-left: none; border-left: none;
border-right: none; border-right: none;
} }
table.hasmall td {
font-size: 8.5pt;
}

View File

@@ -3,11 +3,6 @@
# Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal
bezeichnung = normal bezeichnung = normal
[Startseite]
# Schriftgröße der Kalenderwochen (Seitenumbruch vermeiden): normal, klein
schrift = normal
[Korrekturbogen] [Korrekturbogen]
# Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ...
@@ -16,7 +11,7 @@ anzahl_aufgaben = 5
[SoMiNoten] [SoMiNoten]
# Anzahl der SoMi-Noten-Spalten # Anzahl der SoMi-Noten-Spalten
anzahl_noten = 8 anzahl_noten = 12
[Hausaufgaben] [Hausaufgaben]

View File

@@ -3,11 +3,6 @@
# Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal # Lerngruppenbezeichnung in der Navileiste (Zeilenumbruch vermeiden): kurz, normal
bezeichnung = kurz bezeichnung = kurz
[Startseite]
# Schriftgröße der Kalenderwochen (Seitenumbruch vermeiden): normal, klein
schrift = klein
[Korrekturbogen] [Korrekturbogen]
# Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ... # Anzahl der Aufgaben in der Korrekturtabelle: 1, 2, 3, ...
@@ -16,20 +11,14 @@ anzahl_aufgaben = 5
[SoMiNoten] [SoMiNoten]
# Anzahl der SoMi-Noten-Spalten # Anzahl der SoMi-Noten-Spalten
anzahl_noten = 8 anzahl_noten = 12
[Hausaufgaben] [Hausaufgaben]
# Anzahl der HA-Noten-Spalten # Anzahl der HA-Noten-Spalten
anzahl_ha = 8 anzahl_ha = 8
# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ...
umschalten_kleinschrift = 20
[Checkliste] [Checkliste]
# Anzahl der Check-Spalten # Anzahl der Check-Spalten
anzahl_checks = 8 anzahl_checks = 8
# Umschalten auf kleine Schrift ab X Schülern (Seitenumbruch vermeiden): 20, 21, 22, ...
umschalten_kleinschrift = 20

View File

@@ -169,18 +169,15 @@ for datei in dateien:
gebdaten = [] gebdaten = []
gebdaten_all = False gebdaten_all = False
# Übersichtsseite für das Halbjahr zusammenbauen # Übersichtsseite Noten zusammenbauen
body = body + halbjahr.erstelleHalbjahresuebersicht(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) body = body + uebersicht.erstelleUebersicht(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs)
# Geburtstagsseite zusammenbauen # Geburtstagsseite zusammenbauen
if (len(gebdaten)==0): if (len(gebdaten)==0):
print(' - Geburtstagsliste wird weggelassen.') print(' - Geburtstagsliste wird weggelassen.')
else: else:
body = body + birthday.erstelleGeburtstagsBogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) body = body + birthday.erstelleGeburtstagsBogen(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs)
# Übersichtsseite Noten zusammenbauen
body = body + uebersicht.erstelleUebersicht(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs)
# optional: Korrekturbögen zusammenbauen # optional: Korrekturbögen zusammenbauen
try: try:
schr_anzahl = int(kurs_inputs["schriftlich_anzahl"]) schr_anzahl = int(kurs_inputs["schriftlich_anzahl"])
@@ -205,6 +202,9 @@ for datei in dateien:
# Checkliste(n) zusammenbauen # Checkliste(n) zusammenbauen
body = body + checkliste.erstelleCheckliste(klassekurs_name, lerngruppen, path, namen, gebdaten, config, inputs, kurs_inputs) body = body + checkliste.erstelleCheckliste(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)
# 6. Abschluss: PDF Generierung # 6. Abschluss: PDF Generierung
html_source = '<html><head>' html_source = '<html><head>'

View File

@@ -16,7 +16,6 @@ def erstelleCheckliste(klassekurs_name, dateien, path, namen, gebdaten, config,
check_seiten = 1 check_seiten = 1
check_anzahl = int(config["Checkliste"]["anzahl_checks"]) check_anzahl = int(config["Checkliste"]["anzahl_checks"])
umschalten = int(config["Checkliste"]["umschalten_kleinschrift"])
for no in range(check_seiten): for no in range(check_seiten):
@@ -30,8 +29,6 @@ def erstelleCheckliste(klassekurs_name, dateien, path, namen, gebdaten, config,
table += header.erstelleHeader(line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += header.erstelleHeader(line, klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs)
css = 'check' css = 'check'
if (len(namen)>umschalten): # kleine Schrift, um möglichst alles auf einer Seite zu halten
css = 'checksmall'
table += '<table class="'+css+'" repeat="1">' table += '<table class="'+css+'" repeat="1">'

View File

@@ -12,7 +12,6 @@ def erstelleHABogen(klassekurs_name, dateien, path, namen, gebdaten, config, inp
halbjahr = allg["halbjahr"] halbjahr = allg["halbjahr"]
ha_anzahl = int(config["Hausaufgaben"]["anzahl_ha"]) ha_anzahl = int(config["Hausaufgaben"]["anzahl_ha"])
umschalten = int(config["Hausaufgaben"]["umschalten_kleinschrift"])
try: try:
ha_zeilen = int(kurs_inputs["ha_zeilen"]) ha_zeilen = int(kurs_inputs["ha_zeilen"])
@@ -25,8 +24,6 @@ def erstelleHABogen(klassekurs_name, dateien, path, namen, gebdaten, config, inp
offset = 2 offset = 2
css = 'ha' css = 'ha'
if (len(namen)>umschalten): # kleine Schrift, um möglichst alles auf einer Seite zu halten
css = 'hasmall'
table += '<a name="'+klassekurs_name+'HA"></a>' table += '<a name="'+klassekurs_name+'HA"></a>'

View File

@@ -20,7 +20,6 @@ def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten
print('"kw_start" oder "kw_ende" fehlt im allgemeinen Teil der Input-Datei!') print('"kw_start" oder "kw_ende" fehlt im allgemeinen Teil der Input-Datei!')
exit(0) exit(0)
table += '<a name="'+klassekurs_name+'"></a>'
table += '<a name="'+klassekurs_name+'Halbjahr"></a>' table += '<a name="'+klassekurs_name+'Halbjahr"></a>'
table += header.erstelleHeader('Planung', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs) table += header.erstelleHeader('Planung', klassekurs_name, gebdaten, dateien, path, config, inputs, kurs_inputs)
@@ -29,31 +28,23 @@ def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten
table += '<table class="'+css+'" repeat="1">' table += '<table class="'+css+'" repeat="1">'
table += '<tr class="header"><th class="kw">KW</th>' table += '<tr class="header"><th class="luecke">&nbsp;</th><th class="kw">KW</th>'
table += '<th class="kw_sessions">Sitzungen</th><th class="kw_content"></th>' table += '<th class="kw_sessions">Sitzungen</th><th class="kw_content"></th>'
table += '</tr>' table += '</tr>'
try:
schrift = config["Startseite"]["schrift"]
except KeyError:
print('Der Schlüssel Starseite oder "schrift" existiert nicht in der Device-Datei!')
exit(0)
extrakw = '' extrakw = ''
if (schrift=='klein'):
extrakw = ' kwsmall'
if (halbjahr=='1'): if (halbjahr=='1'):
for count in range(kw_start, 52): for count in range(kw_start, 52):
table += '<tr><td class="kw'+extrakw+'">'+str(count)+'</td>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
table += '<th class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>'
for count in range(1, kw_ende+1): for count in range(1, kw_ende+1):
table += '<tr><td class="kw'+extrakw+'">'+str(count)+'</td>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
table += '<th class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>'
else: else:
for count in range(kw_start, kw_ende+1): for count in range(kw_start, kw_ende+1):
table += '<tr><td class="kw'+extrakw+'">'+str(count)+'</td>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
table += '<th class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>'
table += '</table>' table += '</table>'

View File

@@ -82,16 +82,13 @@ def erstelleHeader(line, klassekurs_name, gebdaten, lerngruppen, path, config, i
# Iconleiste rechts # Iconleiste rechts
header += '<td class="right headline">' header += '<td class="right headline">'
# Halbjahresseite # Notenübersicht
header += '<a href="#'+klassekurs_name+'Halbjahr">&nbsp;<img class="icon" src="img/calendar-days.svg"/></a>' header += '<a href="#'+klassekurs_name+'Overview">&nbsp;<img class="icon" src="img/user-multiple-4.svg"/></a>'
# Geburtstagsseite # Geburtstagsseite
if (len(gebdaten)>0): if (len(gebdaten)>0):
header += '<a href="#'+klassekurs_name+'Birthday">&nbsp;<img class="icon" src="img/bell-1.svg"/></a>' header += '<a href="#'+klassekurs_name+'Birthday">&nbsp;<img class="icon" src="img/bell-1.svg"/></a>'
# Notenübersicht
header += '<a href="#'+klassekurs_name+'Overview">&nbsp;<img class="icon" src="img/user-multiple-4.svg"/></a>'
# Arbeiten/Klausuren # Arbeiten/Klausuren
schr_anzahl = int(kurs_inputs["schriftlich_anzahl"]) schr_anzahl = int(kurs_inputs["schriftlich_anzahl"])
schr_bez = kurs_inputs["schriftlich_bez"] schr_bez = kurs_inputs["schriftlich_bez"]
@@ -119,6 +116,9 @@ def erstelleHeader(line, klassekurs_name, gebdaten, lerngruppen, path, config, i
# Checklisten # Checklisten
header += '<a href="#'+klassekurs_name+'Check">&nbsp;<img class="icon" src="img/check-circle-1.svg"/></a>' header += '<a href="#'+klassekurs_name+'Check">&nbsp;<img class="icon" src="img/check-circle-1.svg"/></a>'
# Halbjahresseite
header += '<a href="#'+klassekurs_name+'Halbjahr">&nbsp;<img class="icon" src="img/calendar-days.svg"/></a>'
header += '</td></tr></table>' header += '</td></tr></table>'
return header return header

View File

@@ -47,7 +47,7 @@ def erstelleSoMiBogen(klassekurs_name, dateien, path, namen, gebdaten, config, i
myclass = ' class="header"' myclass = ' class="header"'
if (somi_zeilen>1 and zeile<(somi_zeilen-1)): if (somi_zeilen>1 and zeile<(somi_zeilen-1)):
myclass = '' myclass = ' class="secretheader"'
table += '<tr'+myclass+'>' table += '<tr'+myclass+'>'
if zeile==0: if zeile==0:

View File

@@ -6,6 +6,7 @@ def erstelleUebersicht(klassekurs_name, dateien, path, namen, gebdaten, config,
table = '' table = ''
table += '<a name="'+klassekurs_name+'"></a>'
table += '<a name="'+klassekurs_name+'Overview"></a>' table += '<a name="'+klassekurs_name+'Overview"></a>'
allg = inputs["Allgemein"] allg = inputs["Allgemein"]