# Conflicts:
#	core/apps/accounts/serializers/user.py
#	core/apps/accounts/urls.py
#	core/apps/accounts/views/user.py
#	core/apps/evaluation/urls.py
#	core/apps/evaluation/views/request.py
This commit is contained in:
Shaxobff
2026-04-24 16:34:02 +05:00
29 changed files with 456 additions and 53 deletions

View File

@@ -1,13 +1,15 @@
from django.contrib.auth import get_user_model
from django.shortcuts import get_object_or_404
from django_core.mixins import BaseViewSetMixin
from drf_spectacular.utils import extend_schema
from rest_framework import generics, filters
from rest_framework.permissions import IsAuthenticated
from rest_framework.response import Response
from rest_framework.views import APIView
from rest_framework.viewsets import ModelViewSet
from core.apps.accounts.choices.user import RoleChoice
from core.apps.accounts.serializers.user import UserSerializer, UserCreateSerializer
from core.apps.accounts.serializers.user import UserSerializer, AdminUserSerializer, UserCreateSerializer
User = get_user_model()
@@ -33,6 +35,18 @@ class AdminUserListApiView(generics.ListAPIView):
search_fields = ['phone', 'first_name', 'last_name']
@extend_schema(tags=["User"], request=AdminUserSerializer)
class AdminUserView(BaseViewSetMixin, ModelViewSet):
queryset = User.objects.filter(role=RoleChoice.USER)
serializer_class = AdminUserSerializer
permission_classes = [IsAuthenticated]
filter_backends = [filters.SearchFilter]
search_fields = ['phone', 'first_name', 'last_name']
def serializer_context(self):
return self.serializer_class(context={"request": self.request})
@extend_schema(tags=['User'],
responses={200: UserSerializer},
request=UserCreateSerializer)
@@ -49,10 +63,10 @@ class AdminCreateAPIView(APIView):
return Response(serializer.data, status=201)
@extend_schema(tags=['User'],
responses={200: UserSerializer},
request=UserCreateSerializer)
class AdminUpdateAPIView(APIView):
permission_classes = [IsAuthenticated]
@@ -66,5 +80,3 @@ class AdminUpdateAPIView(APIView):
serializer.save()
return Response(serializer.data, status=200)