1
0
Fork 0
mirror of https://github.com/seanmorley15/AdventureLog.git synced 2025-07-24 07:19:36 +02:00

refactor: Improve performance and fix conditional rendering issue in +page.svelte

This commit is contained in:
Sean Morley 2024-07-30 07:10:41 -04:00
parent f98ca62aad
commit 3a01178acb
2 changed files with 18 additions and 19 deletions

View file

@ -175,6 +175,10 @@ class CollectionViewSet(viewsets.ModelViewSet):
permission_classes = [IsOwnerOrReadOnly, IsPublicReadOnly]
pagination_class = StandardResultsSetPagination
def get_queryset(self):
print(self.request.user.id)
return Collection.objects.filter(user_id=self.request.user.id)
def apply_sorting(self, queryset):
order_by = self.request.query_params.get('order_by', 'name')
order_direction = self.request.query_params.get('order_direction', 'asc')
@ -255,9 +259,19 @@ class CollectionViewSet(viewsets.ModelViewSet):
return Response(serializer.data)
def get_queryset(self):
collections = Collection.objects.filter(
Q(is_public=True) | Q(user_id=self.request.user.id)
).prefetch_related(
adventures = None
if self.action == 'retrieve':
# For individual collection retrieval, include public collections
adventures = Collection.objects.filter(
Q(is_public=True) | Q(user_id=self.request.user.id)
)
else:
# For other actions, only include user's own collections
adventures = Collection.objects.filter(user_id=self.request.user.id)
adventures = adventures.prefetch_related(
Prefetch('adventure_set', queryset=Adventure.objects.filter(
Q(is_public=True) | Q(user_id=self.request.user.id)
))
@ -266,7 +280,7 @@ class CollectionViewSet(viewsets.ModelViewSet):
Q(is_public=True) | Q(user_id=self.request.user.id)
))
)
return self.apply_sorting(collections)
return self.apply_sorting(adventures)
def perform_create(self, serializer):
serializer.save(user_id=self.request.user)