Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ce22239d78 | ||
|
|
92c8abb79b |
No files matched your search
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "tesm"
|
||||
version = "2.7.2"
|
||||
version = "2.7.3"
|
||||
description = "TESM -- Verwaltung und Ueberwachung von PoE-Endgeraeten und Aruba-Switchen"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
|
||||
@@ -104,10 +104,11 @@ TESM_SETTINGS: tuple[SettingSpec, ...] = (
|
||||
True,
|
||||
"bool",
|
||||
"Unterschriften mit dem ablegenden Konto bezeugen",
|
||||
hint="Unter jede Unterschrift kommt eine Zeile, wer das Dokument in TESM abgelegt "
|
||||
"hat. Der Name in der Unterschrift ist eine Angabe des Unterschreibenden – wie "
|
||||
"auf Papier; das Konto daneben ist belegt. Eine Passwortabfrage gibt es dafür "
|
||||
"nicht.",
|
||||
hint="Eine Zeile unter der **ersten** Unterschrift nennt das Konto, das das "
|
||||
"Dokument in TESM abgelegt hat. In den Dokumenteigenschaften und im "
|
||||
"Änderungsprotokoll steht es ohnehin, unabhängig von diesem Schalter. Der Name in "
|
||||
"der Unterschrift ist eine Angabe des Unterschreibenden – wie auf Papier; das "
|
||||
"Konto ist belegt. Eine Passwortabfrage gibt es dafür nicht.",
|
||||
section="fileshare",
|
||||
),
|
||||
# -- Terminal ----------------------------------------------------------- #
|
||||
|
||||
@@ -84,7 +84,9 @@
|
||||
<div class="card__title">{{ icon('pencil', size=17) }} Unterschriften</div>
|
||||
<div class="card__sub">
|
||||
Der Name in der Unterschrift ist eine Angabe des Unterschreibenden – wie auf
|
||||
Papier. Wer das Dokument in TESM abgelegt hat, ist dagegen belegt.
|
||||
Papier. Wer das Dokument abgelegt hat, ist dagegen belegt: in den
|
||||
Dokumenteigenschaften und im Änderungsprotokoll, auf Wunsch zusätzlich
|
||||
sichtbar unter der ersten Unterschrift.
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
+2
-2
@@ -542,8 +542,8 @@ if [[ "$APP" == "tesm" ]]; then
|
||||
render_unit "$ROOT/deploy/systemd/tesm-monitor.service" "/etc/systemd/system/$MONITOR_UNIT"
|
||||
fi
|
||||
# Aufraeumen lief bisher nur von Hand -- also praktisch nie. Auf einer
|
||||
# laufenden Installation standen deshalb hunderte abgelaufene Sitzungszeilen
|
||||
# in der Datenbank, und das Aenderungsprotokoll waere nie archiviert worden.
|
||||
# laufenden Installation lagen deshalb hunderte abgelaufene Sitzungszeilen in
|
||||
# der Datenbank, und das Aenderungsprotokoll waere nie archiviert worden.
|
||||
render_unit "$ROOT/deploy/systemd/$APP-cleanup.service" "/etc/systemd/system/$CLEANUP_UNIT"
|
||||
render_unit "$ROOT/deploy/systemd/$APP-cleanup.timer" "/etc/systemd/system/$CLEANUP_TIMER"
|
||||
[[ $UNITS_CHANGED -eq 1 ]] && systemctl daemon-reload && info "Units neu geladen" \
|
||||
|
||||
@@ -6,8 +6,8 @@ Description=TESM -- taegliches Aufraeumen
|
||||
# und die Archivierung des Aenderungsprotokolls.
|
||||
#
|
||||
# Vorher lief das nur, wenn jemand "tesm-admin housekeeping" aufrief oder in
|
||||
# der Diagnose darauf klickte -- also praktisch nie. Gemessen: 444 offene
|
||||
# Sitzungszeilen bei drei Benutzern.
|
||||
# der Diagnose darauf klickte -- also praktisch nie. Gemessen auf einer
|
||||
# Installation nach vier Wochen: 747 Sitzungszeilen, 682 davon abgelaufen.
|
||||
OnCalendar=*-*-* 03:30:00
|
||||
# Streuung, damit nicht jede Installation im Netz zur selben Sekunde loslegt.
|
||||
RandomizedDelaySec=15m
|
||||
|
||||
@@ -6,8 +6,8 @@ Description=TESM-Lizenzserver -- taegliches Aufraeumen
|
||||
# und die Archivierung des Aenderungsprotokolls.
|
||||
#
|
||||
# Vorher lief das nur, wenn jemand "tesm-license-admin housekeeping" aufrief oder in
|
||||
# der Diagnose darauf klickte -- also praktisch nie. Gemessen: 444 offene
|
||||
# Sitzungszeilen bei drei Benutzern.
|
||||
# der Diagnose darauf klickte -- also praktisch nie. Gemessen auf einer
|
||||
# Installation nach vier Wochen: 747 Sitzungszeilen, 682 davon abgelaufen.
|
||||
OnCalendar=*-*-* 03:30:00
|
||||
# Streuung, damit nicht jede Installation im Netz zur selben Sekunde loslegt.
|
||||
RandomizedDelaySec=15m
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "tesm-core"
|
||||
version = "2.7.2"
|
||||
version = "2.7.3"
|
||||
description = "Gemeinsames Anwendungsgeruest (Auth, RBAC, Navigation, Design-System, Migrationen) fuer TESM und TESM-Lizenzserver"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = [
|
||||
|
||||
@@ -148,7 +148,7 @@ def create_base_app(
|
||||
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
|
||||
#: Anwendungen.
|
||||
auth_tagline: str = "",
|
||||
app_version: str = "2.7.2",
|
||||
app_version: str = "2.7.3",
|
||||
built_in_trusted_keys: tuple[str, ...] = (),
|
||||
enable_license: bool = True,
|
||||
template_folder: str | None = None,
|
||||
|
||||
@@ -280,7 +280,13 @@ async function nachbearbeiten(
|
||||
const hoehe = (png.height / png.width) * breite;
|
||||
seite.drawImage(png, { x: eintrag.x, y: eintrag.y, width: breite, height: hoehe });
|
||||
const zeilen = [`${eintrag.name} | ${eintrag.zeit}`];
|
||||
if (zeuge) zeilen.push(`In TESM abgelegt durch ${zeuge}`);
|
||||
// Der Zeugenvermerk gehoert zum Dokument, nicht zu jeder Unterschrift:
|
||||
// unter drei Unterschriften stand dreimal derselbe Satz. Sichtbar
|
||||
// erscheint er deshalb nur unter der ersten -- fest steht er ohnehin in
|
||||
// den Dokumenteigenschaften und im Aenderungsprotokoll.
|
||||
if (zeuge && eintrag === unterschriften[0]) {
|
||||
zeilen.push(`In TESM abgelegt durch ${zeuge}`);
|
||||
}
|
||||
// Die Schrift waechst mit der Unterschrift: wer sie kleiner zieht, will
|
||||
// den ganzen Block kleiner haben, nicht eine Zeichnung mit einer
|
||||
// Bildunterschrift in Originalgroesse daneben.
|
||||
@@ -311,6 +317,20 @@ async function nachbearbeiten(
|
||||
}
|
||||
}
|
||||
|
||||
if (unterschriften.length) {
|
||||
// In den Dokumenteigenschaften -- dort sucht man so etwas, und dort steht
|
||||
// es einmal statt unter jeder Unterschrift. Jeder Betrachter zeigt das
|
||||
// an, auch ausserhalb von TESM.
|
||||
const namen = unterschriften.map((eintrag) => eintrag.name);
|
||||
const wann = unterschriften[unterschriften.length - 1].zeit;
|
||||
dokument.setAuthor(namen.join(", "));
|
||||
dokument.setSubject(
|
||||
`Unterschrieben am ${wann}` + (zeuge ? ` | in TESM abgelegt durch ${zeuge}` : "")
|
||||
);
|
||||
dokument.setProducer("TESM");
|
||||
dokument.setModificationDate(new Date());
|
||||
}
|
||||
|
||||
if (abschliessen) {
|
||||
// Alle Felder werden Teil der Seite. Danach gibt es kein Formular mehr --
|
||||
// gewollt: so kann niemand mehr etwas verstellen.
|
||||
@@ -664,7 +684,9 @@ async function pdfBetrachter(behaelter, seiten, url, basis, { formulare = true }
|
||||
const text = document.createElement("div");
|
||||
text.className = "viewer__unterschrifttext";
|
||||
text.textContent = `${eintrag.name} | ${eintrag.zeit}`;
|
||||
if (zeuge) text.textContent += ` / In TESM abgelegt durch ${zeuge}`;
|
||||
if (zeuge && eintrag === unterschriften[0]) {
|
||||
text.textContent += ` / In TESM abgelegt durch ${zeuge}`;
|
||||
}
|
||||
const griff = document.createElement("button");
|
||||
griff.type = "button";
|
||||
griff.className = "viewer__unterschriftgriff";
|
||||
@@ -834,6 +856,8 @@ export function initFilePreview(wurzel = document) {
|
||||
const padAbbrechen = stueck("signabbrechen");
|
||||
const padHinweis = stueck("signhinweis");
|
||||
const basis = rumpf.dataset.viewerPdfjs || "";
|
||||
// Der Anmeldename, nicht der volle Name: er ist eindeutig, und genau das
|
||||
// soll die Zeile belegen.
|
||||
const konto = rumpf.dataset.viewerKonto || "";
|
||||
const bezeugen = rumpf.dataset.viewerZeuge === "1";
|
||||
// Die Uhr des Servers, nicht die des Tablets: eine verstellte Uhr am Geraet
|
||||
|
||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
||||
|
||||
[project]
|
||||
name = "tesm-licensing"
|
||||
version = "2.7.2"
|
||||
version = "2.7.3"
|
||||
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
|
||||
requires-python = ">=3.11"
|
||||
dependencies = ["cryptography>=42"]
|
||||
|
||||
Reference in new issue
Block a user