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)
party_amount = PartyAmountSerializer()
@@ -86,4 +86,16 @@ class PartyListSerializer(serializers.ModelSerializer):
'id', 'number', 'delivery_date', 'closed_date', 'order_date', 'payment_date', 'status',
'payment_status', 'process', 'confirmation', 'comment', 'audit', 'audit_comment',
'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('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):
serializer_class = serializers.PartyListSerializer
queryset = Party.objects.select_related('party_amount').prefetch_related('orders')
queryset = Party.objects.select_related('party_amount')
permission_classes = [HasRolePermission]
required_permissions = []
filter_backends = [DjangoFilterBackend]
@@ -44,4 +44,18 @@ class PartyListApiView(generics.GenericAPIView):
serializer = self.serializer_class(page, many=True)
return self.get_paginated_response(serializer.data)
serializer = self.serializer_class(parties, many=True)
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)