Реестр MODULE_MOUNTS: API, ui_router, фрагменты главной, EventBus. Главная и страницы модулей с правой навигацией из реестра; wrap_module_html_page. Ingress: публикация alert.received после сохранения в БД. Документация MODULES.md; pytest покрывает API, UI и навигацию. Made-with: Cursor
42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
from fastapi import APIRouter, Request
|
|
from fastapi.responses import HTMLResponse
|
|
|
|
from onguard24.domain.events import EventBus
|
|
from onguard24.modules.ui_support import wrap_module_html_page
|
|
|
|
router = APIRouter(tags=["module-contacts"])
|
|
|
|
ui_router = APIRouter(tags=["web-contacts"], include_in_schema=False)
|
|
|
|
|
|
def register_events(_bus: EventBus) -> None:
|
|
pass
|
|
|
|
|
|
async def render_home_fragment(request: Request) -> str:
|
|
del request
|
|
return '<div class="module-fragment"><p>Контакты, группы, каналы доставки.</p></div>'
|
|
|
|
|
|
@router.get("/")
|
|
async def contacts_root():
|
|
return {
|
|
"module": "contacts",
|
|
"status": "stub",
|
|
"note": "люди, группы, каналы доставки",
|
|
}
|
|
|
|
|
|
@ui_router.get("/", response_class=HTMLResponse)
|
|
async def contacts_ui_home(request: Request):
|
|
del request
|
|
inner = """<h1>Контакты</h1>
|
|
<p>Люди, группы, каналы уведомлений.</p>"""
|
|
return HTMLResponse(
|
|
wrap_module_html_page(
|
|
document_title="Контакты — onGuard24",
|
|
current_slug="contacts",
|
|
main_inner_html=inner,
|
|
)
|
|
)
|