Navigationsleiste, Stundenplan und Planungsseite optisch verbessert.

This commit is contained in:
2025-09-01 17:18:01 +02:00
parent a90e7cfd9e
commit bb299fd83b
10 changed files with 3993 additions and 4118 deletions

View File

@@ -10,13 +10,13 @@ Beim vorliegenden Projekt handelt es sich um ein Python-Skript, das für beliebi
eine gemeinsame PDF-Datei generiert, die für jede Lerngruppe eine gemeinsame PDF-Datei generiert, die für jede Lerngruppe
- ein Deckblatt zur Planung des Halbjahres, - eine (Noten)-Übersicht für die Lerngruppe,
- eine Geburtstagsliste, - eine Geburtstagsliste,
- eine Notenübersicht für die Lerngruppe,
- für jede Lernerfolgskontrolle eine Punkte- und Notentabelle, - für jede Lernerfolgskontrolle eine Punkte- und Notentabelle,
- für jedes Quartal eine Tabelle zur Erfassung von SoMi-Notizen, - für jedes Quartal eine Tabelle zur Erfassung von SoMi-Notizen,
- eine Tabelle zur HA-Kontrolle und - eine Tabelle zur HA-Kontrolle,
- Checklisten-Tabellen zum Abhaken - eine oder mehrere Checklisten-Tabelle(n) zum Abhaken und
- ein Blatt zur Planung des Halbjahres.
für ein Halbjahr umfasst. Zusätzlich kann optional als Startseite der Stundenplan eingebunden werden. für ein Halbjahr umfasst. Zusätzlich kann optional als Startseite der Stundenplan eingebunden werden.

View File

@@ -14,6 +14,7 @@ halbjahr = 1
# Kalenderwochen des Halbjahres für die Übersichtsseite # Kalenderwochen des Halbjahres für die Übersichtsseite
kw_start = 35 kw_start = 35
kw_ende = 6 kw_ende = 6
kw_ferien = 42,43,52,1
# Startseite: Binde den Stundenplan aus der angegebenen Datei ein (leer: kein Stundenplan) # Startseite: Binde den Stundenplan aus der angegebenen Datei ein (leer: kein Stundenplan)
stundenplandatei = stundenplan.md stundenplandatei = stundenplan.md
@@ -30,6 +31,7 @@ Die Parameter sind zwar selbsterklärend, werden hier aber dennoch einmal kurz e
- Als Schuljahr ist das Jahr einzutragen, in dem das Schuljahr beginnt. - Als Schuljahr ist das Jahr einzutragen, in dem das Schuljahr beginnt.
- Für das Halbjahr ist eine 1 oder 2 einzutragen. - Für das Halbjahr ist eine 1 oder 2 einzutragen.
- Für die Übersichtsseite des Habjahrs sind die Kalenderwoche des Beginns und die Kalenderwoche des Endes anzugeben. (Es liegt in der Natur der Sache, dass die beiden Zahlen nicht aufsteigend sein müssen, wenn ein Halbjahr zwei Kalenderjahre umfasst. Das Skript berücksichtigt dies automatisch.) - Für die Übersichtsseite des Habjahrs sind die Kalenderwoche des Beginns und die Kalenderwoche des Endes anzugeben. (Es liegt in der Natur der Sache, dass die beiden Zahlen nicht aufsteigend sein müssen, wenn ein Halbjahr zwei Kalenderjahre umfasst. Das Skript berücksichtigt dies automatisch.)
- Auf Wunsch können die Ferienwochen aus der Übersicht entfernt werden. Die entsprechenden Kalenderwochen müssen hier (nur mit Komma und ohne Leerzeichen getrennt) angegeben werden.
- Soll die Startseite des Zieldokuments einen Stundenplan enthalten, so ist dieser im Eingabeverzeichnis als Markdown Dokument anzugeben (vgl. auch nächster Abschnitt). Der Dateiname wird hier festgelegt. Fehlt der Dateiname, so wird der Stundenplan automatisch weggelassen. - Soll die Startseite des Zieldokuments einen Stundenplan enthalten, so ist dieser im Eingabeverzeichnis als Markdown Dokument anzugeben (vgl. auch nächster Abschnitt). Der Dateiname wird hier festgelegt. Fehlt der Dateiname, so wird der Stundenplan automatisch weggelassen.
- Für die CSV Dateien kann hier das Symbol zum Trennen der Spalte (voreingestellt Semikolon) bei Bedarf angepasst werden. - Für die CSV Dateien kann hier das Symbol zum Trennen der Spalte (voreingestellt Semikolon) bei Bedarf angepasst werden.
- Zum Schluss kommt die wichtigste Festlegung, das Zielgerät. Hier kann aktuell zwischen ``rm2`` (reMarkable 2), ``paperpro`` (reMarkable Paper Pro) und ``a4`` (DIN A4) gewählt werden. - Zum Schluss kommt die wichtigste Festlegung, das Zielgerät. Hier kann aktuell zwischen ``rm2`` (reMarkable 2), ``paperpro`` (reMarkable Paper Pro) und ``a4`` (DIN A4) gewählt werden.

View File

@@ -19,8 +19,8 @@ Dabei ist zu beachten:
- Durch ``<br>`` kann ein Zeilenumbruch in einer Zelle erzwungen werden kann. - Durch ``<br>`` kann ein Zeilenumbruch in einer Zelle erzwungen werden kann.
- Die Spalten der Tabelle werden durch ``|`` voneinander abgetrennt. - Die Spalten der Tabelle werden durch ``|`` voneinander abgetrennt.
- Wird die ID einer Lerngruppe in eckige Klammern gesetzt (z.B. ``[klasse-5a]``), so wird die Aufbereitung automatisch einen Verweis auf die Seite generieren, auf der die Informationen zur zugehörigen Lerngruppe beginnen. - Wird die ID einer Lerngruppe in eckige Klammern gesetzt (z.B. ``[klasse-5a]``), so wird die Aufbereitung automatisch einen Verweis auf die Seite generieren, auf der die Informationen zur zugehörigen Lerngruppe beginnen. Der Verweis wird als leichte Schattierung formatiert.
- Die Aufteilung der sechs Spalten (Stunde, Montag, ...) sollte möglichst beibehalten werden. Bei der Aufbereitung wird die erste Spalte enger dargestellt, alle übrigen Spalten werden gleich breit formatiert. - Die Aufteilung der sechs Spalten (Stunde, Montag, ...) sollte beibehalten werden. Bei der Aufbereitung wird die erste Spalte enger dargestellt, alle übrigen Spalten werden gleich breit formatiert.
Fehlt die Datei für den Stundenplan (bewusst oder versehentlich), so wird automatisch auf die Berücksichtigung eines Stundenplans auf der Startseite verzichtet. Fehlt die Datei für den Stundenplan (bewusst oder versehentlich), so wird automatisch auf die Berücksichtigung eines Stundenplans auf der Startseite verzichtet.

File diff suppressed because one or more lines are too long

View File

@@ -9,6 +9,7 @@ halbjahr = 1
# Kalenderwochen des Halbjahres für die Übersichtsseite # Kalenderwochen des Halbjahres für die Übersichtsseite
kw_start = 35 kw_start = 35
kw_ende = 6 kw_ende = 6
kw_ferien = 42,43,52,1
# Startseite: Binde den Stundenplan aus der angegebenen Datei ein (leer: kein Stundenplan) # Startseite: Binde den Stundenplan aus der angegebenen Datei ein (leer: kein Stundenplan)
stundenplandatei = stundenplan.md stundenplandatei = stundenplan.md
@@ -17,7 +18,7 @@ stundenplandatei = stundenplan.md
csvtrenner = ; csvtrenner = ;
# Ausgabegerät: rm2, paperpro, a4 # Ausgabegerät: rm2, paperpro, a4
device = a4 device = rm2
[klasse-5a] [klasse-5a]

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@@ -14,22 +14,22 @@ th {
/* Lerngruppennavigation */ /* Lerngruppennavigation */
table.lerngruppen { table.lerngruppen {
margin-top: 0pt;
width: 100%; width: 100%;
border: none; border: none;
margin-top: 0pt;
} }
table.lerngruppen a { table.lerngruppen a {
color: black; color: black;
text-decoration: none; text-decoration: none;
} }
table.lerngruppen td { table.lerngruppen td {
border-left: 0.3px solid black; border-left: 0.1px solid black;
border-right: 0.3px solid black; border-right: 0.1px solid black;
border-top: none; border-top: 0.1px solid black;
border-bottom: none; border-bottom: 0.1px solid black;
} }
td.group, td.current { td.group, td.current {
width: 12.5%; width: 11.125%; /* 5.5% Rest für X */
font-size: 100%; font-size: 100%;
padding-top: 3pt; padding-top: 3pt;
padding-bottom: 0pt; padding-bottom: 0pt;
@@ -45,21 +45,21 @@ table.lerngruppen td.home {
border: none; border: none;
} }
td.group { td.group {
background-color: ghostwhite; background-color: white;
} }
td.current { td.current {
background-color: lightgrey; background-color: lightgrey;
} }
/* Überschriftszeile */ /* Überschriftszeile mit Icon-Symbolen */
table.headline, tr.headline, td.headline { table.headline, tr.headline, td.headline {
border: none !important; border: none !important;
} }
table.headline { table.headline {
width: 100%; width: 100%;
margin-top: 12pt; margin-top: 14pt;
margin-bottom: 10pt; margin-bottom: 4pt;
} }
table.headline td { table.headline td {
font-size: 175%; font-size: 175%;
@@ -106,6 +106,8 @@ table.timetable tr {
border: none; border: none;
} }
table.timetable a { table.timetable a {
text-decoration: none;
background-color: #f2f2f2;
color: black; color: black;
} }
th.stunde, td.stunde { th.stunde, td.stunde {

View File

@@ -16,8 +16,10 @@ def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten
try: try:
kw_start = int(allgemein["kw_start"]) kw_start = int(allgemein["kw_start"])
kw_ende = int(allgemein["kw_ende"]) kw_ende = int(allgemein["kw_ende"])
kw_ferien = allgemein["kw_ferien"]
ferien = kw_ferien.split(",")
except KeyError: except KeyError:
print('"kw_start" oder "kw_ende" fehlt im allgemeinen Teil der Input-Datei!') print('"kw_start", "kw_ende" oder "kw_ferien" fehlt im allgemeinen Teil der Input-Datei!')
exit(0) exit(0)
table += '<a name="'+klassekurs_name+'Halbjahr"></a>' table += '<a name="'+klassekurs_name+'Halbjahr"></a>'
@@ -36,15 +38,18 @@ def erstelleHalbjahresuebersicht(klassekurs_name, dateien, path, namen, gebdaten
if (halbjahr=='1'): if (halbjahr=='1'):
for count in range(kw_start, 52): for count in range(kw_start, 52):
table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>' if (not(str(count) in ferien)):
table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
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="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>' if (not(str(count) in ferien)):
table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
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="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>' if (not(str(count) in ferien)):
table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>' table += '<tr><td class="luecke">&nbsp;</td><td class="kw'+extrakw+'">'+str(count)+'</td>'
table += '<td class="kw_sessions"></td><td class="kw_content"></td></tr>'
table += '</table>' table += '</table>'

View File

@@ -2,7 +2,7 @@ import os
def erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs): def erstelleNavigation(klassekurs_name, lerngruppen, path, config, inputs):
header = '<table class="lerngruppen"><tr>' header = '<table class="lerngruppen"><tr class="lerngruppen">'
header += '<td class="home">&nbsp;</td>' header += '<td class="home">&nbsp;</td>'
myclass = "group" myclass = "group"