38 Commits

Author SHA1 Message Date
lizerk
df2377431d feat: expand documents tasks and procurement workflows 2026-07-17 14:09:06 +03:00
lizerk
e190affc7c feat: link procurement requests with tasks 2026-07-06 15:45:17 +03:00
lizerk
0dbd817c60 feat: refine procurement approval access and employee statuses 2026-07-06 10:43:52 +03:00
lizerk
0b45888f5c feat: improve documents and procurement workflows 2026-07-06 10:13:27 +03:00
lizerk
32500e3037 chore: checkpoint current project changes 2026-06-20 10:47:00 +03:00
lizerk
947883243c Show procurement arrival notice timestamp 2026-06-11 19:35:16 +03:00
lizerk
b16b74c060 Refine procurement notifications 2026-06-11 18:03:08 +03:00
lizerk
31b91fe15c Improve procurement receipt handling and avatar crop 2026-06-11 17:19:44 +03:00
lizerk
76799c453e Allow procurement executor reassignment 2026-06-09 12:43:48 +03:00
lizerk
4555ee9bf7 Fix procurement viewed state and item actions 2026-06-08 16:25:19 +03:00
lizerk
d6a7ce530d Fix procurement unit selection and labels 2026-06-08 15:46:42 +03:00
lizerk
a794ff40c8 Support multiple expected delivery dates 2026-06-01 22:13:40 +03:00
lizerk
e6eee5ddf8 Allow procurement requests for any department 2026-06-01 11:26:33 +03:00
lizerk
520abbf4d0 procurement: refine item fulfillment workflow 2026-05-28 14:13:14 +03:00
lizerk
b1a5ac34ef procurement: fix department workflow UI bugs 2026-05-27 18:36:18 +03:00
lizerk
ddeef4653c procurement: refine request workflow and filters 2026-05-27 15:54:10 +03:00
lizerk
4a05618ed7 procurement: route requests through processing department 2026-05-26 17:25:31 +03:00
lizerk
da986c0e29 procurement: refine fulfillment workflow 2026-05-26 17:02:30 +03:00
lizerk
b40f32e849 procurement: add workflow notifications 2026-05-22 16:53:04 +03:00
lizerk
9cd21a1b1e procurement: add item comments 2026-05-22 14:57:45 +03:00
lizerk
88b0755e82 procurement: allow higher approver bypass 2026-05-22 14:42:06 +03:00
lizerk
fce272d352 procurement: add processing department workflow 2026-05-22 13:46:53 +03:00
lizerk
4ad946da8b fix(api): include approver avatars in procurement approvals 2026-04-13 16:35:34 +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
e3ba6ea925 refactor(ui): stabilize equipment deep links and qr flow 2026-04-12 16:09:38 +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
3f59f8ebb9 Add backend OpenAPI docs and clean test suite 2026-03-31 17:05:31 +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
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
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
ed636081dc refactor: complete notifications v2 system with frontend translation
- Remove hard-coded Russian translations from backend API
- Backend now returns raw verb values (language-agnostic)
- Implement frontend translation functions for notification titles and categories
- Add category badge system with filters on notifications page
- Create translation utilities in frontend (verbTranslations.ts)
- Add notification settings page structure
- Update API endpoints to return simplified notification data
- Refactor notification signals across all apps
- Remove deprecated code and tests
- Add comprehensive documentation for v2 migration

Backend changes:
- notifications/api/views.py: Remove translation logic, simplify responses
- All notification_signals.py: Update to use consistent patterns
- Remove deprecated Telegram bot command
- Update Celery tasks for new notification structure

Frontend changes:
- app/notifications/page.tsx: Add translation functions and category badges
- hooks/useNotificationWebSocket.ts: New WebSocket hook for real-time updates
- lib/verbTranslations.ts: Centralized translation mappings
- components/NotificationCenter.tsx: Update to use new API format

This makes the notifications module fully reusable and project-independent.
2026-03-09 21:35:36 +03:00
lizerk
70f9c1950d fix: исправлены URL-ы в уведомлениях на существующие страницы фронтенда
- /requests/{id}/ → /requests
- /documents/{id}/ → /documents
- /calendar (вместо /?event_id={id})
- /procurement/orders/{id}/ → /procurement
- /messages (вместо /communications/chats/{id}/)
- / для постов ленты

Теперь клик по уведомлениям не вызывает 404 ошибки
2026-03-09 10:05:57 +03:00
978ed9a819 fix: aligned ProcurementItem permissions with ProcurementRequest logic
- Added comprehensive permission checks in perform_create()
- Created _check_item_edit_permission() helper method
- Updated perform_update() and perform_destroy() to use helper
- Permission logic now matches CanManageProcurementRequest:
  * Admins/Staff can edit items in DRAFT requests
  * Users with change_procurementrequest permission
  * Request author can edit their own requests
  * Department head can edit requests from their department
- Fixes 403 Forbidden error when creating/editing/deleting items
2025-12-10 17:02:40 +03:00
b787df45f6 refactor: синхронизированы статусные бейджи во всех шаблонах закупок
- Обновлены иконки статусов в dashboard.html и request_list.html
- Все статусы теперь используют одинаковые иконки и стили
- Добавлены функции getStatusBadgeHTML() для динамического рендеринга
- Исправлена синтаксическая ошибка в loadRequests()
- Статусы: draft, pending, approved, rejected, in_progress, completed, cancelled
2025-12-10 16:37:14 +03:00