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 валиден.
This commit is contained in:
@@ -67,6 +67,10 @@ def _normalize_case_data(data: dict[str, Any]) -> dict[str, Any]:
|
||||
'last_known_place': 'tnp_address',
|
||||
'reason': 'loss_reason',
|
||||
'clothes_shoes': 'shoes',
|
||||
# Форма шлёт lost_time (datetime-local), модель хранит loss_time.
|
||||
# До 2026-09-09 время пропажи молча терялось (Pydantic игнорирует
|
||||
# неизвестные поля) — elapsed_hours приходилось вводить руками.
|
||||
'lost_time': 'loss_time',
|
||||
}
|
||||
for source, target in aliases.items():
|
||||
if source in normalized and target not in normalized:
|
||||
|
||||
Reference in New Issue
Block a user