- FIELD_ENCRYPTION_KEY: production требует явный ключ (ImproperlyConfigured
при пустом), local — fallback на SECRET_KEY с предупреждением (crypto.py)
- MATTERMOST_INTERACTIVE_TOKEN: fail-closed токен для интерактивных кнопок
Mattermost (bot_service task-done URL + проверка в mattermost views)
- Ужесточение прав API (employees/visit_manager) + тесты
(employees, mattermost_connector, visit_manager)
- .env.example с описанием переменных; правки шаблонов (index/dislocation/pharmacies)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Мультиязычность: русский — базовый (msgid), украинский и английский — переводы.
- Настройки: LocaleMiddleware, LANGUAGES=[ru,uk,en], LOCALE_PATHS, i18n
context_processor; urls: django.conf.urls.i18n (set_language)
- Шелл index.html: {% load i18n %}, все пункты навигации/меню/пользовательского
меню/нижней навигации помечены {% trans %}; динамический <html lang>;
переключатель языков в хедере (select -> set_language)
- Каталоги locale/uk и locale/en: переведены строки меню/шелла (34), собраны .mo
- .gitignore: разрешено трекать locale/**/*.mo (нужны на проде, CI нет)
Остальные страницы пока на украинском (хардкод) — переводятся дальше поэтапно.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>