Документация
0d0a5aa — 2026-10-18 20:40 — Alazar
feat: rename to Lab, add send/cleanup UI, new import table and create modal, fix cancel status
f33e55d — 2026-10-17 21:10 — Alazar
Feat: systemd-юнит, WhiteNoise, оптимизация импорта, 3 потока, UI прогресса и защита от нехватки места
1a84282 — 2026-10-17 02:26 — Alazar
Мини-админка: пять страниц (/, /import/, /import/
Модель ImportJob — статус, прогресс, лог, статистика.
Фоновый импорт в потоке, кнопка «Отмена».
Команды pack_event, push_event.
Кнопка «Проверить связь с VPS».
06aff92 — 2026-10-16 23:03 — Alazar
feat: импорт-сервис, media_metadata, команды import_media/generate_video_posters
c36ae39 — 2026-10-16 02:27 — Alazar
feat(catalog): три поля Event — external_id, storage_root, slug
- external_id: UUIDField(unique), генерируется в модели
- storage_root: hot/cold, db_index
- slug: {id:04d}_{sanitized_title}, генерируется в save()
- migrations 0009: nullable → RunPython fill → unique
b06b40c — 2026-10-16 00:50 — Alazar
feat(importer): sanitize.py — транслит имён файлов и папок
Правила §5.1-bis ARCHITECTURE.md: - транслит кириллицы (украинские + русские буквы) - пробел → _, спецсимволы → _, схлопывание __, обрезка по краям - sanitize_path обрабатывает путь покомпонентно
eb2f34b — 2026-10-16 00:48 — Alazar
feat(catalog): модели каталога, миграции 0001–0008, admin
- apps/catalog/models.py: 10 моделей (Organizer, TeamMember, Event, ProgramScan, Expense, ExtraIncome, Block, Category, Performance, Media)
- Favorite/CartItem/UserEventDiscount — не переносим, только на VPS
- migrations 0001–0008 идентичны web/ — схема БД совпадает для pg_dump
- admin.py: все 10 моделей зарегистрированы, Media через raw_id_fields
- apps.py: name = 'apps.catalog', verbose_name = 'Каталог'
- config/settings.py: INSTALLED_APPS — apps.catalog вместо apps.core
da4b14f — 2026-10-16 00:23 — Alazar
chore: инициализация znymkari-data — каркас Django
- Django 6.1.1, config/{settings,settings_local}.py
- apps: core (модели каталога), importer (импорт), dashboard (мини-админка)
- requirements.txt: Django, psycopg2-binary, gunicorn, Pillow, requests, tzdata
- .gitignore: pycache, db.sqlite3, config/settings_local.py, media/, _storage/
- templates/, static/