feat: add new evaluation-request crud apis for admin #42
@@ -23,6 +23,7 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
rate_goal = ListReferenceitemSerializer(read_only=True)
|
||||
property_rights = ListReferenceitemSerializer(read_only=True)
|
||||
form_ownership = ListReferenceitemSerializer(read_only=True)
|
||||
user = serializers.SerializerMethodField(method_name="get_user")
|
||||
|
||||
class Meta:
|
||||
model = EvaluationrequestModel
|
||||
@@ -46,6 +47,7 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
"location_name",
|
||||
"status",
|
||||
"status_display",
|
||||
"user",
|
||||
"created_at",
|
||||
"updated_at",
|
||||
]
|
||||
@@ -59,6 +61,16 @@ class BaseEvaluationrequestSerializer(serializers.ModelSerializer):
|
||||
}
|
||||
return None
|
||||
|
||||
def get_user(self, obj):
|
||||
return {
|
||||
"id": obj.user.id,
|
||||
"phone": obj.user.phone,
|
||||
"first_name": obj.user.first_name,
|
||||
"last_name": obj.user.last_name,
|
||||
"role": obj.user.role,
|
||||
"avatar": obj.user.avatar.url if obj.user.avatar else None
|
||||
}
|
||||
|
||||
|
||||
class ListEvaluationrequestSerializer(BaseEvaluationrequestSerializer):
|
||||
class Meta(BaseEvaluationrequestSerializer.Meta):
|
||||
|
||||
@@ -20,6 +20,7 @@ from .views import (
|
||||
ValuationDocumentView,
|
||||
ValuationView,
|
||||
VehicleView,
|
||||
AdminEvaluationrequestView,
|
||||
)
|
||||
|
||||
router = DefaultRouter()
|
||||
@@ -30,6 +31,7 @@ router.register("evaluation-purpose", EvaluationPurposeView, basename="evaluatio
|
||||
router.register("property-rights", PropertyRightsView, basename="property-rights")
|
||||
router.register("ownership-form", OwnershipFormView, basename="ownership-form")
|
||||
router.register("evaluation-request", EvaluationrequestView, basename="evaluation-request")
|
||||
router.register("admin-evaluation-request", AdminEvaluationrequestView, basename="admin-evaluation-request")
|
||||
router.register("reference-item", ReferenceitemView, basename="reference-item")
|
||||
router.register("valuation-document", ValuationDocumentView, basename="valuation-document")
|
||||
router.register("evaluation-report", EvaluationReportView, basename="evaluation-report")
|
||||
|
||||
@@ -54,3 +54,37 @@ class EvaluationrequestView(BaseViewSetMixin, ModelViewSet):
|
||||
return EvaluationrequestModel.objects.filter(
|
||||
user=self.request.user
|
||||
).order_by("-created_at")
|
||||
|
||||
|
||||
|
||||
@extend_schema(tags=["EvaluationRequest"])
|
||||
class AdminEvaluationrequestView(BaseViewSetMixin, ModelViewSet):
|
||||
serializer_class = ListEvaluationrequestSerializer
|
||||
permission_classes = [IsAuthenticated]
|
||||
# pagination_class = RequestPagination
|
||||
|
||||
filter_backends = [DjangoFilterBackend, SearchFilter, OrderingFilter]
|
||||
filterset_class = EvaluationrequestFilter
|
||||
search_fields = [
|
||||
"customer_inn_number",
|
||||
"owner_inn_number",
|
||||
"tex_passport",
|
||||
]
|
||||
ordering_fields = [
|
||||
"created_at",
|
||||
"updated_at",
|
||||
"rate_type",
|
||||
"object_type",
|
||||
"status",
|
||||
]
|
||||
ordering = ["-created_at"]
|
||||
|
||||
action_permission_classes = {}
|
||||
action_serializer_class = {
|
||||
"list": ListEvaluationrequestSerializer,
|
||||
"retrieve": RetrieveEvaluationrequestSerializer,
|
||||
"create": CreateEvaluationrequestSerializer,
|
||||
}
|
||||
|
||||
def get_queryset(self):
|
||||
return EvaluationrequestModel.objects.select_related("value_determined", "rate_goal", "property_rights", "form_ownership", "user").order_by("-created_at")
|
||||
|
||||
Reference in New Issue
Block a user