2 Commits
Author SHA1 Message Date
zemion 9a53898388 fix(webui): bind view publication to help
Module Package Release / publish-packages (push) Successful in 12s
2026-08-24 11:36:48 +02:00
zemion 4e574f3bdd docs: complete German structured documentation
Module Package Release / publish-packages (push) Successful in 11s
2026-08-24 01:15:42 +02:00
6 changed files with 85 additions and 4 deletions
+1 -1
View File
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
[project] [project]
name = "govoplan-views" name = "govoplan-views"
version = "0.1.19" version = "0.1.21"
description = "Governed task-focused interface projections for GovOPlaN." description = "Governed task-focused interface projections for GovOPlaN."
readme = "README.md" readme = "README.md"
requires-python = ">=3.12" requires-python = ">=3.12"
+1 -1
View File
@@ -1,3 +1,3 @@
"""GovOPlaN Views module.""" """GovOPlaN Views module."""
__version__ = "0.1.19" __version__ = "0.1.21"
@@ -0,0 +1,71 @@
"""German translations for public structured documentation metadata."""
from __future__ import annotations
from typing import Any
GERMAN_STRUCTURED_TRANSLATIONS: dict[str, dict[str, Any]] = {'views.data-subject-requests': {'consequence_classes': {'delete_assignment': 'Entfernt nur die '
'persönliche '
'Zuordnung, nicht '
'die '
'View-Definition.',
'delete_personal_definition': 'Entfernt '
'die '
'persönliche '
'Definition '
'und '
'Überarbeitungen '
'nur, wenn '
'kein '
'anderes '
'Konto '
'davon '
'abhängt.',
'delete_selection': 'Entfernt die '
'Kontoauswahl; '
'effektive Ausfälle '
'gelten erneut.',
'retain_attribution': 'Reserviert '
'minimierte '
'Mandant- / '
'Gruppenkonfigurationsverantwortung.'}},
'views.interface-projections': {'steps': ['Öffnen Sie den View-Selektor und überprüfen Sie den '
'effektiven View und seine Quelle.',
'Wählen Sie eine verfügbare View oder kehren Sie zum '
'berechtigungsabgeleiteten Standard zurück.',
'Verwenden Sie die Administrationsflucht, wenn eine '
'erforderliche View inspiziert oder geändert werden '
'muss.']},
'views.reference.fields-and-consequences': {'consequence_classes': {'archive': 'Deaktiviert '
'optionale '
'Zuweisungen; '
'erforderliche '
'Zuweisungen '
'müssen zuerst '
'entfernt werden.',
'publish': 'Erstellt die '
'zuordenbare '
'unveränderliche '
'Revision, die von '
'nicht gepinnten '
'Zuweisungen '
'verwendet wird.',
'remove_assignment': 'Stoppt, '
'dass '
'das '
'Ziel '
'diese '
'Zuweisung '
'erbt, '
'ohne '
'View zu '
'löschen.',
'required': 'Schränkt '
'betroffene '
'Benutzer ein, '
'während '
'Selektor- und '
'Administrations-Escape-Oberflächen '
'beibehalten '
'werden.'}}}
+9 -1
View File
@@ -1,5 +1,8 @@
from __future__ import annotations from __future__ import annotations
from govoplan_core.core.modules import with_documentation_structured_translations
from govoplan_views.backend.german_structured_documentation import GERMAN_STRUCTURED_TRANSLATIONS
from pathlib import Path from pathlib import Path
from govoplan_core.core.access import ( from govoplan_core.core.access import (
@@ -36,7 +39,7 @@ from govoplan_views.backend.dsar_provider import (
MODULE_ID = "views" MODULE_ID = "views"
MODULE_NAME = "Views" MODULE_NAME = "Views"
MODULE_VERSION = "0.1.19" MODULE_VERSION = "0.1.21"
DEFINITION_READ_SCOPE = "views:definition:read" DEFINITION_READ_SCOPE = "views:definition:read"
DEFINITION_WRITE_SCOPE = "views:definition:write" DEFINITION_WRITE_SCOPE = "views:definition:write"
@@ -571,6 +574,11 @@ manifest = ModuleManifest(
) )
manifest = with_documentation_structured_translations(
manifest, locale="de", translations=GERMAN_STRUCTURED_TRANSLATIONS
)
def get_manifest() -> ModuleManifest: def get_manifest() -> ModuleManifest:
return manifest return manifest
+1 -1
View File
@@ -1,6 +1,6 @@
{ {
"name": "@govoplan/views-webui", "name": "@govoplan/views-webui",
"version": "0.1.19", "version": "0.1.21",
"private": true, "private": true,
"type": "module", "type": "module",
"main": "src/index.ts", "main": "src/index.ts",
@@ -711,6 +711,8 @@ export default function ViewsAdminPanel({
</Button> </Button>
<Button <Button
variant="primary" variant="primary"
helpContextId="views.action.publish"
helpModuleId="views"
onClick={() => void publishDraft()} onClick={() => void publishDraft()}
disabled={Boolean(editDisabledReason) || !draft.name.trim()} disabled={Boolean(editDisabledReason) || !draft.name.trim()}
disabledReason={editDisabledReason ?? (!draft.name.trim() ? VIEWS_INTERFACE_I18N.nameRequiredText : undefined)} disabledReason={editDisabledReason ?? (!draft.name.trim() ? VIEWS_INTERFACE_I18N.nameRequiredText : undefined)}