lizerk
5ab638892b
chore: checkpoint workspace changes
2026-04-13 16:00:53 +03:00
lizerk
993e26e8ed
fix(notifications): normalize action links and request timestamps
2026-04-13 04:02:24 +03:00
lizerk
af423d8d0a
feat(procurement): tighten approval flow and request actions
2026-04-13 02:55:26 +03:00
lizerk
44da9c46c1
feat(ui): unify action menus and procurement comments
2026-04-12 20:07:34 +03:00
lizerk
ae7e1daf89
refactor(frontend): align profile, notifications and procurement flows
2026-04-12 18:02:47 +03:00
lizerk
e3ba6ea925
refactor(ui): stabilize equipment deep links and qr flow
2026-04-12 16:09:38 +03:00
lizerk
1552bbe84b
fix(requests): confirm destructive actions and align surfaces
2026-04-12 07:19:12 +03:00
lizerk
c56fdbb915
feat(frontend): align employee profile flows
2026-04-12 06:27:18 +03:00
lizerk
097a3015e8
fix(profile): stabilize directory login and expand ldap coverage
2026-04-12 04:13:32 +03:00
lizerk
b98a82176c
test(ldap): add live integration coverage and fix sync paths
2026-04-12 03:51:52 +03:00
lizerk
f5a908e443
feat(auth): restore password reset flow and polish auth UI
2026-04-12 02:05:13 +03:00
lizerk
7dcf84dcd1
feat(auth): add session management and settings integration
2026-04-11 23:31:14 +03:00
lizerk
8ce997f062
Merge branch 'investigate/master-actual-theme' into develop
2026-04-11 20:53:39 +03:00
lizerk
db05b4fcdb
refactor(frontend): align calendar and list UI
2026-04-11 20:44:16 +03:00
lizerk
6132261d69
Normalize notification email frequency preferences
2026-04-11 00:06:14 +03:00
lizerk
66141197ad
Optimize messages list refresh and chat serialization
2026-04-10 20:54:09 +03:00
lizerk
6042b98aa9
Update websocket read-receipt tests to current contract
2026-04-10 20:54:09 +03:00
lizerk
81b8d29b38
Refactor department LDAP sync around canonical service flows
2026-04-10 20:54:09 +03:00
lizerk
4c24b01f06
фикс 2
2026-04-03 22:30:21 +03:00
lizerk
a94b56ecb7
Выявил и исправил два места, которые вместе хорошо объясняют редкую выборочную недогрузку при скролле вверх.
2026-04-03 22:12:09 +03:00
lizerk
219a93215f
Improve deleted reply preview context
2026-04-03 21:01:10 +03:00
lizerk
71d0a6092c
Refine chat reply preview behavior
2026-04-03 20:53:52 +03:00
lizerk
9b23f480c2
Refine search routing and deep links
2026-04-03 20:30:29 +03:00
lizerk
111ddb2bfd
Refactor modals and add chat message search
2026-04-03 19:53:31 +03:00
lizerk
e80412918d
Refactor chat frontend and optimize chat queries
2026-04-03 17:05:14 +03:00
lizerk
c4253f6a78
Add readers avatars and emoji picker
2026-04-03 11:43:29 +03:00
lizerk
c5f53cca15
Improve chat delivery states and read details
2026-04-03 11:10:14 +03:00
lizerk
d1aea28be9
Add websocket read receipts and AsyncAPI docs
2026-04-03 09:55:10 +03:00
lizerk
0a71d6a3c9
Read notifications for opened chat
2026-04-02 11:26:09 +03:00
lizerk
f03887aa00
Suppress chat notifications for active websocket session
2026-04-02 10:05:20 +03:00
lizerk
3ca4d108b6
refactor: split monolithic api.ts into domain modules, extract AppShell calendar/mobile concerns
...
- Split frontend/src/lib/api.ts (2042 lines) into 12 focused domain modules:
client.ts (base HTTP/auth), calendar.ts, documents.ts, employees.ts,
equipment.ts, feed.ts, messages.ts, notifications.ts, procurement.ts,
requests.ts, utils.ts, and index.ts barrel that preserves all existing imports
- Extract calendar modal state from AppShell into useCalendarModals hook
- Extract CalendarModals and MobileDrawers into components/layout/
- AppShell: 745 → 460 lines, focused on layout concerns only
- Fix setState-in-effect lint error with startTransition pattern
- Stabilize notifications memo to prevent unnecessary re-renders
- Fix flaky WS test: handle CancelledError in channels-testing cleanup
- All 609 backend tests pass, TypeScript typecheck clean, ESLint clean
2026-04-01 15:56:10 +03:00
lizerk
613248905e
Refactor realtime sync and message UI
2026-04-01 15:20:27 +03:00
lizerk
0833eb13ce
Исправил падение старта ASGI/JWT: перестроил порядок инициализации Django в ASGI и убрал ранние Django/SimpleJWT импорты из middleware.
2026-03-31 20:28:18 +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
9edb44502a
Harden backend warnings and lint policy
2026-03-31 17:19:59 +03:00
lizerk
3f59f8ebb9
Add backend OpenAPI docs and clean test suite
2026-03-31 17:05:31 +03:00
lizerk
c8f78cb0b6
фикс зависимостей
2026-03-30 04:48:04 +03:00
lizerk
f88d90230b
refactor: clean architecture, align tests to current API contracts, all tests green [deploy-ready]
2026-03-30 04:27:18 +03:00
lizerk
bdd6e48c46
фикс мидлвари на регу
2026-03-30 02:23:59 +03:00
lizerk
260f684c75
удалил тест
2026-03-30 02:17:46 +03:00
lizerk
825726e0f0
chore: commit remaining backend and frontend changes, remove legacy test, add missing migrations
2026-03-30 02:17:28 +03:00
lizerk
2031872461
refactor(procurement): approval logic now fully driven by ApprovalRoute table (priority+min_amount), removed hardcoded steps, all workflow is DB-driven; tests and migrations updated
2026-03-30 02:16:29 +03:00
lizerk
c61b62969a
Мелкие правки: обновлены serializers.py и views.py для procurement
2026-03-27 18:14:55 +03:00
lizerk
3a2d05a64d
feat(requests): улучшены фильтры по датам, исправлена логика фильтрации, добавлена инструкция по тестированию
2026-03-27 14:57:31 +03:00
lizerk
540e295ef4
feat: Fix LDAP DN bugs + add password management in admin
...
BREAKING CHANGES:
- Department.head автоматически очищается при увольнении руководителя
- LDAP managedBy атрибут очищается при увольнении
Fixes:
- DN не перемещался при восстановлении сотрудника (Dismissed → Users)
- DN не перемещался при увольнении сотрудника без отделов
- Ошибка при увольнении из множественных отделов (двойной modify_dn)
- Неправильные URL patterns для LDAP моделей в админке
- Двойное кодирование DN в редиректе смены пароля
Features:
- Добавлен метод _ensure_ldap_dn_location для гарантированного перемещения DN
- Добавлена проверка already_there в sync_department_member_to_ldap
- Управление паролями LDAP пользователей через админку:
* Кнопка смены пароля в карточке пользователя
* Массовое действие смены пароля
* Автосинхронизация с Django password hash
- Автоочистка Department.head и LDAP managedBy при увольнении руководителя
- Добавлены методы set_password() и change_password() в LdapUser
Changed:
- Переписан сигнал sync_department_member_to_ldap с реальными методами
- Исправлены URL patterns: ldap_* → employees_*
2026-03-23 20:32:39 +03:00
lizerk
1a3d533c1d
админка +
2026-03-22 13:55:26 +03:00
lizerk
4c5ea98743
админка+
2026-03-20 14:44:41 +03:00
lizerk
2688df46ef
Fix: Wrap all unsafe int() conversions with try/except
...
Fixed ValueError-prone int() calls in:
- communications/api/viewsets.py (4 places: limit, before_limit, after_limit)
- notifications/api/views.py (2 places: page, page_size)
- api/v1/search/views.py (1 place: limit)
- api/v1/procurement/views.py (1 place: quantity)
Also updated audit script to exclude .venv/
2026-03-20 09:10:33 +03:00
lizerk
2ef43e7177
Feature: Add code quality audit tools and safe helpers
...
- Created CODE_QUALITY_CHECKLIST.md with comprehensive guide
- Added audit_code_patterns.sh for automated code scanning
- Created common/request_utils.py with safe_int(), safe_bool(), etc.
- Fixed unsafe request.data access in notifications/api/views.py
- Updated ldap_password_mixin.py docstring with safe example
Audit found and documented:
- 10 unsafe request.data['key'] accesses
- 8+ unsafe int() conversions without try/except
- Multiple .strip() calls without None checks
2026-03-20 09:06:55 +03:00