Fix library UI errors

This commit is contained in:
IRBorisov 2023-09-01 23:44:02 +03:00
parent 8459b49032
commit 81931d06d6
4 changed files with 10 additions and 4 deletions

View File

@ -213,10 +213,14 @@ class TestLibraryViewset(APITestCase):
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertFalse(_response_contains(response, self.unowned)) self.assertFalse(_response_contains(response, self.unowned))
user2 = User.objects.create(username='UserTest2')
Subscription.subscribe(user=self.user, item=self.unowned) 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') response = self.client.get('/api/library/active')
self.assertEqual(response.status_code, 200) self.assertEqual(response.status_code, 200)
self.assertTrue(_response_contains(response, self.unowned)) self.assertTrue(_response_contains(response, self.unowned))
self.assertEqual(len(response.data), 3)
def test_subscriptions(self): def test_subscriptions(self):
response = self.client.delete(f'/api/library/{self.unowned.id}/unsubscribe') response = self.client.delete(f'/api/library/{self.unowned.id}/unsubscribe')

View File

@ -25,7 +25,9 @@ class LibraryActiveView(generics.ListAPIView):
user = self.request.user user = self.request.user
if not user.is_anonymous: if not user.is_anonymous:
# pylint: disable=unsupported-binary-operation # 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: else:
return m.LibraryItem.objects.filter(is_common=True) return m.LibraryItem.objects.filter(is_common=True)

View File

@ -28,7 +28,7 @@ function UserDropdown({ hideDropdown }: UserDropdownProps) {
const navigateMyWork = () => { const navigateMyWork = () => {
hideDropdown(); hideDropdown();
navigate(`/library?filter=${LibraryFilterStrategy.PERSONAL}`); navigate(`/library`);
}; };
return ( return (

View File

@ -12,7 +12,7 @@ import { useRSForm } from '../../context/RSFormContext';
import { useConceptTheme } from '../../context/ThemeContext'; import { useConceptTheme } from '../../context/ThemeContext';
import useModificationPrompt from '../../hooks/useModificationPrompt'; import useModificationPrompt from '../../hooks/useModificationPrompt';
import { prefixes, TIMEOUT_UI_REFRESH } from '../../utils/constants'; 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 { createAliasFor } from '../../utils/staticUI';
import DlgCloneRSForm from './DlgCloneRSForm'; import DlgCloneRSForm from './DlgCloneRSForm';
import DlgCreateCst from './DlgCreateCst'; import DlgCreateCst from './DlgCreateCst';
@ -207,7 +207,7 @@ function RSTabs() {
} }
destroySchema(schema.id, () => { destroySchema(schema.id, () => {
toast.success('Схема удалена'); toast.success('Схема удалена');
navigate(`/library?filter=${LibraryFilterStrategy.PERSONAL}`); navigate('/library');
}); });
}, [schema, destroySchema, navigate]); }, [schema, destroySchema, navigate]);