From 81931d06d629f89c59b0461224af0ddd03b57031 Mon Sep 17 00:00:00 2001 From: IRBorisov <8611739+IRBorisov@users.noreply.github.com> Date: Fri, 1 Sep 2023 23:44:02 +0300 Subject: [PATCH] Fix library UI errors --- rsconcept/backend/apps/rsform/tests/t_views.py | 4 ++++ rsconcept/backend/apps/rsform/views.py | 4 +++- rsconcept/frontend/src/components/Navigation/UserDropdown.tsx | 2 +- rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx | 4 ++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/rsconcept/backend/apps/rsform/tests/t_views.py b/rsconcept/backend/apps/rsform/tests/t_views.py index 3d7b1fe6..d15e8cb4 100644 --- a/rsconcept/backend/apps/rsform/tests/t_views.py +++ b/rsconcept/backend/apps/rsform/tests/t_views.py @@ -213,10 +213,14 @@ class TestLibraryViewset(APITestCase): self.assertEqual(response.status_code, 200) self.assertFalse(_response_contains(response, self.unowned)) + user2 = User.objects.create(username='UserTest2') Subscription.subscribe(user=self.user, item=self.unowned) + Subscription.subscribe(user=user2, item=self.unowned) + Subscription.subscribe(user=user2, item=self.owned) response = self.client.get('/api/library/active') self.assertEqual(response.status_code, 200) self.assertTrue(_response_contains(response, self.unowned)) + self.assertEqual(len(response.data), 3) def test_subscriptions(self): response = self.client.delete(f'/api/library/{self.unowned.id}/unsubscribe') diff --git a/rsconcept/backend/apps/rsform/views.py b/rsconcept/backend/apps/rsform/views.py index d11632d5..d38c9bbd 100644 --- a/rsconcept/backend/apps/rsform/views.py +++ b/rsconcept/backend/apps/rsform/views.py @@ -25,7 +25,9 @@ class LibraryActiveView(generics.ListAPIView): user = self.request.user if not user.is_anonymous: # pylint: disable=unsupported-binary-operation - return m.LibraryItem.objects.filter(Q(is_common=True) | Q(owner=user) | Q(subscription__user=user)) + return m.LibraryItem.objects.filter( + Q(is_common=True) | Q(owner=user) | Q(subscription__user=user) + ).distinct() else: return m.LibraryItem.objects.filter(is_common=True) diff --git a/rsconcept/frontend/src/components/Navigation/UserDropdown.tsx b/rsconcept/frontend/src/components/Navigation/UserDropdown.tsx index 604ed5dd..2490ff77 100644 --- a/rsconcept/frontend/src/components/Navigation/UserDropdown.tsx +++ b/rsconcept/frontend/src/components/Navigation/UserDropdown.tsx @@ -28,7 +28,7 @@ function UserDropdown({ hideDropdown }: UserDropdownProps) { const navigateMyWork = () => { hideDropdown(); - navigate(`/library?filter=${LibraryFilterStrategy.PERSONAL}`); + navigate(`/library`); }; return ( diff --git a/rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx b/rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx index 4453e26d..78d7d56f 100644 --- a/rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx +++ b/rsconcept/frontend/src/pages/RSFormPage/RSTabs.tsx @@ -12,7 +12,7 @@ import { useRSForm } from '../../context/RSFormContext'; import { useConceptTheme } from '../../context/ThemeContext'; import useModificationPrompt from '../../hooks/useModificationPrompt'; import { prefixes, TIMEOUT_UI_REFRESH } from '../../utils/constants'; -import { ICstCreateData, ICstRenameData, LibraryFilterStrategy, SyntaxTree } from '../../utils/models'; +import { ICstCreateData, ICstRenameData, SyntaxTree } from '../../utils/models'; import { createAliasFor } from '../../utils/staticUI'; import DlgCloneRSForm from './DlgCloneRSForm'; import DlgCreateCst from './DlgCreateCst'; @@ -207,7 +207,7 @@ function RSTabs() { } destroySchema(schema.id, () => { toast.success('Схема удалена'); - navigate(`/library?filter=${LibraryFilterStrategy.PERSONAL}`); + navigate('/library'); }); }, [schema, destroySchema, navigate]);