2 Commits

Author SHA1 Message Date
Sadmin d5a270f3af B22: прикладное логирование vector.* + администрирование в доках (по образцу РВС)
- backend/logging_setup.py: setup_logging() (stdout INFO + файл /tmp/vector/vector.log,
  ротация 5×2 МБ, VectorLOGLEVEL/VectorLOGFILE/VectorLOGDIR), get_logger('vector.*')
- события: vector.analyze (матрасчёт с длительностью), vector.auth (login_ok/failed/
  lockout), vector.audit (каждая запись), vector.contour (ok/failed/rejected),
  vector.operations (operation_complete), vector.geocode (успех/timeout/ошибка)
- существующие логгеры переведены в namespace vector.* (geo, geo.osm, rules, water, admin)
- README §13а: таблица наблюдаемых событий + правила (без ПДн/секретов)
- SETUP_GUIDE: §15 RPO/RTO + backup≠restore, §16 grep по vector.*, §17 диагностика
  по цепочкам (БД, 500, fallback-зоны, вход), §17а чек-лист передачи проекта
- DEPLOY.md: вместо устаревшего дубля — ссылка на актуальные доки + шпаргалка стенда
- тесты: 239 passed
2026-09-25 09:38:39 +03:00
Sadmin fa466fc5ed UI: один адрес на шаге с координатами + рабочее геокодирование + авто«прошло времени»
- Step3Circumstances: удалено дублирующее «Последнее известное место»
  (last_known_place); остаётся только tnp_address на шаге координат.
- Step4Environment: кнопка «Найти координаты» теперь РАБОЧАЯ — вызывает
  новый GET /api/v1/geocode (прокси Nominatim, countrycodes=by, короткий
  запрос «пункт, адрес» по граблям geocoding), заполняет lat/lon,
  показывает найденный display_name или ошибку. Без debounce-автоплейса
  (Pitfall 2) — только явный клик.
- Step3Circumstances: «Прошло времени» считается автоматически из
  lost_time (пересчёт каждые 30 с, округление до 0.1 ч); поле остаётся
  редактируемым для корректировки.
- БАГФИКС: форма шлёт lost_time, модель хранит loss_time — алиас в
  _normalize_case_data. Раньше время пропажи молча терялось
  (Pydantic игнорирует неизвестные поля) — elapsed_hours приходилось
  вводить руками.
- last_known_place убран из валидации шага 4.
- backend/routers/geocode.py: Nominatim-прокси с auth (operator/field/admin).

192 passed, JSX валиден.
2026-09-09 19:18:20 +03:00