Публичная карта отключений
Публичная карта отключений для жителей: идущие и объявленные отключения теплоснабжения зонами на карте.
Возможности
- Смотреть без входа идущие и объявленные отключения теплоснабжения города: зоны на карте и список.
- В списке у каждого отключения: «Идёт сейчас» или «Плановое, объявлено» («Аварийное — идёт сейчас», «Аварийное, объявлено»), сроки, текст для жителей, число потребителей и номер отключения.
- Щелчок по строке списка или по зоне на карте — карта приближается к этой зоне; на телефоне список при этом сворачивается.
- Страницу можно вставить на сайт акимата или городского портала через iframe — показ во фрейме ей разрешён.
Как это работает
Откуда данные. Страница раз в 5 минут запрашивает открытую ленту сервера /api/v1/public/outages. В ленту
попадает отключение из окна «Отключения», если одновременно:
- оно в статусе «Объявлено» или «Идёт» (запланированные, но не объявленные, завершённые и отменённые не видны);
- у него отмечено «Показывать на публичной карте (зона, сроки и число потребителей, без их названий)»;
- у него есть зона — то есть при планировании нашлись отключаемые участки.
Статус меняется только вручную в окне «Отключения»: объявленное отключение, срок которого прошёл, остаётся в ленте, пока диспетчер не переведёт его дальше.
Что видит житель. Номер, вид (плановое или аварийное), статус, плановые начало и конец, число потребителей и «Текст для жителей». Сроки — плановые и в часовом поясе браузера. Если начало и конец в один день — «02.11.2026 с 09:00 до 18:00», иначе «с … до …». Сначала идут текущие отключения, затем объявленные, внутри — по началу.
Что скрыто. Название и причина отключения, нагрузка, названия и адреса потребителей, задвижки, номера участков. Лента собирается из тех же данных, что окно «Отключения», но этих полей в ней нет.
Зона на карте — полоса 40 м вокруг отключаемых участков сети (и участков ниже по течению), упрощённая с шагом 10 м. Её строит сервер в момент планирования отключения или при «Пересчитать». Цвет: красный — идёт сейчас, оранжевый — объявлено. Здания по отдельности не выделяются: в зону попадает то, что рядом с трубой. Так и сказано в пояснении под списком отключений: зона — полоса вокруг отключаемых труб тепловой сети, а без отопления и горячей воды останутся дома, которые от них питаются, — даже если сам дом в полосу не попал. Сроки могут измениться; при аварии жителю нужно звонить в диспетчерскую службу своего города.
Подложка — улицы MapTiler. Если ключ MapTiler не задан или стиль не пришёл за 5 секунд, зоны рисуются на простом фоне без улиц.
Что нужно для работы
- На сервере включена публичная лента:
PUBLIC_OUTAGES_ENABLED=true. Без неё страница пишет, что карта не включена. - В окне «Отключения» у отключения отмечено «Показывать на публичной карте» и заполнен «Текст для жителей».
Отметить и изменить это может пользователь с правом «Журналы» при включённой записи на сервере
(
MUTATIONS_ENABLED=true). - Для жителя — только браузер. Вход не нужен.
Шаги
1.

Примеры
Копия Алматы на стенде инструкции. Лента включена, но пуста: страница показывает «Сейчас плановых и аварийных отключений теплоснабжения нет.». В базе есть два учебных отключения по участку 133 («Замена задвижки в камере», 10.11.2026, 1001 потребитель), но оба отменены и без отметки «Показывать на публичной карте».
То же отключение, если его объявить и отметить для публикации. В списке появится строка «Плановое, объявлено», «10.11.2026 с 09:00 до 18:00» (в браузере с часовым поясом Алматы; в базе — 04:00–13:00 UTC), «1001 потребитель · О-2026-00010» и текст для жителей. Названий потребителей и причины в ленте не будет.
Если не получается
- «Публичная карта отключений в этом городе пока не включена» — на сервере выключена публичная лента (PUBLIC_OUTAGES_ENABLED); включает администратор сервера.
- «Не удалось загрузить отключения» — сервер недоступен; страница сама повторит загрузку через 5 минут, можно обновить и вручную.
- Отключения нет на карте, хотя оно объявлено, — не отмечено «Показывать на публичной карте» или у отключения нет зоны (не нашлось отключаемых участков).
- Отключение уже закончилось, а на карте ещё висит, — в окне «Отключения» его не перевели в «Завершено».
- Карта без улиц — не задан ключ MapTiler или он не работает; зоны при этом видны.
- Отключение появилось не сразу — страница обновляется раз в 5 минут; обновите её вручную.
Для администратора
- Флаг API:
PUBLIC_OUTAGES_ENABLED(true,1,yesилиon). Пока он выключен, лента отвечает 404, и страница, и слой отключений на встраиваемой карте пустые. - Лента и
/api/v1/auth/config(название города в заголовке) открыты без входа даже приAUTH_REQUIRED_GET=true. - Подложка:
NUXT_PUBLIC_MAPTILER_KEYу веба. - Показ во фрейме: веб отдаёт для
/outagesзаголовокContent-Security-Policy: frame-ancestors *, для остальных страниц приложения — только свой сайт. Путь считается отNUXT_APP_BASE_URL. - Данные — таблица
tgid_outage(поляpublic,public_note,area).
Для разработчика
- API:
GET /api/v1/public/outages(GeoJSON, без входа) —routers/outages.py,database/outages.py(map_geojsonсpublic_only=True,PUBLIC_STATUSES,AREA_BUFFER,AREA_SIMPLIFY). - Веб:
pages/outages.vue(без общего макета и без клиента API — адрес изruntimeConfig), правила порядка, подписей и цветов —utils/publicOutages.ts, заголовки фрейма —server/middleware/frameAncestors.ts,utils/frameAncestors.ts. - Тесты: vitest —
tests/utils/publicOutages.spec.ts,tests/utils/frameAncestors.spec.ts; API —tests/test_outages.py. Отдельного e2e у страницы нет.
