add party update api
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -13,6 +13,7 @@ media
|
|||||||
resources/media/
|
resources/media/
|
||||||
resources/static/
|
resources/static/
|
||||||
.log
|
.log
|
||||||
|
django.log.*
|
||||||
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
|
# If your build process includes running collectstatic, then you probably don't need or want to include staticfiles/
|
||||||
# in your Git repository. Update and uncomment the following line accordingly.
|
# in your Git repository. Update and uncomment the following line accordingly.
|
||||||
# <django-project-name>/staticfiles/
|
# <django-project-name>/staticfiles/
|
||||||
|
|||||||
@@ -137,3 +137,24 @@ class DeletedPartyListSerializer(serializers.ModelSerializer):
|
|||||||
'id': obj.party.mediator.id,
|
'id': obj.party.mediator.id,
|
||||||
'name': obj.party.mediator.full_name
|
'name': obj.party.mediator.full_name
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class PartyUpdateSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Party
|
||||||
|
fields = [
|
||||||
|
'mediator', 'delivery_date', 'payment_date',
|
||||||
|
]
|
||||||
|
extra_kwargs = {
|
||||||
|
'mediator': {'required': False},
|
||||||
|
'delivery_date': {'required': False},
|
||||||
|
'payment_date': {'required':False}
|
||||||
|
}
|
||||||
|
|
||||||
|
def update(self, instance, validated_data):
|
||||||
|
with transaction.atomic():
|
||||||
|
instance.mediator = validated_data.get('mediator', instance.mediator)
|
||||||
|
instance.delivery_date = validated_data.get('delivery_date', instance.delivery_date)
|
||||||
|
instance.payment_date = validated_data.get('payment_date', instance.payment_date)
|
||||||
|
instance.save()
|
||||||
|
return instance
|
||||||
@@ -32,6 +32,7 @@ urlpatterns = [
|
|||||||
path('<uuid:id>/', party_views.PartyDetailApiView.as_view()),
|
path('<uuid:id>/', party_views.PartyDetailApiView.as_view()),
|
||||||
path('<uuid:party_id>/delete/', party_views.PartyDeleteApiView.as_view()),
|
path('<uuid:party_id>/delete/', party_views.PartyDeleteApiView.as_view()),
|
||||||
path('deleted_pary/list/', party_views.DeletedPartyListApiView.as_view()),
|
path('deleted_pary/list/', party_views.DeletedPartyListApiView.as_view()),
|
||||||
|
path('<uuid:id>/update/', party_views.PartyUpdateApiView.as_view()),
|
||||||
]
|
]
|
||||||
)),
|
)),
|
||||||
]
|
]
|
||||||
@@ -1,3 +1,5 @@
|
|||||||
|
from django.shortcuts import get_object_or_404
|
||||||
|
|
||||||
from rest_framework import generics, views
|
from rest_framework import generics, views
|
||||||
from rest_framework.response import Response
|
from rest_framework.response import Response
|
||||||
|
|
||||||
@@ -94,3 +96,21 @@ class DeletedPartyListApiView(generics.GenericAPIView):
|
|||||||
serializer = self.serializer_class(page, many=True)
|
serializer = self.serializer_class(page, many=True)
|
||||||
return self.get_paginated_response(serializer.data)
|
return self.get_paginated_response(serializer.data)
|
||||||
return Response(serializer.data, status=200)
|
return Response(serializer.data, status=200)
|
||||||
|
|
||||||
|
|
||||||
|
class PartyUpdateApiView(generics.GenericAPIView):
|
||||||
|
serializer_class = serializers.PartyUpdateSerializer
|
||||||
|
queryset = Party.objects.all()
|
||||||
|
pagination_class = [HasRolePermission]
|
||||||
|
required_permissions = ['party']
|
||||||
|
pagination_class = None
|
||||||
|
|
||||||
|
def patch(self, request, id):
|
||||||
|
party = get_object_or_404(Party, id=id)
|
||||||
|
serializer = self.serializer_class(data=request.data, instance=party, partial=True)
|
||||||
|
if serializer.is_valid(raise_exception=True):
|
||||||
|
serializer.save()
|
||||||
|
return Response({
|
||||||
|
'success': True, 'message': 'update',
|
||||||
|
}, status=200)
|
||||||
|
return Response({'success': False, 'error': serializer.errors}, status=400)
|
||||||
Reference in New Issue
Block a user