18 Commits

Author SHA1 Message Date
lizerk
cd64ee4ef7 Add project analytics and improve commerce integrations 2026-09-07 12:23:15 +03:00
lizerk
de48eefdcf chore: ignore generated output artifacts 2026-07-17 14:10:53 +03:00
lizerk
b4de4aa449 chore: prepare EUSRR for public portfolio 2026-06-17 16:21:38 +03:00
lizerk
3ddcabbbbc Ignore playwright CLI artifacts 2026-04-10 20:59:33 +03:00
lizerk
7a4ed36b6e chore(git): stop tracking backend env file 2026-03-30 19:18:06 +03:00
lizerk
f4dc159b25 Add init-samba.sh to gitignore and remove from tracking 2026-03-19 15:25:07 +03:00
lizerk
675a719dba Merge branch 'feature/django-filer-documents' into develop
# Conflicts:
#	.github/copilot-instructions.md
#	.gitignore
#	backend/api/v1/documents/permissions.py
#	backend/api/v1/documents/serializers.py
#	backend/api/v1/documents/views.py
#	backend/api/v1/urls.py
#	backend/calendar_app/migrations/0013_migrate_to_django_scheduler.py
#	backend/documents/admin.py
#	backend/documents/models.py
#	backend/documents/notification_signals.py
#	backend/documents/rules.py
#	backend/eusrr_backend/settings.py
#	backend/eusrr_backend/settings_test.py
#	backend/eusrr_backend/urls.py
#	backend/notifications/management/commands/create_notification_types.py
#	backend/notifications/services.py
#	backend/pytest.ini
#	backend/requirements.txt
#	backend/search/search_indexes.py
#	backend/tests/api/v1/documents/test_documents_api.py
#	frontend/.gitignore
#	frontend/package-lock.json
#	frontend/package.json
#	frontend/src/app/documents/page.tsx
#	frontend/src/app/messages/[chatId]/page.tsx
#	frontend/src/app/messages/page.tsx
#	frontend/src/app/page.tsx
#	frontend/src/app/requests/page.tsx
#	frontend/src/app/search/page.tsx
#	frontend/src/components/CalendarModal.tsx
#	frontend/src/components/CalendarParticipantsModal.tsx
#	frontend/src/components/CalendarSubscriptionsModal.tsx
#	frontend/src/components/EventModal.tsx
#	frontend/src/components/NewChatModal.tsx
#	frontend/src/components/ViewDayEventsModal.tsx
#	frontend/src/components/ViewEventDetailsModal.tsx
#	frontend/src/lib/api.ts
#	frontend/src/types/api.ts
2026-03-06 13:20:34 +03:00
lizerk
d850d45b68 chore: обновление конфигурации проекта
- Добавлена папка backend/media/ в .gitignore для файлов django-filer
- Удалены устаревшие инструкции из copilot-instructions.md
2026-03-06 12:30:49 +03:00
lizerk
6e4eabeb4e test: Configure Celery for integration tests and setup Redis
- Add Celery synchronous execution settings for tests
  * CELERY_TASK_ALWAYS_EAGER = True (no separate worker needed)
  * CELERY_TASK_EAGER_PROPAGATES = True
  * Use memory broker/backend for tests

- Add performance marker to pytest.ini
  * Allows marking tests with @pytest.mark.performance

- Setup Redis server via systemd
  * Enabled redis-server.service for autostart
  * Redis runs on 127.0.0.1:6379

- Update .gitignore to exclude dump.rdb (Redis dump file)

Integration tests status:
- 26/47 tests passing (55%)
- 21 tests failing due to missing NotificationType fixtures
- Tests no longer hang (Celery executes synchronously)

Note: Integration tests require NotificationType fixtures to be created
before document operations trigger notification signals.
2026-03-05 11:49:55 +03:00
lizerk
b32431cefc chore: update .gitignore to prevent zip and report files 2026-03-04 12:50:05 +03:00
f138358862 feat(api): Адаптация API documents для django-filer
- Создан FilerFileField для сериализации filer.File объектов
- При чтении: возвращает URL файла через filer.url
- При записи: создает filer.File из UploadedFile с валидацией размера
- Обновлены serializers для работы с FilerFileField
- Обновлены тесты API: _filer_file() helper, mak_document() использует filer
- Удален устаревший mock documents.notification
- Удален validate_file() (валидация перенесена в FilerFileField)

WIP: Некоторые тесты не проходят, требуется отладка permissions
2026-02-28 01:26:23 +03:00
145d91f15c новый гитигнор 2026-02-27 12:05:10 +03:00
007adadef4 новый гитигнор 2026-02-27 12:05:10 +03:00
224cd66322 chore: добавить .next в .gitignore и удалить build-артефакты
- Добавлены Next.js артефакты в .gitignore:
  * .next/ - папка с dev/production builds
  * out/ - папка статического экспорта
  * .turbo/ - кэш Turbopack
  * *.tsbuildinfo - TypeScript build info
  * next-env.d.ts - автогенерируемые типы

- Удалены все .next файлы из git tracking

Эти файлы генерируются автоматически при разработке и сборке,
не должны быть в репозитории
2026-02-25 01:58:06 +03:00
67a0063d10 chore: добавить .next в .gitignore и удалить build-артефакты
- Добавлены Next.js артефакты в .gitignore:
  * .next/ - папка с dev/production builds
  * out/ - папка статического экспорта
  * .turbo/ - кэш Turbopack
  * *.tsbuildinfo - TypeScript build info
  * next-env.d.ts - автогенерируемые типы

- Удалены все .next файлы из git tracking

Эти файлы генерируются автоматически при разработке и сборке,
не должны быть в репозитории
2026-02-25 01:58:06 +03:00
303fd54d17 feat: setup refactoring infrastructure (Phase 0)
- Created static file structure:
  * static/css/components/ - reusable CSS components
  * static/css/pages/ - page-specific styles
  * static/js/utils/ - utility functions
  * static/js/components/ - interactive components

- Created infrastructure files:
  * static/css/variables.css - CSS custom properties
  * static/css/components/index.css - CSS entry point
  * static/js/utils/index.js - JS utilities entry point
  * static/js/components/index.js - JS components entry point

- Added comprehensive tests:
  * tests/test_static_files.py - 12 tests for structure, syntax, encoding

- Updated .gitignore:
  * Added staticfiles/ to ignore list
  * Clarified that static/ sources are tracked

- Added REFACTORING_PLAN.md:
  * New strategy: extract CSS/JS before HTML decomposition
  * Documented lessons learned from previous attempts
  * Defined phases 0-6 for systematic refactoring
2025-10-28 08:29:43 +03:00
b401e86249 доработка стилей 2025-08-20 11:19:02 +03:00
Игорь Надеин
6fb2cdcea0 feat: enhance Employee model and integrate Telegram/WhatsApp bot
- Add birth_date, created_at/updated_at to Employee; remove username field
- Introduce EmployeeAction for tracking HR events and is_actually_active/status properties
- Create BotSubscriber model (OneToOne relation) for TG/WA binding
- Implement Aiogram-based Telegram bot:
  • request contact to bind by phone or @username
  • department selection keyboard from DEPARTMENTS dict
  • async ORM via sync_to_async, custom filters for bound & active employees
- Update profile view & template:
  • show “Bind Telegram/WhatsApp” button only when not already bound
  • preview avatar on upload
- Remove registration tokens in favor of contact-based auth
- Clean up templates, forms and add avatar validation mixin
2025-07-30 08:15:53 +03:00