add party detail api

This commit is contained in:
behruz-dev
2025-08-22 11:53:06 +05:00
parent 4c343485a8
commit b0bb20691f
3 changed files with 29 additions and 2 deletions

View File

@@ -76,7 +76,7 @@ class PartyAmountSerializer(serializers.ModelSerializer):
] ]
class PartyListSerializer(serializers.ModelSerializer): class PartyDetailSerializer(serializers.ModelSerializer):
orders = OrderListSerializer(many=True) orders = OrderListSerializer(many=True)
party_amount = PartyAmountSerializer() party_amount = PartyAmountSerializer()
@@ -87,3 +87,15 @@ class PartyListSerializer(serializers.ModelSerializer):
'payment_status', 'process', 'confirmation', 'comment', 'audit', 'audit_comment', 'payment_status', 'process', 'confirmation', 'comment', 'audit', 'audit_comment',
'orders', 'party_amount' 'orders', 'party_amount'
] ]
class PartyListSerializer(serializers.ModelSerializer):
party_amount = PartyAmountSerializer()
class Meta:
model = Party
fields = [
'id','number', 'delivery_date', 'closed_date', 'order_date', 'payment_date', 'status',
'payment_status', 'process', 'confirmation', 'comment', 'audit', 'audit_comment',
'party_amount'
]

View File

@@ -29,6 +29,7 @@ urlpatterns = [
[ [
path('create/', party_views.PartyCreateApiView.as_view()), path('create/', party_views.PartyCreateApiView.as_view()),
path('list/', party_views.PartyListApiView.as_view()), path('list/', party_views.PartyListApiView.as_view()),
path('<uuid:id>/', party_views.PartyDetailApiView.as_view()),
] ]
)), )),
] ]

View File

@@ -31,7 +31,7 @@ class PartyCreateApiView(generics.GenericAPIView):
class PartyListApiView(generics.GenericAPIView): class PartyListApiView(generics.GenericAPIView):
serializer_class = serializers.PartyListSerializer serializer_class = serializers.PartyListSerializer
queryset = Party.objects.select_related('party_amount').prefetch_related('orders') queryset = Party.objects.select_related('party_amount')
permission_classes = [HasRolePermission] permission_classes = [HasRolePermission]
required_permissions = [] required_permissions = []
filter_backends = [DjangoFilterBackend] filter_backends = [DjangoFilterBackend]
@@ -45,3 +45,17 @@ class PartyListApiView(generics.GenericAPIView):
return self.get_paginated_response(serializer.data) return self.get_paginated_response(serializer.data)
serializer = self.serializer_class(parties, many=True) serializer = self.serializer_class(parties, many=True)
return Response(serializer.data, status=200) return Response(serializer.data, status=200)
class PartyDetailApiView(generics.GenericAPIView):
permission_classes = [HasRolePermission]
required_permissions = []
serializer_class = serializers.PartyDetailSerializer
queryset = Party.objects.select_related('party_amount').prefetch_related('orders')
def get(self, request, id):
party = Party.objects.select_related('party_amount').prefetch_related('orders').filter(id=id).first()
if not party:
return Response({'success': False, 'message': 'party not found'}, status=404)
serializer = self.serializer_class(party)
return Response(serializer.data, status=200)