From 079753f384d2fc43d2f0541d0b9cf9645035e93b Mon Sep 17 00:00:00 2001 From: behruz-dev Date: Sat, 23 Aug 2025 13:09:42 +0500 Subject: [PATCH] add remove api --- core/apps/orders/admin/order.py | 2 +- core/apps/orders/urls.py | 3 +++ core/apps/orders/views/party.py | 27 ++++++++++++++++++++++++--- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/core/apps/orders/admin/order.py b/core/apps/orders/admin/order.py index c09e579..f0f53de 100644 --- a/core/apps/orders/admin/order.py +++ b/core/apps/orders/admin/order.py @@ -5,4 +5,4 @@ from core.apps.orders.models import Order @admin.register(Order) class OrderAdmin(admin.ModelAdmin): - list_display = ['unity', 'project', 'wherehouse', 'currency'] + list_display = ['id', 'product', 'wherehouse', 'currency'] diff --git a/core/apps/orders/urls.py b/core/apps/orders/urls.py index 1da4197..5ce330b 100644 --- a/core/apps/orders/urls.py +++ b/core/apps/orders/urls.py @@ -33,6 +33,9 @@ urlpatterns = [ path('/delete/', party_views.PartyDeleteApiView.as_view()), path('deleted_pary/list/', party_views.DeletedPartyListApiView.as_view()), path('/update/', party_views.PartyUpdateApiView.as_view()), + path( + '/order//remove/', party_views.OrderDeleteToPartyApiView.as_view() + ), ] )), ] \ No newline at end of file diff --git a/core/apps/orders/views/party.py b/core/apps/orders/views/party.py index 0b1745c..62f8690 100644 --- a/core/apps/orders/views/party.py +++ b/core/apps/orders/views/party.py @@ -7,7 +7,7 @@ from django_filters.rest_framework.backends import DjangoFilterBackend from core.apps.accounts.permissions.permissions import HasRolePermission from core.apps.orders.serializers import party as serializers -from core.apps.orders.models import Party, PartyAmount, DeletedParty +from core.apps.orders.models import Party, PartyAmount, DeletedParty, Order from core.apps.orders.filters.party import PartyFilter @@ -101,7 +101,7 @@ class DeletedPartyListApiView(generics.GenericAPIView): class PartyUpdateApiView(generics.GenericAPIView): serializer_class = serializers.PartyUpdateSerializer queryset = Party.objects.all() - pagination_class = [HasRolePermission] + permission_classes = [HasRolePermission] required_permissions = ['party'] pagination_class = None @@ -113,4 +113,25 @@ class PartyUpdateApiView(generics.GenericAPIView): return Response({ 'success': True, 'message': 'update', }, status=200) - return Response({'success': False, 'error': serializer.errors}, status=400) \ No newline at end of file + return Response({'success': False, 'error': serializer.errors}, status=400) + + +class OrderDeleteToPartyApiView(generics.GenericAPIView): + serializer_class = None + permission_classes = [HasRolePermission] + required_permissions = ['party'] + queryset = None + + + def delete(self, request, party_id, order_id): + party = get_object_or_404(Party, id=party_id) + + order = party.orders.filter(id=order_id).first() + if not order: + return Response( + {'success': False, 'error_message': 'Order does not belong to the party'}, + status=400 + ) + + party.orders.remove(order) + return Response({'success': True, 'message': 'Order removed from party'}, status=200) \ No newline at end of file