zov-tech/miniapp
wasrusgen e808880d8e A+B: голос в мастере замера + Google Calendar события
A — голосовой ввод заметок в мастере замера:
- Кнопка 🎤 Диктовать рядом с textarea «Заметки»
- Web Speech API ru-RU, interimResults показывает диктовку в реальном времени
- Текст накапливается + сохраняется в state
- Красная пульсация во время записи

B — Google Calendar:
- Новый модуль app/gcalendar.py — service account + Calendar API
- Создание/обновление события при /api/measurement_schedule
- 2 новые колонки в Measurements: gcal_event_id, gcal_event_url
- При ошибке (нет API/прав) — fail gracefully, лог warning
- Ссылка «📅 Открыть в Google Calendar» в карточке заявки
- В DM менеджеру при назначении — clickable ссылка на событие
- Требует env: GOOGLE_CALENDAR_ID + SA добавлен в редакторы календаря

ДОПОЛНИТЕЛЬНО — заведение клиента менеджером:
- Новый endpoint /api/client_create
- /api/clients теперь читает И Leads И Measurements (включая draft)
- UI: action card «Новый клиент» в quick-actions + кнопка
  «+ Новый клиент» в шапке списка клиентов
- Форма (ФИО / Тел / Адрес / Примечание с 🎤 диктовкой)
- После сохранения — переход в карточку клиента
- has_role проверка вместо устаревшего user.role

Cache bust v=20260513zn.
2026-05-13 23:49:20 +03:00
..
assets A+B: голос в мастере замера + Google Calendar события 2026-05-13 23:49:20 +03:00
font-preview.html add font preview page with 14 cursive variants for slogan 2026-05-13 10:37:35 +03:00
index.html A+B: голос в мастере замера + Google Calendar события 2026-05-13 23:49:20 +03:00
preview-all-picts.html miniapp: 25 SVG pictograms for 7 remaining categories (style D · 3D) 2026-05-11 21:27:40 +03:00
preview-fridge-styles.html miniapp: add fridge style preview — 4 styles × 4 variants for comparison 2026-05-10 23:26:30 +03:00
preview-fridges.html miniapp: redraw fridge pictograms in style D (3D perspective with shadow) 2026-05-10 23:33:07 +03:00
preview-report.html user feedback batch: model count, specs, manual link, dimensions, export 2026-05-11 17:11:30 +03:00