14 Commits

Author SHA1 Message Date
lizerk
cb5b520e01 feat: add task board module 2026-07-06 13:47:03 +03:00
lizerk
ccad715e36 chore: snapshot current messages and notifications work 2026-04-16 12:07:53 +03:00
lizerk
35a7250183 refactor(ui): polish chat, requests, and profile actions 2026-04-14 23:11:32 +03:00
lizerk
beb4b8b86b refactor(departments): unify department feed and discussion flows 2026-04-14 16:14:52 +03:00
lizerk
7dcf84dcd1 feat(auth): add session management and settings integration 2026-04-11 23:31:14 +03:00
lizerk
6042b98aa9 Update websocket read-receipt tests to current contract 2026-04-10 20:54:09 +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
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
da7bf54c6c feat: Реализация полной функциональности опросов в чатах
- Исправлен PollSerializer для создания опросов с опциями
- Добавлено поле read_only_fields для корректной валидации
- Реализована отправка WebSocket уведомлений при создании опроса
- Исправлен импорт serialize_message из communications.serialization
- Добавлен обработчик poll_update в UserConsumer для WebSocket событий
- Исправлен эндпоинт /results/ для возврата user_voted_option_ids
- Добавлено поле voters в PollOptionSerializer для списка проголосовавших
- Реализована инициализация poll виджетов после рендера сообщений
- Добавлено игнорирование poll_update в notification-manager
- Исправлены стили для request list badges (height, word-break, flex)
- Восстановлены стили team-wheel (.wheel-focus, .scroll-arc) из git истории
- Реализовано отображение forwarded message info в messageRendererV2
- Множественные улучшения UI и UX для опросов

Fixes: создание опросов, голосование, отображение результатов, список проголосовавших
2026-01-22 01:33:42 +03:00
a9f38afd55 test(realtime): add comprehensive WebSocket consumer tests
- Add tests/realtime/ module with test suite for UserConsumer
- test_user_consumer.py: connection, auth, ping, chat management, typing
- test_routing.py: WebSocket URL routing validation
- test_integration.py: broadcast, notifications, multi-user scenarios
- conftest.py: fixtures for WebSocket testing (ws_communicator, test_chat)

Tests cover:
- Authentication (anonymous rejection, authenticated access)
- Chat subscription and management (open/close, access control)
- Ping/pong keepalive mechanism
- Typing indicators
- Message actions (send, mark_read)
- Integration with channel layer for broadcasts
- Multi-user WebSocket scenarios
2026-01-21 18:04:40 +03:00