+ Auto update status NEW->PAYMENT if payment info is present
* Cleanup
This commit is contained in:
parent
568711fe63
commit
fb5a80f0b4
|
|
@ -145,11 +145,19 @@ class ChecklistSerializer(serializers.ModelSerializer):
|
||||||
|
|
||||||
self._create_main_images(instance, images.get('main_images'))
|
self._create_main_images(instance, images.get('main_images'))
|
||||||
self._create_payment_proofs(instance, images.get('payment_proof'))
|
self._create_payment_proofs(instance, images.get('payment_proof'))
|
||||||
|
|
||||||
|
# Perform update
|
||||||
instance: Checklist = super().update(instance, validated_data)
|
instance: Checklist = super().update(instance, validated_data)
|
||||||
|
|
||||||
# Invalidate prefetched images
|
# Invalidate prefetched images
|
||||||
delattr(instance, '_images')
|
delattr(instance, '_images')
|
||||||
|
|
||||||
|
if instance.status == Checklist.Status.NEW:
|
||||||
|
has_payment_info = instance.payment_proof.exists() and instance.payment_method is not None
|
||||||
|
if has_payment_info:
|
||||||
|
instance.status = Checklist.Status.PAYMENT
|
||||||
|
instance.save()
|
||||||
|
|
||||||
return instance
|
return instance
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
|
|
|
||||||
|
|
@ -64,7 +64,11 @@ class LoginAPI(generics.GenericAPIView):
|
||||||
return Response(UserSerializer(user).data)
|
return Response(UserSerializer(user).data)
|
||||||
|
|
||||||
|
|
||||||
class ChecklistAPI(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.RetrieveModelMixin, DisablePermissionsMixin):
|
class ChecklistAPI(mixins.ListModelMixin,
|
||||||
|
mixins.CreateModelMixin,
|
||||||
|
mixins.RetrieveModelMixin,
|
||||||
|
mixins.UpdateModelMixin,
|
||||||
|
DisablePermissionsMixin):
|
||||||
serializer_class = ChecklistSerializer
|
serializer_class = ChecklistSerializer
|
||||||
lookup_field = 'id'
|
lookup_field = 'id'
|
||||||
filterset_fields = ['status', ]
|
filterset_fields = ['status', ]
|
||||||
|
|
@ -115,14 +119,11 @@ class ChecklistAPI(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.Retrie
|
||||||
|
|
||||||
return self.list(request, *args, **kwargs)
|
return self.list(request, *args, **kwargs)
|
||||||
|
|
||||||
def patch(self, request, *args, **kwargs):
|
def perform_update(self, serializer):
|
||||||
data = json.loads(request.body)
|
|
||||||
instance = get_object_or_404(self.get_queryset(), id=self.kwargs['id'])
|
|
||||||
serializer = self.get_serializer(instance, data=data, partial=True)
|
|
||||||
serializer.is_valid(raise_exception=True)
|
|
||||||
serializer.save()
|
serializer.save()
|
||||||
|
|
||||||
return Response(serializer.data)
|
def patch(self, request, *args, **kwargs):
|
||||||
|
return self.partial_update(request, *args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class YuanRateAPI(generics.GenericAPIView):
|
class YuanRateAPI(generics.GenericAPIView):
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user