lokses
83ebf8f12a
deps: чистый requirements.txt + недостающие рантайм-зависимости
...
- pyotp, qrcode — были не указаны, но нужны для 2FA (twofa.py); на чистом
проде без них 2FA бы не поднялась.
- defusedxml, fonttools, pyasn1, typing_extensions — транзитивные (fpdf2/ldap3).
- gunicorn сохранён.
Список сверен с венвом проекта; системный мусор Fedora (pip freeze не того
интерпретатора) сюда не попадает.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-09-10 16:48:08 +03:00
lokses
719d0b737b
infra: надёжное обнаружение тестов, Redis-кэш и хардненинг прода
...
- AcoreDiscoverRunner собирает tests/tests_* всех локальных приложений
(manage.py test находил 38 тестов из ~466 — теперь все).
- CACHES на Redis (отдельная DB от Celery) + обязательный requirepass
в production, SECURE_HSTS_PRELOAD.
- Фикс stored-XSS в админке: format_html вместо mark_safe + f-string.
- Утилиты безопасности/тестов, шифрование полей.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-09-09 18:03:11 +03:00
lokses
ae5c1f1848
Add RRO, portal section perms, dislocation presets, and hiring intern flow.
...
Ship cash-register registry, section-based portal access, configurable dislocation columns, and trial-hire intern accounts with credentials PDF.
2026-08-09 14:58:17 +03:00
lokses
ab29cd5db8
Хвосты аудита: тесты tasks/employees + чистка зависимостей
...
- apps/tasks/tests.py (10): TaskQuerySet.for_user (видимость по ролям),
is_participant (кто меняет статус: автор/відповідальний/співвиконавець,
но не спостерігач), is_overdue, set_status
- apps/employees/tests.py (10): clean() (разделение фармацевт/офис, даты,
самоуправление), has_perm с override (grant/revoke/неактивные/
просроченные/будущие), is_currently_active
- requirements.txt: убран дубль import-export==0.3.1 (используется
django-import-export==4.4.0)
- удалён мёртвый пустой db.sqlite3 (в .gitignore, не трекался)
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-24 10:45:16 +03:00
lokses
78475b58e9
Инфраструктура: Celery, общие утилиты, виджеты, шелл портала
...
- acore: Celery-приложение (брокер из env, eager без брокера), настройки
CELERY_*, регистрация всех новых приложений в INSTALLED_APPS, маршруты
- core/utils: render_page (HTMX-фрагмент/полный layout), is_owner/
is_owner_or_staff; templatetags common_tags (initials, clean_excerpt,
is_it_staff); UpdateLastSeenMiddleware
- static: people-picker (дерево отделов с аватарками), searchable-select
(одиночный выбор с поиском), directory-quick-add, it-manager, pagination;
тема Tailwind v4 пересобрана, лого
- templates: новый шелл index.html (мобильный сайдбар, темы, фон,
user-dropdown) и login с брендингом
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-07-22 17:31:01 +03:00
lokses
5008ba737f
AD integration, Mattermost client rewrite, Equipment brand to Directory
...
- ad_connector: full Django→AD provisioning via ldap3 — LDAP client,
sync service (create/update/rename CN/enable-disable), Celery tasks,
signals (auto-create with panel password, attribute updates, password
sync, block/unblock), sync_users_to_ad management command
- mattermost_connector: rewrite service on mattermostautodriver/httpx,
fix bare except in username generation (catch ResourceNotFound),
format_html args instead of interpolation
- it_manager: Equipment.brand CharField → FK to core.Directory
(equipment_brand type) with data migration
- add missing employees is_staff migration, add requirements.txt
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com >
2026-07-02 16:01:44 +03:00