Optische Vereinheitlichungen, Verbesserungen und Vereinfachungen
This commit is contained in:
2936
src/data/a4.pdf
2936
src/data/a4.pdf
File diff suppressed because one or more lines are too long
@@ -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
3654
src/data/rm2.pdf
3654
src/data/rm2.pdf
File diff suppressed because one or more lines are too long
@@ -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]
|
||||||
|
|
||||||
|
|||||||
@@ -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;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|||||||
@@ -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]
|
||||||
|
|
||||||
|
|||||||
@@ -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
|
|
||||||
@@ -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>'
|
||||||
|
|||||||
@@ -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">'
|
||||||
|
|
||||||
|
|||||||
@@ -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>'
|
||||||
|
|
||||||
|
|||||||
@@ -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"> </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"> </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"> </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"> </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>'
|
||||||
|
|
||||||
|
|||||||
@@ -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"> <img class="icon" src="img/calendar-days.svg"/></a>'
|
header += '<a href="#'+klassekurs_name+'Overview"> <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"> <img class="icon" src="img/bell-1.svg"/></a>'
|
header += '<a href="#'+klassekurs_name+'Birthday"> <img class="icon" src="img/bell-1.svg"/></a>'
|
||||||
|
|
||||||
# Notenübersicht
|
|
||||||
header += '<a href="#'+klassekurs_name+'Overview"> <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"> <img class="icon" src="img/check-circle-1.svg"/></a>'
|
header += '<a href="#'+klassekurs_name+'Check"> <img class="icon" src="img/check-circle-1.svg"/></a>'
|
||||||
|
|
||||||
|
# Halbjahresseite
|
||||||
|
header += '<a href="#'+klassekurs_name+'Halbjahr"> <img class="icon" src="img/calendar-days.svg"/></a>'
|
||||||
|
|
||||||
header += '</td></tr></table>'
|
header += '</td></tr></table>'
|
||||||
|
|
||||||
return header
|
return header
|
||||||
|
|||||||
@@ -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:
|
||||||
|
|||||||
@@ -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"]
|
||||||
|
|||||||
Reference in New Issue
Block a user