zov-tech/backend-py/app
wasrusgen 7a25ee3d36 feat: загрузка фото к замеру из карточки менеджера
- backend: _handle_measurement_add_photos — дозагрузка фото (до 20 шт за раз)
  сохраняет в PHOTOS_DIR, дописывает в колонку photos через update_cell_by_key
- clients.js: renderPhotoUploadBlock — выбор файлов, превью сетка 3 колонки,
  конвертация в dataURL, POST /api/measurement_add_photos, счётчик в заголовке
- podbor.css: .photo-upload-block, .photo-preview-grid, .photo-upload-actions
- index.html: cache bump → v=20260514p

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-05-15 22:44:45 +03:00
..
parsers parsers: better image extraction — real product photos in report cards 2026-05-11 23:43:25 +03:00
__init__.py feat(infra): Python FastAPI backend + Docker compose for VPS deploy (GigaChat with Russian root CA) 2026-05-10 17:44:21 +03:00
ai.py remove duplicate vent question + AI must propose charcoal filter on recirc hood 2026-05-12 17:22:59 +03:00
auth.py cleanup: drop debug prints — auth fallback verified working 2026-05-12 21:56:53 +03:00
catalog.py catalog: filter junk + background refresh + clear endpoint 2026-05-12 07:09:33 +03:00
config.py backend: proxy_pool supports PROXY_LIST_FILE + format auto-conversion 2026-05-11 15:52:02 +03:00
gcalendar.py A+B: голос в мастере замера + Google Calendar события 2026-05-13 23:49:20 +03:00
geocoder.py geocoder: порт из проекта СЕКРЕТАРЬ + кнопка «По адресу» 2026-05-13 17:55:34 +03:00
main.py feat: загрузка фото к замеру из карточки менеджера 2026-05-15 22:44:45 +03:00
proxy_pool.py backend: proxy_pool supports PROXY_LIST_FILE + format auto-conversion 2026-05-11 15:52:02 +03:00
sheets.py Phase 4 stage 1: Сборки — модель + создание + список 2026-05-14 09:53:40 +03:00
telegram.py feat(infra): Python FastAPI backend + Docker compose for VPS deploy (GigaChat with Russian root CA) 2026-05-10 17:44:21 +03:00