externe, die über einen vertrauenswürdigen Proxy kommen
externe, die in der Datei “/var/opt/tabula.info/system/global.ini”
aufgelistet sind
Bei anderen IPs wird ein Anmeldefenster gezeigt. Die User müssen
vorher angelegt werden, die site ist “local”, im Browser wird dann ein
Cookie für 1 Jahr hinterlegt.
Viele Erweiterungen bei s_turbo
Version 2.1.1 (2024-06-17)
2024-05-16: Anpassung an werkzeug 3.0.x, das in Ubuntu noble
mitgeliefert wird. Fix, da im Administrationsbereich nicht immer alle
Felder angezeigt wurden.
2024-03-11: Export der turbo-Pläne verbessert (Spaltenlayout,
CSS)
2024-03-04: User können bei Turpo-Plänen selbst Markierungen
setzen. Wg. request.get_json wird nun debian bookworm vorausgesetzt oder
unter bullseye muss python3-werkzeug aus den backports installiert
werden!
2023-11-25: Clients können nun per Cookie identifiziert
werden:
Als Admin in “Clients & Status” einen Namen anlegen. Der
angelegte Client wird mit einem Code aufgelistet.
Am Clientbrowser die Seite /ti/static/signup.html aufrufen und die
Site “local” und den Code eingeben. Dann erhält der Browser einmalig ein
Cookie und so ein Jahr lang Zugriff.
Der Code ist damit verfallen. Der Client kann (auch vor der
Codenutzung) wie alle anderen (z.B. als Anzeige für Q12) konfiguriert
werden. Wir nutzen dies, um mit Anzeigerechnern von einer Außenstelle
über das Internet auf den Server zuzugreifen.
Version 2.1.0 (28. 9. 2023)
Anwenderinteresse:
Neues Modul Kalender: ics-Dateien können im
Hintergrund heruntergeladen werden. Ihre Anzeige erfolgt in den
Meldungen.
Viele Verbesserungen im Errorhandling für wsgi.
Umstieg auf variablen Font „Roboto”.
Viele Detailverbesserungen an Turbo-Plan-Anzeige (Ziel immer
Lesbarkeit).
Clientverwaltung verbessert: Bereiche invertierbar, alte Einträge
löschbar.
Q11/12 umbenennbar.
Managementseiten-Optik vereinheitlicht, explizite Rechte für
Kalendereinstellungen nötig/möglich.
Mehr Übersicht, da nun ein einzelner Einstellungskontext auswählbar
ist.
Technisches
Fix: nextphase bei hochkant falsch berechnet.
CSRF-Schutz in relevanten Dialogen.
Neue und den Konventionen entsprechende Verzeichnisstruktur in
/var/opt/tabula.info für dynamische, persistente Daten.
Verzeichnisstruktur auf /run/tabula.info für Session-Daten, die
einen Reboot nicht überleben müssen.
Spracheinstellungen in den Einstellungen wählbar, fast vollständig
deutsch/englisch bedienbar, Ubuntu-Font entfernt da überall mit Roboto
ersetzt.
Kalenderdownload mit Fake-Useragent (da bei einzelnen Anbietern
sonst abgelehnt).
Version 2.0.7 (29. 1. 2023)
Entfernen von Abhängigkeiten vom module cgi erfolgreich
(auf Python 3.11 vorbereitet)
Turbo-Plan-Anzeige verbessert für bessere Lesbarkeit
Raumänderungen mit fettem lila Raum
Haneke-Aktuell-Flag macht nur noch Namen und Fach rot, Stundennummer
wird nicht mehr eingefärbt
div. Platzreduktionen
Präsenz und “statt xyz” nun auch kursiv (für “was nur Lehrkräfte
betrifft”)
Personenruf mit Gruppierung nach Klassen und condensed statt small
bei langen Einträgen.
Version 2.0.6 (24. 10. 2022)
Fix: Okt 22: Bugfix (Datei-Download konnte Fehler auslösen wenn
Datei ohne Extension)
Dev: Juni 22: Sinnvolle Anzeige von ggf. vielen Plänen (dann
Navigation gekürzt, Standardeinstellungen der Clients geändert)
Fix: Juni 22: Forward-URL funktioniert wieder
Dev: Sept. 21 - Apr. 22: viele Verbesserungen für
Turbo-Plan-Anzeige
Dev: Erweitertes Debugfile
Dev: Einstellbare Standard-Ende-Stunde für Meldungen
Dev: Einstellbare Mindestlänge für Namen, Überarbeitung Code zur
Klassendarstellung
Dev: Einstellbare vorgeschlagene letzte Anzeigestunde für
Meldungen
Fix: Darstellung gelöschter Meldungen
Dev: “(keine Pläne)” entfernt.
Dev: Anzeige zweier Infoseiten auf einmal wird per ShowMultiInfos
erlaubt.
Dev: intern am CSS gearbeitet.
Dev: Klassenname bei Personenruf verlängert
Fix: Pläne per Download zu holen scheiterte.
Version 2.0.5 (2.6.2021)
Regression behoben: Pläne zu einzelnen Schirmen wurden nur bei
Kleinschreibung zugeordnet, in der Doku werden aber Großbuchstaben
verwendet. Beides geht nun. (31.5.)
Regression behoben: Debug-Datei, die in den Einstellungen erzeugt
werden kann, funktionierte nicht mehr nach dem Wechsel auf wsgi, weitere
Fehler in dessen Inhalt behoben. (27.5.)
Version 2.0.4 (6.5.2021)
Refactoring: Alten Code wo möglich auf pathlib.Path migriert ->
stabiler
turbo: Folgespalten beginnen nun mit “(Fortsetzung)” ->
Lesbarkeit verbessert
Fix: Unnötige Verzeichnisse im dyn-Verzeichnis werden nun
zuverlässig (auch nachträglich) gelöscht
Dev: Auch das Management geht nun komplett via WSGI. CGI wird in der
nächsten Version entfernt, da nicht mehr benötigt! -> klarere
Konf.,
Version 2.0.3 (13.3.2021)
Fix: Multithreading hat unter Last Fehler erzeugt
Auch der Status der Anzeigenrechner wird per WSGI serviert (lokal:
0,5 ms statt 50 ms)
Info:
am 11.3.2021 wurde der stabile git-Branch in main umbenannt
Version 2.0.2 (6.3.2021)
Zur Unterstützung bei der Konfiguration kann bei allen Clients die
IP-Adresse (temporär) eingeblendet werden
autoupdate.sh kann (von crontab aufgerufen) die Installation
aktualisieren
kleine Bugfixes
Design beim Management weiter verbessert und debuggt
Version 2.0.1 (14.02.2021)
Solo repariert.
Formatierungsfehler im Backend behoben.
Entfernen der Einstellung “helles Theme” da ungenutzt.
Branding repariert (abschaltbar) und vereinheitlicht.
Installationsskript ti_stable.sh installiert bei Bedarf nun auch die
coreutils.
Version 2.0 (12.02.2021)
Veröffentlichung!
Version 2.0-RC5 (23.01.2021)
Sowohl auf Debian Buster, als auch Ubuntu Focal funktioniert nun die
Installation ohne Nacharbeiten.
Einstellungen, Personenruf und Nachrichten werden beim Upgrade
übernommen, Pläne und Infoseiten wegen anderer Organisation nicht (won’t
fix).
Umbau zu 2.0
Seit Mitte 2020 wurde zur Version 2.0 weiterentwickelt in Richtung
einer dynamischeren Oberfläche (mit //JQuery//). Der Usecase eines
einzelnen Rechners, der sowohl die Server- als auch die Clientkomponente
enthält, wird ab 2.1.2 berücksichtigt.
Technisch läuft der Aufruf der Anzeigeseite jetzt mit WSGI (mit
//Werkzeug//) statt CGI.
Die Benutzeroberfläche wurde stark überarbeitet und
vereinheitlicht.
Die neue Version wird Python3.7
(und damit typischerweise Debian Buster und Ubuntu
Focal) als Mindestvoraussetzung haben.
Viele alte Programmiersünden werden behoben, es wird klarer
modularisiert und Multithreading ermöglicht.
die Aushangseite benötigt daher und dank WSGI nur noch ein Zehntel
der Rechenzeit…
Die Verarbeitung von Infoseiten wurde umgekrempelt, so dass auch 99
Bilder verwaltet werden können, diese in ihrer Anzeigehäufigkeit
eingestellt werden können bis hin zum Abschalten (“Nie”, so dass sie im
“Vorrat” landen). Damit sind regelmäßig wiederkehrende Infoseiten kein
Problem mehr.
Statt imagemagick wird GraphicsMagick installiert.
Es gibt jetzt einen Nachtmodus (schwarzer Bildschirm).
Es ist möglich zwischen verschiedenen Sprachen umzuschalten, in dem
man in der Datei ti.ini den entsprechenden Wert (z.B. locale = en_US) in
der Sektion [DEFAULT] setzt. Das heißt nicht, dass es bereits viele
Sprachdateien gibt. Sie finden bisher de_DE, en_US und da_DK, i.d.R.
nicht vollständig übersetzt. Hilfe ist hier willkommen :-)
Version 1.0 (4. Oktober 2015)
Gegenüber der Vorgängerversion 0.9.11 (Mai 2015) wurde einiges
geändert:
Große neue Features
Nur noch ein Uploaddialog bzw. eine Quellenangabe für Downloads
Alle bisherigen Datentypen können gemischt genutzt werden (die
Erweiterung zählt!):
HTML (auf halber Seite, ggf. mit vertikalem Scrollen).
PDF (konvertiert als PNG mit einstellbarer Größe (getrennt für
hochformatige und querformatige PDFs), mehrseitige PDF werden
aneinandergereiht und ggf. horizontal gescrollt)
PNG, GIF, JPEG werden 1:1 eingesetzt, ggf. vom Browser verkleinert
oder bei Übergröße (x>1920) horizontal gescrollt.
CSV wird als Ausgabe des Turboplaners interpretiert und in HTML
gewandelt.
URL wird als Textdatei (utf-8) gelesen, deren erste Zeile eine URL
ist, die angezeigt werden soll. Die Zeile muss mit http beginnen.
Ausgefeiltere Versorgung von Zielen mit unterschiedlichen
Pänen:
Es gibt die allgemeinen Clients und Sonderziele Q (Oberstufe), A, B,
M und L (Lehrer).
Beim Upload oder Download werden die Dateinamen daraufhin überprüft,
ob der Teil vor der Erweiterung mit z.B. “_L” endet, d.h. der
Zielbuchstabe wird mit einem Unterstrich abgetrennt erwartet. Bsp.:
1.pdf sehen alle, 1_L.pdf nur die Lehrer.
Zusätzlich besteht beim Download die Möglichkeit, die Dateien
stattdessen in ein zusätzliches Unterverzeichnis L zu schreiben, damit
es dem Ziel L zugeordnet wird
Beim Download muss die Quelle eine (leere) Datei vplansemaphore.txt
anbieten, womit geprüft wird, ob die Quelle korrekt ist.
Dateimusterangabe beim Download:
Es kann eine mit ; getrennte Liste von Dateinamen angegeben
werden.
Enthält ein Dateiname die geschweiften Klammern {}, so wird diese
Stelle nacheinander durch die Ziffern 0 bis 9 ersetzt, so dass
durchnummerierte Dateien geladen werden können.
Zusätzlich werden die Dateinamen um die Ziel-Codes ergänzt und es
werden die Unterverzeichnisse ausprobiert.
D.h. mit subst00{}.htm können bis zu 60 Dateien geladen werden:
subst000.html, subst001.html, subst000_L.html, L/subst000.html usw.
Wird dabei eine Datei nicht gefunden (Ausnahme: Ziffer 0), so wird
nicht mehr nach Dateien mit höherer Ziffer gesucht - getrennt für alle
Ziele
Reihenfolge der Anzeige der Pläne
Mit einem Datum im ISO-Format (2015-06-27) beginnende zuerst in der
Reihenfolge der Daten, dabei keine vergangenen Daten und bis max. 2
Monate in die Zukunft
Dateinamen die “heute” oder “morgen” enthalten, werden dabei
eingeflochten.
Dann alle weiteren Dateien in alphabetischer Reihenfolge
Periodische Tätigkeiten werden durch die Seitenaufrufe als
Hintergrundprozesse ausgelöst - derzeit alle 5 Minuten und nach
Uploads
Wenn eine Downloadquelle konfiguriert ist, werden Downloads
durchgeführt
Wenn auch nur eine Datei durch Upload/Download geändert wurde, so
werden alle Dateien neu analysiert und ggf. konvertiert
Nach dem ersten Abruf nach 0 Uhr Ortszeit werden alle Dateien, die
“heute” enthalten gelöscht und alle anderen Dateien neu analysiert. Wird
dann bei einem Download wieder eine mit “heute” gefunden, so gilt diese
für den aktuellen Tag. Dies lässt sich vermeiden, wenn man nach einer
gewissen Zeit oder abends die Dateien, welche zum Download bereit
stehen, wegnimmt oder wenigstens vplansemaphore.txt löscht. Dann findet
ein neuer Download erst dann statt, wenn man neue Dateien (mit
vplansemaphore.txt) bereitstellt.
Nachts wird außerdem cgi-bin/data/background.log in
background.log.old umbenannt und neu angelegt.
Beispiel 1: Sie lade die Dateien subst001.htm, subst001_L.htm,
solar_A.url, Mensa.pdf und Mensa_M.pdf hoch, so sehen
Schüler subst001.htm und Mensa.pdf,
Lehrer nur subst001_L.htm,
Clients der Gruppe M nur Mensa_M.pdf (z.B. eine Anzeige am
Mensaeingang),
Clients der Gruppe A nur die Webseite, deren URL in der Datei
solar_A.url steht (z.B. Anzeige der Solaranlage),
Clients der Gruppe Q (Oberstufe) dasselbe wie alle anderen
Schülerbildschirme, da es keine speziellen Dateien für Q gibt.
Beispiel 2: Sie erzeugen mit Ihrem Vertretungsplanprogramm im
Verzeichnis C:/Freigabe/ die Dateien subst000.html und subst001.html und
im Verzeichnis C:/Freigabe/L/ die Dateien subst000.html und
subst001.html, aber diesmal mit einer Sortierung für Lehrer.
* Lehrer sehen am Bildschirm im Lehrerzimmer (L zugeordnet) ihre spezielle Version aus C:/Freigabe/L
* Schüler und alle anderen Ziele sehen die Daten aus C:/Freigabe/
Kleine Änderungen und
Bugfixes
Wochenmotto wird ausgeblendet
Umblätterzeiten werden nun beachtet
Mehr Meldungen und Fehlerabfragen beim Übernehmen von
HTML-Dateien
Statusmeldung zu Konvertierungen per AJAX mit long polling gegen
Serverlast
Automatische Neukonvertierung nach Einstellungsänderungen
Am Ende der Einstellungen gibt es nun die Möglichkeit ein Debug-file
zu erstellen um den Autor bei Fehlern mit Informationen zu
versorgen
Neue Verzeichnisstruktur, beseitigt u.a. Dateileichen, Rechte werden
gezielter gesetzt. Vorbereitung für das Arbeiten mit mehreren Instanzen
aber nur einer Codebasis.
Installation legt nun Logfile mit Datum an
Meldungen fließen in die nächste Spalte und verdrängen ggf.
Infoseiten