Version 2.7.3: Zeugenvermerk einmal und in den Dokumenteigenschaften
This commit is contained in:
1 parent
cdc3b2cd6e
commit
fafda84bc7
6 files changed
+32
-8
No files matched your search
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-license"
|
name = "tesm-license"
|
||||||
version = "2.7.2"
|
version = "2.7.3"
|
||||||
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
|
description = "TESM-Lizenzserver -- Kunden, Tickets, Lizenzen, Aktivierung"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-core"
|
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"
|
description = "Gemeinsames Anwendungsgeruest (Auth, RBAC, Navigation, Design-System, Migrationen) fuer TESM und TESM-Lizenzserver"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = [
|
dependencies = [
|
||||||
|
|||||||
@@ -148,7 +148,7 @@ def create_base_app(
|
|||||||
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
|
#: Wortmarke, ohne Zeile darunter; die Marke selbst zeigen beide
|
||||||
#: Anwendungen.
|
#: Anwendungen.
|
||||||
auth_tagline: str = "",
|
auth_tagline: str = "",
|
||||||
app_version: str = "2.7.2",
|
app_version: str = "2.7.3",
|
||||||
built_in_trusted_keys: tuple[str, ...] = (),
|
built_in_trusted_keys: tuple[str, ...] = (),
|
||||||
enable_license: bool = True,
|
enable_license: bool = True,
|
||||||
template_folder: str | None = None,
|
template_folder: str | None = None,
|
||||||
|
|||||||
@@ -280,7 +280,13 @@ async function nachbearbeiten(
|
|||||||
const hoehe = (png.height / png.width) * breite;
|
const hoehe = (png.height / png.width) * breite;
|
||||||
seite.drawImage(png, { x: eintrag.x, y: eintrag.y, width: breite, height: hoehe });
|
seite.drawImage(png, { x: eintrag.x, y: eintrag.y, width: breite, height: hoehe });
|
||||||
const zeilen = [`${eintrag.name} | ${eintrag.zeit}`];
|
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
|
// Die Schrift waechst mit der Unterschrift: wer sie kleiner zieht, will
|
||||||
// den ganzen Block kleiner haben, nicht eine Zeichnung mit einer
|
// den ganzen Block kleiner haben, nicht eine Zeichnung mit einer
|
||||||
// Bildunterschrift in Originalgroesse daneben.
|
// 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) {
|
if (abschliessen) {
|
||||||
// Alle Felder werden Teil der Seite. Danach gibt es kein Formular mehr --
|
// Alle Felder werden Teil der Seite. Danach gibt es kein Formular mehr --
|
||||||
// gewollt: so kann niemand mehr etwas verstellen.
|
// 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");
|
const text = document.createElement("div");
|
||||||
text.className = "viewer__unterschrifttext";
|
text.className = "viewer__unterschrifttext";
|
||||||
text.textContent = `${eintrag.name} | ${eintrag.zeit}`;
|
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");
|
const griff = document.createElement("button");
|
||||||
griff.type = "button";
|
griff.type = "button";
|
||||||
griff.className = "viewer__unterschriftgriff";
|
griff.className = "viewer__unterschriftgriff";
|
||||||
@@ -834,6 +856,8 @@ export function initFilePreview(wurzel = document) {
|
|||||||
const padAbbrechen = stueck("signabbrechen");
|
const padAbbrechen = stueck("signabbrechen");
|
||||||
const padHinweis = stueck("signhinweis");
|
const padHinweis = stueck("signhinweis");
|
||||||
const basis = rumpf.dataset.viewerPdfjs || "";
|
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 konto = rumpf.dataset.viewerKonto || "";
|
||||||
const bezeugen = rumpf.dataset.viewerZeuge === "1";
|
const bezeugen = rumpf.dataset.viewerZeuge === "1";
|
||||||
// Die Uhr des Servers, nicht die des Tablets: eine verstellte Uhr am Geraet
|
// Die Uhr des Servers, nicht die des Tablets: eine verstellte Uhr am Geraet
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-licensing-server"
|
name = "tesm-licensing-server"
|
||||||
version = "2.7.2"
|
version = "2.7.3"
|
||||||
description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten"
|
description = "Serverhaelfte des TESM-Lizenzprotokolls: ausstellen, erneuern, antworten"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = ["tesm-licensing==2.7.2", "cryptography>=41"]
|
dependencies = ["tesm-licensing==2.7.3", "cryptography>=41"]
|
||||||
|
|
||||||
[tool.setuptools.packages.find]
|
[tool.setuptools.packages.find]
|
||||||
where = ["src"]
|
where = ["src"]
|
||||||
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "tesm-licensing"
|
name = "tesm-licensing"
|
||||||
version = "2.7.2"
|
version = "2.7.3"
|
||||||
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
|
description = "Ed25519-basiertes Lizenz- und Aktivierungsprotokoll fuer TESM und TESM-Lizenzserver"
|
||||||
requires-python = ">=3.11"
|
requires-python = ">=3.11"
|
||||||
dependencies = ["cryptography>=42"]
|
dependencies = ["cryptography>=42"]
|
||||||
|
|||||||
Reference in new issue
Block a user