zov-tech/backend-py/app
wasrusgen 76fce9ec58 feat(analytics): assembler schedule parser + analytics screen
Backend:
- assembler_parser.py: parse Excel «Таблица занятости сборщиков»
  - Handles both row-order variants (2026: dates row1; 2025-: dates row2)
  - Extracts amount from end of cell text, supports compound "6030+20100"
  - aggregate(): by_assembler×month + by_month totals
  - In-memory cache with mtime invalidation
- main.py: /api/assembler_analytics — local file first, Drive fallback
  - LOCAL: /app/data/assembler_schedule.xlsx (mounted volume)
  - Config: ASSEMBLER_SCHEDULE_PATH env var override
- config.py: assembler_schedule_file_id for Drive fallback
- docker-compose.yml: /opt/zov-tech/data → /app/data:ro volume

Frontend:
- assembler_analytics.js: year filter, monthly table, assembler ranking
  with progress bars, per-order average, last-6-months breakdown
- app.js: route #/admin/assembler-analytics + "Аналитика" button

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-19 09:44:34 +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 fix(podbor): HTML AI output + home button on all steps 2026-05-19 08:02:09 +03:00
assembler_parser.py feat(analytics): assembler schedule parser + analytics screen 2026-05-19 09:44:34 +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 feat(analytics): assembler schedule parser + analytics screen 2026-05-19 09:44:34 +03:00
drive.py feat: warehouse module — ОТГРУЗКИ.xlsx в дашборде менеджера 2026-05-16 07:21:23 +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(analytics): assembler schedule parser + analytics screen 2026-05-19 09:44:34 +03:00
proposals.py feat: proposal cycle — client brief + manager editor + voting 2026-05-16 09:28:36 +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 feat: kitchen_price в сборках + срочный замер push 2026-05-18 17:38:44 +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