31 Commits

Author SHA1 Message Date
lizerk
dac0234007 Enforce repository-wide code quality 2026-09-07 19:43:48 +03:00
lizerk
c0185913e6 Centralize secret skill calculation start date 2026-08-26 16:52:50 +03:00
lizerk
154871d693 fix: serialize empty secret skill periods 2026-08-26 15:31:27 +03:00
lizerk
fede6882a2 feat: recalculate secret skills from date 2026-08-26 15:23:48 +03:00
lizerk
65c51b64e3 feat: add task execution secret skill 2026-08-26 11:20:06 +03:00
lizerk
d36996b4e3 fix: treat remote work as employment activation 2026-08-26 10:20:17 +03:00
lizerk
5c896ad589 fix: derive personnel skills from employee actions 2026-08-26 10:03:42 +03:00
lizerk
912b0da773 feat: add reliability and resilience secret skills 2026-08-26 09:50:55 +03:00
lizerk
9d16efadec feat: add secret skill anti-streaks 2026-08-26 09:21:34 +03:00
lizerk
2e807d83dd feat: add attendance secret skills 2026-08-26 08:50:00 +03:00
lizerk
dec526898e refactor: confirm skill rarity at fifty xp 2026-08-25 15:25:44 +03:00
lizerk
53871a8f37 feat: weight task skill rewards by role 2026-08-25 14:57:15 +03:00
lizerk
ae4eb4696a feat: add skill ranks and progression 2026-08-25 13:28:43 +03:00
lizerk
f3d2d2fe44 Hide excluded employees from UI-facing APIs and payroll workflows 2026-08-25 10:55:38 +03:00
lizerk
aaa1da663c refactor: unify observability and realtime updates 2026-08-14 22:49:20 +03:00
lizerk
8fd5ae1054 feat: expand document procurement and request workflows 2026-08-04 20:19:12 +03:00
lizerk
5946173a07 feat(finance): add payroll point source details 2026-07-21 13:33:31 +03:00
lizerk
01490aa20b Improve employee stats and task card text 2026-07-12 21:22:55 +03:00
lizerk
92fb845b70 Fix birthday event sync lifecycle 2026-05-14 16:32:27 +03:00
lizerk
3a20c3d86a Normalize personnel events and attendance state 2026-04-29 09:54:11 +03:00
lizerk
49002d50a0 Prevent duplicate request employee actions 2026-04-22 14:10:55 +03:00
lizerk
6ee32111db chore: configure vscode flake8 and commit lint cleanup 2026-03-31 19:17:56 +03:00
lizerk
2815efe069 chore: finalize backend lint cleanup 2026-03-31 17:53:29 +03:00
lizerk
a9f87541e0 fix(birthdays): исправлен поиск и обновление событий ДР из персональных календарей
- Убран фильтр по календарю при поиске существующих событий
- События автоматически переносятся из personal-XX в общий календарь birthdays
- Удаляются дубликаты событий ДР для одного сотрудника
2026-03-06 20:59:25 +03:00
lizerk
f60e1fbd2a fix(birthdays): исправлен порядок операций с timezone для корректной длительности событий 2026-03-06 20:49:36 +03:00
lizerk
7ab9041eab -оставил только минуты 2026-03-06 20:34:11 +03:00
lizerk
3b78bf6761 убрал нафиг дату завершения 2026-03-06 20:31:26 +03:00
lizerk
684cd10ba1 убрал минуты 2026-03-06 20:21:20 +03:00
lizerk
40b4a7fc15 - минуты убрал 2026-03-06 20:17:22 +03:00
lizerk
d1ea2d8c6e fix(birthdays): изменена логика календаря ДР на общий календарь
- Изменено событие на длительность до конца дня вместо 2 дней
- Все ДР теперь добавляются в общий календарь '🎂 Дни рождения'
- Убрана логика личных календарей для каждого сотрудника
2026-03-06 17:47:19 +03:00
8e66ac9b65 feat(employees): переход на Service Layer и перенос birthday логики из calendar_app
- Интегрирован django-service-objects 0.7.1 для Service Layer Pattern
- Перенесена вся логика дней рождения из calendar_app → employees:
  * UpsertBirthdayEventService - создание/обновление событий ДР
  * DeleteBirthdayEventService - удаление событий ДР
  * BulkSyncBirthdaysService - массовая синхронизация
  * signals_birthday.py - автосинхронизация через post_save/post_delete
  * management command sync_birthdays - CLI команда синхронизации
  * тесты (11 tests, 6 passing)

- Обновлена миграция 0013_migrate_to_django_scheduler:
  * Добавлен ШАГ 5: автоматическая синхронизация дней рождения (131 событие)
  * Исключены старые события ДР из миграции (source.endswith(':birthday'))
  * Исправлены имена сотрудников (f'{last_name} {first_name}' вместо get_full_name())
  * Добавлен цвет #FFC107 для событий дней рождения

- Очищен calendar_app от birthday сервисов:
  * Удалены calendar_app/services/birthday_events.py
  * Удалены calendar_app/signals_scheduler.py
  * Удалены calendar_app/management/commands/sync_birthdays.py
  * Удалены calendar_app/tests/test_services.py
  * Обновлен apps.py - удалены ссылки на signals_scheduler

- API улучшения:
  * Добавлен api/v1/schedule/permissions.py (IsCalendarOwnerOrAdmin)
  * Обновлен views.py с правильными permissions

- Документация:
  * DJANGO_SERVICE_OBJECTS_INTEGRATION.md - руководство по Service Layer
  * CALENDAR_MIGRATION_ANALYSIS.md - анализ миграции
  * MODERNIZATION_ANALYSIS.md - анализ модернизации кодовой базы

Цель: подготовка к будущему удалению calendar_app, централизация
логики сотрудников в employees приложении.

Refs: #birthday-refactoring
2026-02-27 23:49:09 +03:00