feat: add new evaluation-request crud apis for admin #42

Merged
xoliqberdiyev merged 1 commits from behruz into main 2026-04-03 10:28:33 +00:00
3 changed files with 48 additions and 0 deletions

View File

@@ -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):

View File

@@ -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")

View File

@@ -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")