mirror of
https://github.com/pacnpal/thrillwiki_django_no_react.git
synced 2025-12-28 14:27:03 -05:00
feat: Introduce lists and reviews apps, refactor user list functionality from accounts, and add user profile fields.
This commit is contained in:
28
backend/apps/lists/views.py
Normal file
28
backend/apps/lists/views.py
Normal file
@@ -0,0 +1,28 @@
|
||||
from django.db.models import Q
|
||||
from rest_framework import viewsets, permissions
|
||||
from .models import UserList, ListItem
|
||||
from .serializers import UserListSerializer, ListItemSerializer
|
||||
from apps.core.permissions import IsOwnerOrReadOnly
|
||||
|
||||
class UserListViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = UserListSerializer
|
||||
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]
|
||||
lookup_field = "id"
|
||||
|
||||
def get_queryset(self):
|
||||
# Users can see their own lists and public lists
|
||||
if self.request.user.is_authenticated:
|
||||
return UserList.objects.filter(Q(is_public=True) | Q(user=self.request.user))
|
||||
return UserList.objects.filter(is_public=True)
|
||||
|
||||
def perform_create(self, serializer):
|
||||
serializer.save(user=self.request.user)
|
||||
|
||||
|
||||
class ListItemViewSet(viewsets.ModelViewSet):
|
||||
serializer_class = ListItemSerializer
|
||||
permission_classes = [permissions.IsAuthenticatedOrReadOnly, IsOwnerOrReadOnly]
|
||||
lookup_field = "id"
|
||||
|
||||
def get_queryset(self):
|
||||
return ListItem.objects.filter(user_list__is_public=True) | ListItem.objects.filter(user_list__user=self.request.user)
|
||||
Reference in New Issue
Block a user