Files
ipam_control/docs/changes/039-device-status/SUMMARY.md
T
ayurishchevandClaude Opus 5.5 9301069c29 Задача 041: favicon из логотипа бренда
web/favicon.svg повторяет .brand-logo шапки: синий скруглённый квадрат с белым глобусом
(геометрия I.globe без изменений, пропорции логотипа), подключён в index.html.
Итог 039 дополнен результатом pytest (17 passed) после включения учётной записи admin.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-09-27 18:26:52 +03:00

26 lines
3.1 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Итог: статус устройства и сведения об устройстве в списке адресов (изменение 039)
План: `PLAN.md`. У устройства появился статус «Активен» / «Выключен» / «На обслуживании», назначаемый вручную на экране устройств.
В списке адресов префикса — колонки «Тип устройства», «Устройство», «Статус устройства».
## Что сделано
| Файл | Изменение |
|---|---|
| `app/models.py`, `alembic/versions/0016_device_status.py` | `DeviceStatus` (`active`/`off`/`maintenance`), `devices.status` NOT NULL, `server_default 'active'` — существующие устройства стали «Активен» |
| `app/schemas.py` | `DeviceIn.status` (по умолчанию `active`), `DeviceUpdate.status`, `DeviceOut.status`; `AddressOut.device_type_name`, `device_status` |
| `app/api/v1/refs.py` | `status` в ответах об устройствах; смена статуса — в журнал через `apply_update` (`device.updated`, `diff.status`) |
| `app/api/v1/prefixes.py` | `list_addresses`: имя, тип и статус устройства одним `outerjoin` на страницу; одиночные ответы (создание/правка/автоназначение адреса) — хелпер `_device_info`, один запрос, раньше `device_name` там не отдавался |
| `web/app.js` | `DEVICE_STATUS` (бейджи green / нейтральный / amber); «Устройства»: колонка «Статус», выбор статуса в диалоге; «Адреса»: три колонки, «—» у свободных и непривязанных адресов |
| `tests/test_api.py` | `test_device_status_on_address`: устройство `maintenance` → поля в списке адресов; `PATCH status=off` |
| `README.md` | Модель данных (устройства), «Интерфейс», миграции `0001`–`0016`, строка 039 |
## Проверки
- `pytest -q` — 17 passed, включая `test_device_status_on_address` (прогон после изменения 041, когда учётная запись `admin` снова включена).
- Миграция 0016 применена, `alembic check` чисто, откат до 0015 и повторный upgrade — без ошибок; 3 существующих устройства — `active`.
- Статус в API — строка (`"maintenance"`), не представление enum (проверено сериализацией `AddressOut`).
- `node --check`, `py_compile`, `import app.main` — чисто; стенд пересобран (`--force-recreate`), healthy, отдаёт новый `app.js`.
- Новых литеральных цветов в `app.js` нет (бейджи — существующие классы, тёмная тема не затронута).
## Не проверено
- UI — ручная проверка пользователя.