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-schedules"]) ui_router = APIRouter(tags=["web-schedules"], include_in_schema=False) def register_events(_bus: EventBus) -> None: """Подписка на доменные события (например alert.received).""" # _bus.subscribe("alert.received", handler) async def render_home_fragment(request: Request) -> str: """Фрагмент для главной (в root_html вызывается через safe_fragment — падение не ломает главную).""" del request return ( '
' "

Планирование смен и календарь — следующий этап.

" "
" ) @router.get("/") async def schedules_root(): return { "module": "schedules", "status": "stub", "note": "календарь и смены — следующий этап", } @ui_router.get("/", response_class=HTMLResponse) async def schedules_ui_home(request: Request): """Полная HTML-страница: /ui/modules/schedules/ — то же правое меню, что на главной.""" del request inner = """

Календарь дежурств

Здесь будет функционал модуля: смены, календарь, уведомления.

""" return HTMLResponse( wrap_module_html_page( document_title="Календарь дежурств — onGuard24", current_slug="schedules", main_inner_html=inner, ) )