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

3.1 KiB
Raw Blame History

Итог: статус устройства и сведения об устройстве в списке адресов (изменение 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 — ручная проверка пользователя.