diff --git a/app/photos/api/views.py b/app/photos/api/views.py index 4c8ce55..b643c31 100644 --- a/app/photos/api/views.py +++ b/app/photos/api/views.py @@ -2,7 +2,7 @@ from django.shortcuts import get_object_or_404 from django.views.generic import View from django.http import HttpResponse, HttpResponseNotFound -import json +import json, os import time from rest_framework.generics import ( ListCreateAPIView, @@ -213,6 +213,15 @@ class SinglePhotoAPIView(RetrieveUpdateDestroyAPIView): permission_classes = [IsOwner] lookup_field = 'id' + def perform_destroy(self, instance): + if(os.path.isfile(instance.image.path)): + os.remove(instance.image.path) + + if(os.path.isfile(instance.image.path.replace('main', 'edited'))): + os.remove(instance.image.path.replace('main', 'edited')) + + instance.delete() + class PhotoDetailAPIView(RetrieveUpdateDestroyAPIView): diff --git a/app/static/build/client.min.js b/app/static/build/client.min.js index ceb49fd..9a9d360 100644 --- a/app/static/build/client.min.js +++ b/app/static/build/client.min.js @@ -52353,6 +52353,7 @@ }, { key: 'updateComplete', value: function updateComplete(result) { + this.setState({ loaded: true }); if (result.status == 200) { Toast.ok('Photo updated'); } else { @@ -52443,6 +52444,7 @@ key: 'onSubmit', value: function onSubmit(e) { e.preventDefault(); + this.setState({ loaded: false }); var form = this.getFormData(); _PhotoStore2.default.update(form); } diff --git a/app/static/components/EditImage.jsx b/app/static/components/EditImage.jsx index 88446f8..ce4a4ba 100644 --- a/app/static/components/EditImage.jsx +++ b/app/static/components/EditImage.jsx @@ -57,6 +57,7 @@ export default class extends React.Component { } updateComplete(result){ + this.setState({loaded: true}); if(result.status == 200){ Toast.ok('Photo updated') }else{ @@ -137,6 +138,7 @@ export default class extends React.Component { onSubmit(e) { e.preventDefault(); + this.setState({loaded: false}); var form = this.getFormData(); storePhoto.update(form); }