Список расчётов
Все выполненные расчёты: дата, фрагмент, режим, температура наружного воздуха, название и автор. Отсюда открывается протокол любого расчёта и удаляются ненужные расчёты вместе с результатами.
Возможности
- Все расчёты города: номер, дата, фрагмент, режим («Плановый», «Плановый (по граф.)», «Аварийный (дет.)», «Аварийный (экв.)», «Аварийный, летний»), Tн, название, автор.
- Фильтры: фрагмент, режим, автор (часть имени), «С даты», «По дату»; по 25, 50 или 100 строк на странице.
- «Протокол расчёта» — открыть протокол любого расчёта.
- Удаление расчёта вместе с результатами.
Как это работает
Список читается из таблицы calculation. Метка «текущий» — расчёт фрагмента с наибольшим номером: его результаты показывают карта, карточки и пьезометр. Удаление в одной транзакции стирает строку расчёта и все его строки в таблицах *_out; после удаления текущего расчёта текущим становится предыдущий. Протокол запуска (calculation_protocol) не удаляется: он остаётся в «Сохранённых протоколах», но уже без ссылки на расчёт. Если номер расчёта есть в других таблицах базы (не *_out, например iznos — износ оборудования), удаление отменяется целиком и сообщение называет эти таблицы.
Что нужно для работы
- Удалять: право «Сохранение расчётов» и включённая на сервере правка данных (
MUTATIONS_ENABLED). Свои расчёты удаляет режимщик, чужие — редактор и администратор. Подсказка у кнопки удаления объясняет, почему она недоступна.
Шаги
Список расчётов: фильтры по фрагменту, режиму, автору и датам. Метка «текущий» — расчёт, который показывается на карте для фрагмента. Справа — «Протокол расчёта» и удаление.

Удаление спрашивает подтверждение: удаляются расчёт и все его результаты (ut_out, us_out, pt_out и прочие *_out). Для текущего расчёта — отдельное предупреждение. Отменить удаление нельзя.

Если не получается
- «Удаление выключено на сервере» —
MUTATIONS_ENABLEDвыключен. - «Чужой расчёт может удалить editor или admin».
- «На расчёт ссылаются данные вне результатов расчёта (iznos: 3)…» — на расчёт опираются другие данные (в примере — расчёт износа); сначала удалите их.
Для разработчика
- API:
GET /api/v1/calculations(file_id,mode,author,date_from,date_to,limitдо 500,offset),DELETE /api/v1/calculations/{id}. - Веб:
components/CalculationsDialog.vue; права —utils/permissions.ts(canSaveCalc). - Тесты:
tests/components/CalculationsDialog.spec.ts(в том числе удаление режимщиком своего и чужого расчёта); API —tests/test_calculation_admin.py; e2e —e2e/functions/analysis.spec.ts(расчёт и его удаление из списка).
