From 1972f89bea7d0a8d165e28f31414f56f52284dd7 Mon Sep 17 00:00:00 2001 From: lizerk Date: Mon, 9 Mar 2026 09:51:00 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0=D0=B2?= =?UTF-8?q?=D0=BB=D0=B5=D0=BD=D0=BE=20=D0=BF=D0=BE=D0=BB=D1=83=D1=87=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B9=20=D0=B8=D0=B7=20=D0=B1=D1=8D=D0=BA?= =?UTF-8?q?=D0=B5=D0=BD=D0=B4=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Фронтенд: добавлена обработка поля 'notifications' (бэкенд возвращает { notifications: [...] }) - Фронтенд: исправлены URL endpoints для отметки прочитанным (/read/ вместо /mark_read/) - Бэкенд: добавлено поле 'short_message' в ответ API для корректного отображения превью --- backend/api/v1/notifications/views.py | 3 ++- frontend/src/hooks/useApi.ts | 3 ++- frontend/src/lib/api.ts | 4 ++-- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/backend/api/v1/notifications/views.py b/backend/api/v1/notifications/views.py index 4abc2352..16b94c5a 100644 --- a/backend/api/v1/notifications/views.py +++ b/backend/api/v1/notifications/views.py @@ -63,7 +63,8 @@ def get_notifications(request): { 'id': n.id, 'title': n.title, - 'message': n.message, # Полное сообщение для списка + 'message': n.message, + 'short_message': n.short_message or n.message[:150], # Краткое сообщение для превью 'category': n.notification_type.category.code, 'category_name': n.notification_type.category.name, 'icon': n.notification_type.category.icon, diff --git a/frontend/src/hooks/useApi.ts b/frontend/src/hooks/useApi.ts index 22bbaf9c..1b06901c 100644 --- a/frontend/src/hooks/useApi.ts +++ b/frontend/src/hooks/useApi.ts @@ -179,7 +179,8 @@ export function useNotifications() { async function fetchNotifications() { try { const data = await apiClient.getNotifications(); - const notifs = data.results || data; + // Бэкенд возвращает { notifications: [...] } + const notifs = data.notifications || data.results || data; // Убеждаемся что notifs это массив const notificationsArray = Array.isArray(notifs) ? notifs : []; setNotifications(notificationsArray); diff --git a/frontend/src/lib/api.ts b/frontend/src/lib/api.ts index a376f3bc..cdc080e6 100644 --- a/frontend/src/lib/api.ts +++ b/frontend/src/lib/api.ts @@ -792,13 +792,13 @@ class ApiClient { } async markNotificationAsRead(id: number): Promise { - await this.request(`/api/v1/notifications/${id}/mark_read/`, { + await this.request(`/api/v1/notifications/${id}/read/`, { method: 'POST', }); } async markAllNotificationsAsRead(): Promise { - await this.request('/api/v1/notifications/mark_all_read/', { + await this.request('/api/v1/notifications/read-all/', { method: 'POST', }); }