zov-tech/backend-py/app
wasrusgen 02f8dba469 feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker
New modules:
- expeditor_dashboard.js: route list (date-grouped) + act detail + signature screen
- invoice.js: 3-col chip room picker, 2500₽ base + 1000₽ extra logic
- act4.js, measurer_dashboard.js, finance_summary.js, client_timeline.js, feedback.js, staff_roster.js

Backend:
- /api/expeditor_inbox: filtered assembly list for expeditor role
- /api/act4_request_otp: 6-digit OTP via Telegram, 10-min expiry
- /api/act4_verify_otp: validates code, marks act as signed
- /api/act4_save_signature: saves base64 canvas signature
- Act4s sheet: added signature_b64, otp_code, otp_expires_at columns

Tests:
- tests/expeditor_scenarios.md: 11 manual test scenarios

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-21 14:11:20 +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 feat: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +03:00
assembler_parser.py feat: assembler dashboard, contracts module (Act №3), assembly rates 2026-05-19 12:23:44 +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: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +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: expeditor cabinet, electronic signature (OTP+canvas), invoice room picker 2026-05-21 14:11:20 +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