Files
ros_control/docs/changes/013-bulk-delete-backups/summary.md
T
ayurishchevandClaude Sonnet 5 0914209bf8 Групповое удаление бэкапов, поддержка CHR, строгое сравнение версий ROS
Групповое удаление бэкапов (docs/changes/013):
- страница «Резервные копии»: чекбоксы, «выбрать все», панель «Выбрано: N /
  Удалить / Снять выбор» вместо фильтров, подтверждение, итог удаления;
- backups.delete_many: все ключи проверяются до удаления, удаление параллельное;
  UI POST /backups/delete-many, API POST /api/v1/backups/delete;
- выбор строк в app.js обобщён (data-select) для устройств и бэкапов.

Поддержка CHR (docs/changes/014):
- у CHR нет /system/routerboard (HTTP 400): устройство больше не считается
  недоступным, версия FW не показывается, обновление FW пропускается;
- «есть обновление ROS» определяется строгим сравнением версий (на канале
  long-term последняя версия может быть старше установленной);
- в таблице указана причина недоступности: авторизация / ошибка ответа /
  нет соединения.

Тесты: 11 из 11.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
2026-09-19 14:11:32 +03:00

1.9 KiB

Итоги: 013 — групповое удаление бэкапов

Сделано

  • Макет (версия 6): колонка чекбоксов и новый лист с панелью группового удаления.
  • Приложение: выбор строк, панель «Удалить / Снять выбор», подтверждение с числом файлов, итог на странице, сохранение фильтров при возврате; иконка «корзина».
  • Сервис backups.delete_many, маршрут /backups/delete-many, API POST /api/v1/backups/delete.
  • Логика выбора строк в app.js обобщена (data-select): работает и на устройствах, и на бэкапах.

Проверено

  • pytest: 10 из 10 (новый тест: чужой ключ отклоняет всю операцию и ничего не удаляет; допустимые удаляются; редирект с фильтрами и итогом; API).
  • В браузере на реальном бакете с тремя собственными тестовыми файлами (backups/qa-bulk/…): выбор двух → панель вместо фильтров, подтверждение «(2)», итог «Удалено файлов: 2», фильтр сохранён; «выбрать все» → «Удалено файлов: 1»; ошибок JS нет. Тестовые файлы удалены, файлы MSK_Home и OZ_Dacha не тронуты.

Замечания

  • Удаление необратимо (версионирование бакета не используется приложением) — поэтому подтверждение и ограничение префиксом backups/.
  • Единичное удаление из меню строки «⋯» сохранено.