diff --git a/.gitignore b/.gitignore index 8aa86d8..00a3524 100644 --- a/.gitignore +++ b/.gitignore @@ -332,3 +332,18 @@ cython_debug/ webui/.policy-test-build/ webui/.template-preview-test-build/ webui/.import-test-build/ + +# GovOPlaN shared ignore rules from govoplan-core +# Local WebUI test/build scratch directories +.component-test-build/ +.module-test-build/ +.policy-test-build/ +.template-preview-test-build/ +.import-test-build/ +webui/.component-test-build/ +webui/.module-test-build/ +*.db +# GovOPlaN local runtime state +runtime/ +webui/.module-test-build/ +webui/.component-test-build/ diff --git a/src/govoplan_campaign/backend/manifest.py b/src/govoplan_campaign/backend/manifest.py index e94b2e9..6bdee7c 100644 --- a/src/govoplan_campaign/backend/manifest.py +++ b/src/govoplan_campaign/backend/manifest.py @@ -11,7 +11,17 @@ from govoplan_core.core.campaigns import ( CAPABILITY_CAMPAIGNS_RETENTION, ) from govoplan_core.core.module_guards import drop_table_retirement_provider, persistent_table_uninstall_guard -from govoplan_core.core.modules import FrontendModule, MigrationSpec, ModuleContext, ModuleManifest, NavItem, PermissionDefinition, RoleTemplate +from govoplan_core.core.modules import ( + FrontendModule, + MigrationSpec, + ModuleContext, + ModuleInterfaceProvider, + ModuleInterfaceRequirement, + ModuleManifest, + NavItem, + PermissionDefinition, + RoleTemplate, +) from govoplan_core.db.base import Base from govoplan_campaign.backend.change_tracking import register_campaign_change_tracking from govoplan_campaign.backend.db import models as campaign_models # noqa: F401 - populate Campaign ORM metadata @@ -135,6 +145,27 @@ manifest = ModuleManifest( version="0.1.6", required_capabilities=(CAPABILITY_AUTH_PRINCIPAL_RESOLVER, CAPABILITY_AUTH_PERMISSION_EVALUATOR), optional_dependencies=("files", "mail"), + provides_interfaces=( + ModuleInterfaceProvider(name="campaigns.access", version="0.1.6"), + ModuleInterfaceProvider(name="campaigns.delivery_tasks", version="0.1.6"), + ModuleInterfaceProvider(name="campaigns.mail_policy_context", version="0.1.6"), + ModuleInterfaceProvider(name="campaigns.policy_context", version="0.1.6"), + ModuleInterfaceProvider(name="campaigns.retention", version="0.1.6"), + ), + requires_interfaces=( + ModuleInterfaceRequirement( + name="files.campaign_attachments", + version_min="0.1.0", + version_max_exclusive="0.2.0", + optional=True, + ), + ModuleInterfaceRequirement( + name="mail.campaign_delivery", + version_min="0.1.0", + version_max_exclusive="0.2.0", + optional=True, + ), + ), permissions=PERMISSIONS, route_factory=_campaigns_router, role_templates=ROLE_TEMPLATES,