Compare commits
4 Commits
07f8d55966
...
user-crud
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fb275a091a | ||
|
|
190480b6f7 | ||
| 1a985ffa4b | |||
|
|
3b62c5a7bf |
@@ -13,7 +13,7 @@ from config.env import env
|
|||||||
|
|
||||||
|
|
||||||
def home(request):
|
def home(request):
|
||||||
return HttpResponse("OK: #b0b4ccfeee7a581cff6bd5398595fff38f323607")
|
return HttpResponse("OK: #1a985ffa4b785b63a71b9e0cdd78042c3fcda239")
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|||||||
@@ -30,3 +30,16 @@ class UserUpdateSerializer(serializers.ModelSerializer):
|
|||||||
"last_name",
|
"last_name",
|
||||||
"avatar"
|
"avatar"
|
||||||
]
|
]
|
||||||
|
|
||||||
|
class AdminUserSerializer(serializers.ModelSerializer):
|
||||||
|
avatar = serializers.SerializerMethodField(method_name='get_avatar')
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = get_user_model()
|
||||||
|
fields = "__all__"
|
||||||
|
|
||||||
|
def get_avatar(self, obj):
|
||||||
|
request = self.context.get('request')
|
||||||
|
if obj.avatar:
|
||||||
|
return request.build_absolute_uri(obj.avatar.url)
|
||||||
|
return None
|
||||||
@@ -4,7 +4,7 @@ Accounts app urls
|
|||||||
|
|
||||||
from django.urls import path, include
|
from django.urls import path, include
|
||||||
from rest_framework_simplejwt import views as jwt_views
|
from rest_framework_simplejwt import views as jwt_views
|
||||||
from .views import RegisterView, ResetPasswordView, MeView, ChangePasswordView, UserListApiView, AdminUserListApiView
|
from .views import RegisterView, ResetPasswordView, MeView, ChangePasswordView, UserListApiView, AdminUserListApiView,AdminUserView
|
||||||
from rest_framework.routers import DefaultRouter
|
from rest_framework.routers import DefaultRouter
|
||||||
|
|
||||||
router = DefaultRouter()
|
router = DefaultRouter()
|
||||||
@@ -12,6 +12,7 @@ router.register("auth", RegisterView, basename="auth")
|
|||||||
router.register("auth", ResetPasswordView, basename="reset-password")
|
router.register("auth", ResetPasswordView, basename="reset-password")
|
||||||
router.register("auth", MeView, basename="me")
|
router.register("auth", MeView, basename="me")
|
||||||
router.register("auth", ChangePasswordView, basename="change-password")
|
router.register("auth", ChangePasswordView, basename="change-password")
|
||||||
|
router.register("user", AdminUserView, basename="user-crud")
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = [
|
urlpatterns = [
|
||||||
|
|||||||
@@ -5,8 +5,11 @@ from rest_framework.permissions import IsAuthenticated
|
|||||||
|
|
||||||
from drf_spectacular.utils import extend_schema
|
from drf_spectacular.utils import extend_schema
|
||||||
|
|
||||||
from core.apps.accounts.serializers.user import UserSerializer
|
from core.apps.accounts.serializers.user import UserSerializer, AdminUserSerializer
|
||||||
from core.apps.accounts.choices.user import RoleChoice
|
from core.apps.accounts.choices.user import RoleChoice
|
||||||
|
from django_core.mixins import BaseViewSetMixin
|
||||||
|
from rest_framework.viewsets import ModelViewSet
|
||||||
|
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
|
|
||||||
@@ -29,3 +32,16 @@ class AdminUserListApiView(generics.ListAPIView):
|
|||||||
permission_classes = [IsAuthenticated]
|
permission_classes = [IsAuthenticated]
|
||||||
filter_backends = [filters.SearchFilter]
|
filter_backends = [filters.SearchFilter]
|
||||||
search_fields = ['phone', 'first_name', 'last_name']
|
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})
|
||||||
|
|
||||||
|
|||||||
@@ -3,7 +3,6 @@ from core.apps.evaluation.models import CertificateModel
|
|||||||
|
|
||||||
|
|
||||||
class BaseCertificateSerializer(serializers.ModelSerializer):
|
class BaseCertificateSerializer(serializers.ModelSerializer):
|
||||||
file_url = serializers.SerializerMethodField()
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = CertificateModel
|
model = CertificateModel
|
||||||
@@ -11,15 +10,4 @@ class BaseCertificateSerializer(serializers.ModelSerializer):
|
|||||||
"id",
|
"id",
|
||||||
"title",
|
"title",
|
||||||
"file",
|
"file",
|
||||||
"file_url",
|
|
||||||
]
|
]
|
||||||
|
|
||||||
def get_file_url(self, obj):
|
|
||||||
request = self.context.get("request")
|
|
||||||
|
|
||||||
if obj.file:
|
|
||||||
if request:
|
|
||||||
return request.build_absolute_uri(obj.file.url)
|
|
||||||
return obj.file.url
|
|
||||||
|
|
||||||
return None
|
|
||||||
@@ -78,6 +78,6 @@ urlpatterns = [
|
|||||||
),
|
),
|
||||||
path("evaluation-request/<int:pk>/change-status/", EvaluationStatusChange.as_view(),
|
path("evaluation-request/<int:pk>/change-status/", EvaluationStatusChange.as_view(),
|
||||||
name="evaluation-change-status"),
|
name="evaluation-change-status"),
|
||||||
path("quick-evaluation/archive/", ArchiveQuickEvaluationView.as_view(), name="quick-evaluation-archive"),
|
path("archive/quick-evaluation/", ArchiveQuickEvaluationView.as_view(), name="quick-evaluation-archive"),
|
||||||
path("evaluation-request/archive/", ArchiveEvaluationrequestView.as_view(), name="evaluation-request-archive"),
|
path("archive/evaluation-request/", ArchiveEvaluationrequestView.as_view(), name="evaluation-request-archive"),
|
||||||
]
|
]
|
||||||
|
|||||||
@@ -84,7 +84,7 @@ services:
|
|||||||
max-file: "5"
|
max-file: "5"
|
||||||
|
|
||||||
web:
|
web:
|
||||||
image: husanjon/sifatbaho:113
|
image: husanjon/sifatbaho:114
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
@@ -129,7 +129,7 @@ services:
|
|||||||
max-file: "5"
|
max-file: "5"
|
||||||
|
|
||||||
celery:
|
celery:
|
||||||
image: husanjon/sifatbaho:113
|
image: husanjon/sifatbaho:114
|
||||||
env_file:
|
env_file:
|
||||||
- .env
|
- .env
|
||||||
environment:
|
environment:
|
||||||
|
|||||||
Reference in New Issue
Block a user