Harmonize module metadata and expose View surfaces

This commit is contained in:
2026-07-28 21:04:54 +02:00
parent e8a3e1c18f
commit 36291a57c1
3 changed files with 33 additions and 3 deletions

View File

@@ -3,7 +3,8 @@ from __future__ import annotations
from govoplan_admin.backend.db import models as admin_models # noqa: F401 - populate Admin ORM metadata
from govoplan_core.core.access import CAPABILITY_AUTH_PERMISSION_EVALUATOR, CAPABILITY_AUTH_PRINCIPAL_RESOLVER
from govoplan_core.core.module_guards import persistent_table_uninstall_guard
from govoplan_core.core.modules import MigrationSpec, ModuleContext, ModuleManifest
from govoplan_core.core.modules import FrontendModule, MigrationSpec, ModuleContext, ModuleManifest
from govoplan_core.core.views import ViewSurface
from govoplan_core.db.base import Base
@@ -20,6 +21,19 @@ manifest = ModuleManifest(
version="0.1.8",
required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR),
route_factory=_route_factory,
frontend=FrontendModule(
module_id="admin",
package_name="@govoplan/admin-webui",
view_surfaces=(
ViewSurface(id="admin.section.overview", module_id="admin", kind="section", label="Administration overview", order=0),
ViewSurface(id="admin.section.system-settings", module_id="admin", kind="section", label="System settings", order=10),
ViewSurface(id="admin.section.system-configuration-changes", module_id="admin", kind="section", label="Configuration changes", order=20),
ViewSurface(id="admin.section.system-configuration-packages", module_id="admin", kind="section", label="Configuration packages", order=30),
ViewSurface(id="admin.section.system-role-templates", module_id="admin", kind="section", label="Role templates", order=40),
ViewSurface(id="admin.section.system-groups", module_id="admin", kind="section", label="Group templates", order=50),
ViewSurface(id="admin.section.system-modules", module_id="admin", kind="section", label="Modules", order=85),
),
),
migration_spec=MigrationSpec(module_id="admin", metadata=Base.metadata),
uninstall_guard_providers=(
persistent_table_uninstall_guard(

View File

@@ -355,8 +355,8 @@ export default function ModuleManagementPanel({ settings, canWrite, canAccessMai
<div className="module-management-meta">
<ModuleStatus module={module} desiredEnabled={desiredEnabled} />
{module.protected && <StatusBadge status="locked" label="i18n:govoplan-admin.locked.a798882f" />}
{module.frontend_package && <span>{module.frontend_package}</span>}
{module.migration_module_id && <span>i18n:govoplan-admin.db.e355c23a {module.migration_module_id}</span>}
<span>i18n:govoplan-admin.webui_package.19645536 <code>{module.frontend_package ?? "none"}</code></span>
<span>i18n:govoplan-admin.db.e355c23a <code>{module.migration_module_id ?? "none"}</code></span>
</div>
<div className="module-management-details">
<span>i18n:govoplan-admin.requires.a4fc9357 {module.dependencies.length ? module.dependencies.join(", ") : "none"}</span>

View File

@@ -19,6 +19,7 @@ const adminSections: AdminSectionsUiCapability = {
sections: [
{
id: "overview",
surfaceId: "admin.section.overview",
label: "i18n:govoplan-admin.overview.0efc2e6b",
group: "ROOT",
order: 0,
@@ -31,6 +32,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-settings",
surfaceId: "admin.section.system-settings",
label: "i18n:govoplan-admin.general.9239ee2c",
group: "SYSTEM",
order: 10,
@@ -43,6 +45,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-configuration-changes",
surfaceId: "admin.section.system-configuration-changes",
label: "i18n:govoplan-admin.changes.8aa57de6",
group: "SYSTEM",
order: 20,
@@ -54,6 +57,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-configuration-packages",
surfaceId: "admin.section.system-configuration-packages",
label: "i18n:govoplan-admin.configuration_packages.eb2f05f1",
group: "SYSTEM",
order: 30,
@@ -65,6 +69,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-role-templates",
surfaceId: "admin.section.system-role-templates",
label: "i18n:govoplan-admin.tenant_roles.51aca82d",
group: "SYSTEM",
order: 40,
@@ -78,6 +83,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-modules",
surfaceId: "admin.section.system-modules",
label: "i18n:govoplan-admin.modules.04e9462c",
group: "SYSTEM",
order: 85,
@@ -90,6 +96,7 @@ const adminSections: AdminSectionsUiCapability = {
},
{
id: "system-groups",
surfaceId: "admin.section.system-groups",
label: "i18n:govoplan-admin.groups.ae9629f4",
group: "SYSTEM",
order: 50,
@@ -110,6 +117,15 @@ export const adminModule: PlatformWebModule = {
version: "1.0.0",
dependencies: ["access"],
translations,
viewSurfaces: [
{ id: "admin.section.overview", moduleId: "admin", kind: "section", label: "Administration overview", order: 0 },
{ id: "admin.section.system-settings", moduleId: "admin", kind: "section", label: "System settings", order: 10 },
{ id: "admin.section.system-configuration-changes", moduleId: "admin", kind: "section", label: "Configuration changes", order: 20 },
{ id: "admin.section.system-configuration-packages", moduleId: "admin", kind: "section", label: "Configuration packages", order: 30 },
{ id: "admin.section.system-role-templates", moduleId: "admin", kind: "section", label: "Role templates", order: 40 },
{ id: "admin.section.system-groups", moduleId: "admin", kind: "section", label: "Group templates", order: 50 },
{ id: "admin.section.system-modules", moduleId: "admin", kind: "section", label: "Modules", order: 85 }
],
uiCapabilities: {
"admin.sections": adminSections
}