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:
30
CHANGELOG.md
30
CHANGELOG.md
@ -2,6 +2,36 @@
|
||||
|
||||
Формат: семантическое версионирование `MAJOR.MINOR.PATCH`. Git-теги `v1.0.0`, `v1.1.0` и т.д. — см. [docs/VERSIONING.md](docs/VERSIONING.md).
|
||||
|
||||
## [1.4.0] — 2026-04-03
|
||||
|
||||
Правое меню «Разделы» на главной и на страницах модулей, пункты из `MODULE_MOUNTS` (`title` + `ui_router`).
|
||||
|
||||
- **`nav_rail_html`**, **`wrap_module_html_page`**, общие стили **`APP_SHELL_CSS`** в `modules/ui_support.py`.
|
||||
- Модуль **schedules** в реестре переименован для примера: **`title` = «Календарь дежурств»**.
|
||||
|
||||
## [1.3.0] — 2026-04-03
|
||||
|
||||
Веб-UI модулей с главной страницы и изоляция ошибок превью.
|
||||
|
||||
### Добавлено
|
||||
|
||||
- **`ModuleMount`**: поля `slug`, `title`, опционально `ui_router`, `render_home_fragment`.
|
||||
- **`/ui/modules/<slug>/`** — монтирование `ui_router` каждого модуля (полные HTML-страницы, не в OpenAPI).
|
||||
- **Главная `/`**: секция «Модули» с карточками; фрагменты через **`ui_support.safe_fragment`** (падение одного модуля не ломает страницу).
|
||||
- Примеры в `schedules`, `contacts`, `statusboard`; тесты `tests/test_root_ui.py`.
|
||||
|
||||
## [1.2.0] — 2026-04-03
|
||||
|
||||
Модульная разработка без правок `main.py` на каждый новый роутер.
|
||||
|
||||
### Добавлено
|
||||
|
||||
- **`onguard24/modules/registry.py`** — единый список `MODULE_MOUNTS` (роутер, префикс URL, `register_events`). Подключение роутеров в `create_app()` циклом.
|
||||
- У каждого модуля (`schedules`, `contacts`, `statusboard`) функция **`register_events(EventBus)`** — заготовка подписки на `alert.received`.
|
||||
- **`app.state.event_bus`**: при старте создаётся `InMemoryEventBus`, вызывается `register_module_events`.
|
||||
- **Ingress Grafana:** `INSERT … RETURNING id`, затем **`publish_alert_received`** с ссылкой на строку `ingress_events`.
|
||||
- Документация: [docs/MODULES.md](docs/MODULES.md).
|
||||
|
||||
## [1.1.0] — 2026-04-03
|
||||
|
||||
Инфраструктура разработки и задел под домен IRM.
|
||||
|
||||
Reference in New Issue
Block a user