Комментарии на карте

Обсуждение в точке карты: заметка с ответами, упоминаниями коллег через @ и отметкой «решено». Ссылку на ветку можно отправить — она откроет карту в этом месте.

Где найти
«Инструменты» (значок чемоданчика справа вверху) → Эксплуатация → «Комментарии на карте». То же — палитрой команд: Ctrl+K и начните набирать название.
Права
доступно всем, кто вошёл.
Читаю как

Возможности

  • Ветка обсуждения в точке карты: «Новый» → щелчок по месту → текст → «Опубликовать». Ветка помнит вид карты и, если щёлкнули по трубе или узлу, — этот объект.
  • Ответы, правка и удаление своих сообщений; Ctrl+Enter — отправить.
  • @упоминания по логину: упомянутый увидит ветку во вкладке «Мне» и значок «Есть новое».
  • «Решено» закрывает ветку («Решено: кто, когда»); новый ответ открывает её снова, есть и «Открыть снова».
  • Вкладки «Открытые», «Решённые», «Мне», поиск по тексту, «Точки на карте» — все ветки значками на карте.
  • «Скопировать ссылку на ветку» — ссылка откроет карту в точке ветки и саму ветку.

Как это работает

Ветки хранятся в базе города (tgid_map_thread, сообщения — tgid_map_comment), поэтому их видят все пользователи этого города. Упоминания разбираются из текста по @логин и сверяются со списком пользователей. Непрочитанное считается для каждого отдельно (tgid_map_comment_seen): новые сообщения других в ветках, где вы писали или где вас упомянули.

Удаление: сообщение, на которое уже ответили, остаётся строкой «сообщение удалено», чтобы не терялся смысл ответов; ветка из одного сообщения удаляется целиком («Это единственное сообщение — ветка удалится целиком. Удалить?»).

Что нужно для работы

  • Вход в систему, любая роль: писать и читать может каждый, кто видит карту.
  • Список людей для @упоминаний — из базы пользователей; при входе через роли PostgreSQL — из ролей.
  • Миграция 20261030_map_comments.sql в базе города (API применяет её сам).

Шаги

  1. Откройте «Инструменты» и наберите в поиске «Комментарии на карте» — пункт выделен рамкой.

    Пункт «Комментарии на карте» в панели «Инструменты»

  2. Нажмите пункт — откроется окно.

    Окно «Комментарии на карте»

  3. «+ Новый» — окно уступает карту: щёлкните место, о котором речь (Esc — отмена). Окно вернётся с полем «Что обсудить»; @логин упоминает коллегу. Ctrl+Enter или «Опубликовать» создаёт ветку.

    Комментарии на карте: шаг 3

  4. Ветка открыта: место на карте, сообщения с авторами, поле ответа. Ссылка на ветку копируется кнопкой — она откроет карту в этой точке. «Решено» закрывает ветку: она уходит из «Открытых» в «Решённые», но не удаляется. Отметка «Точки на карте» показывает все ветки значками.

    Комментарии на карте: шаг 4

Примеры

Парит у камеры. Обходчик заметил пар у камеры, открывает «Комментарии на карте» → «Новый», щёлкает по камере и пишет: «Здесь парит у камеры, @petrov.s проверьте, пожалуйста». Инженер видит «Есть новое», открывает ветку, ссылка ведёт к камере. После ремонта он отвечает «Заменили сальник» и нажимает «Решено».

Если не получается

  • «Комментарии не загружены», «Ветка не открылась» — нет связи с сервером; повторите.
  • «Комментарий не опубликован» — пустой текст или длиннее 4000 знаков.
  • Упоминание не сработало — логин написан с ошибкой: подсказка при вводе «@» предлагает существующих.

Для разработчика

  • API: routers/map_comments.py, database/map_comments.py — GET /api/v1/map-comments (списки, поиск, до 500), GET …/geojson (точки), GET …/unread, GET …/people, GET …/{thread_id}, POST /api/v1/map-comments, POST …/{thread_id}/comments, POST …/{thread_id}/resolve|reopen, PATCH|DELETE …/comments/{comment_id}.
  • Веб: components/MapCommentsDialog.vue; ссылка на ветку — параметр &c= в адресе карты.
  • Тесты: tests/test_map_comments.py.
Хотите увидеть эту функцию на своих данных?Покажем ТГИД на демонстрации и ответим на вопросы инженеров.
Запросить демо