Имя устройства задаётся только при создании

Имя входит в ключи бэкапов в S3 (backups/<имя>/…), поэтому после создания
не меняется (docs/changes/015):
- API: PATCH с другим именем → 400 «Имя устройства нельзя изменить»,
  то же имя допустимо;
- UI: в окне изменения поле имени только для чтения, форма изменения
  присланное имя игнорирует;
- вёрстка: минимальная ширина таблиц устройств и файлов — в узком окне
  колонка с именем не схлопывается, включается горизонтальная прокрутка.

Тесты: 12 из 12.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
ayurishchevandClaude Sonnet 5 committed 2026-09-19 15:53:08 +03:00
1 parent 0914209bf8
commit 1e5fb17755
10 files changed
+60 -17

No files matched your search

@@ -0,0 +1,8 @@
# План: 015 — имя устройства задаётся только при создании
Запрос: имя устройства нельзя изменить; оно передаётся только при создании.
Причина важна и технически: имя входит в ключи бэкапов в S3 (`backups/<имя>/…`), группа бэкапа определяется по имени — переименование оборвало бы связь с уже загруженными файлами.
Решение:
- Сервис: `update_device` отклоняет смену имени (`ValueError`, API — HTTP 400); присланное то же имя допустимо.
- UI: в окне изменения поле имени только для чтения (нет атрибута `name`, не получает фокус, подсказка «задаётся при создании и не меняется»); маршрут изменения имя не принимает вовсе.
- Отдельно исправлено найденное при проверке: в узком окне (~1000 px) колонка с именем схлопывалась — таблицам заданы минимальные ширины (появляется горизонтальная прокрутка).
@@ -0,0 +1,7 @@
# Итоги: 015 — неизменяемое имя устройства
- API: `PATCH /api/v1/devices/{id}` с другим `name` → 400 «Имя устройства нельзя изменить»; с тем же именем и другими полями — работает.
- UI: в окне изменения имя только для чтения; форма изменения игнорирует любое присланное имя. При создании имя задаётся и проверяется как раньше.
- Верстка: у таблиц устройств и файлов минимальная ширина — при узком окне колонка с именем больше не схлопывается.
- Проверено: `pytest` 12 из 12 (новый тест: отказ API, то же имя допустимо, форма игнорирует имя); в браузере: поле readonly, ввод не меняет значение, сохранение сохраняет имя, ошибок JS нет.
- Существующие устройства не переименовывались; для смены имени нужно удалить устройство и создать заново (бэкапы в бакете останутся под старым именем).