+ 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_payment_proofs(instance, images.get('payment_proof'))
|
||||
|
||||
# Perform update
|
||||
instance: Checklist = super().update(instance, validated_data)
|
||||
|
||||
# Invalidate prefetched 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
|
||||
|
||||
@staticmethod
|
||||
|
|
|
|||
|
|
@ -64,7 +64,11 @@ class LoginAPI(generics.GenericAPIView):
|
|||
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
|
||||
lookup_field = 'id'
|
||||
filterset_fields = ['status', ]
|
||||
|
|
@ -115,14 +119,11 @@ class ChecklistAPI(mixins.ListModelMixin, mixins.CreateModelMixin, mixins.Retrie
|
|||
|
||||
return self.list(request, *args, **kwargs)
|
||||
|
||||
def patch(self, request, *args, **kwargs):
|
||||
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)
|
||||
def perform_update(self, serializer):
|
||||
serializer.save()
|
||||
|
||||
return Response(serializer.data)
|
||||
def patch(self, request, *args, **kwargs):
|
||||
return self.partial_update(request, *args, **kwargs)
|
||||
|
||||
|
||||
class YuanRateAPI(generics.GenericAPIView):
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user