2 Commits
Author SHA1 Message Date
zemion 2c97223fb4 fix(webui): bind destructive dataflow controls to help
Module Package Release / publish-packages (push) Successful in 12s
2026-08-24 11:36:36 +02:00
zemion 5b989a7f6c docs: complete German structured documentation
Module Package Release / publish-packages (push) Successful in 12s
2026-08-24 01:15:33 +02:00
7 changed files with 113 additions and 4 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project]
name = "govoplan-dataflow"
version = "0.1.21"
version = "0.1.23"
description = "Governed graphical and SQL data pipelines for GovOPlaN."
readme = "README.md"
requires-python = ">=3.12"
+1 -1
View File
@@ -1,3 +1,3 @@
from __future__ import annotations
__version__ = "0.1.21"
__version__ = "0.1.23"
@@ -0,0 +1,95 @@
"""German translations for public structured documentation metadata."""
from __future__ import annotations
from typing import Any
GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'dataflow.execution-and-recovery': {'consequence_classes': {'cancel_run': 'Stornierung von '
'Anfragen; bereits '
'anerkannte externe '
'Effekte können '
'verbleiben.',
'promote_revision': 'Macht eine '
'unveränderliche '
'Revision in '
'einer höheren '
'Ausführungsumgebung '
'geeignet.',
'publish_output': 'Erstellt oder '
'aktualisiert eine '
'geregelte '
'Datenquelle und '
'fügt eine '
'Materialisierung '
'hinzu.',
'queue_run': 'Erstellt einen '
'dauerhaften asynchronen '
'Befehls- und '
'Autorisierungsnachweis.'}},
'dataflow.reference.fields-and-consequences': {'consequence_classes': {'configure_trigger': 'Erstellt '
'oder '
'ändert '
'einen '
'Automatisierungsbefehl '
'mit '
'Revisions- '
'und '
'Autorisierungsnachweisen.',
'delete_pipeline': 'Verhindert '
'die '
'zukünftige '
'Verwendung, '
'während '
'beibehaltene '
'Nachweise '
'geregelt '
'bleiben.',
'derive_copy': 'Erstellt '
'eine '
'separat '
'verwaltete '
'Kopie, die '
'an die '
'Quellrevision '
'und den '
'Hash '
'gebunden '
'ist.',
'rebase_copy': 'Hängt die '
'genaue '
'überprüfte '
'Quellrevision '
'an eine '
'Scope-Kopie '
'an, '
'zeichnet '
'die '
'Herkunft '
'des '
'Reviewers '
'auf und '
'gibt sie '
'in den '
'Entwurf '
'zurück.',
'record_decision': 'Fügt '
'eine '
'vom '
'handelnde '
'Person '
'zugewiesene '
'unveränderliche '
'Entscheidungsrevision '
'gegen '
'einen '
'genauen '
'Eingabe-Hash '
'an.',
'save_revision': 'Fügt '
'eine '
'unveränderliche '
'Überarbeitung '
'der '
'Pipelinedefinition '
'an.'}}}
+9 -1
View File
@@ -1,5 +1,8 @@
from __future__ import annotations
from govoplan_core.core.modules import with_documentation_structured_translations
from govoplan_dataflow.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS
from pathlib import Path
from govoplan_core.core.module_guards import (
@@ -60,7 +63,7 @@ from govoplan_dataflow.backend.german_documentation import (
MODULE_ID = "dataflow"
MODULE_NAME = "Dataflow"
MODULE_VERSION = "0.1.21"
MODULE_VERSION = "0.1.23"
READ_SCOPE = "dataflow:pipeline:read"
WRITE_SCOPE = "dataflow:pipeline:write"
@@ -799,6 +802,11 @@ manifest = ModuleManifest(
)
manifest = with_documentation_structured_translations(
manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS
)
def get_manifest() -> ModuleManifest:
return manifest
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "@govoplan/dataflow-webui",
"version": "0.1.21",
"version": "0.1.23",
"private": true,
"type": "module",
"main": "src/index.ts",
@@ -816,6 +816,8 @@ export default function DataflowPage({ settings, auth }: { settings: ApiSettings
destructiveActions={draft.id ? (
<IconButton
label="Delete pipeline"
helpContextId="dataflow.action.delete"
helpModuleId="dataflow"
icon={<Trash2 size={16} />}
variant="danger"
onClick={() => setDeleteOpen(true)}
@@ -2039,6 +2041,8 @@ function DataflowTriggersDialog({
{selected.last_error ? <small className="is-error">{selected.last_error}</small> : null}
<Button
variant="danger"
helpContextId="dataflow.action.delete"
helpModuleId="dataflow"
onClick={() => requestNavigation(() => setDeleteCandidate(selected))}
disabled={busy || !editable}
disabledReason={busy ? DATAFLOW_I18N.working : !editable ? DATAFLOW_I18N.writeReason : undefined}
@@ -182,6 +182,8 @@ export default function NodeInspector({
/>
<IconButton
label="Delete node"
helpContextId="dataflow.action.delete"
helpModuleId="dataflow"
icon={<Trash2 size={16} />}
variant="danger"
onClick={() => onDelete(node.id)}