v1.4.0: модули с веб-UI, правое меню, расширенные тесты
Реестр MODULE_MOUNTS: API, ui_router, фрагменты главной, EventBus. Главная и страницы модулей с правой навигацией из реестра; wrap_module_html_page. Ingress: публикация alert.received после сохранения в БД. Документация MODULES.md; pytest покрывает API, UI и навигацию. Made-with: Cursor
This commit is contained in:
@ -1,7 +1,22 @@
|
||||
from fastapi import APIRouter
|
||||
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():
|
||||
@ -10,3 +25,17 @@ async def contacts_root():
|
||||
"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,
|
||||
)
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user