diff --git a/apps/documents/models.py b/apps/documents/models.py index 7b5b4fe103..d138a53b4d 100755 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -8,8 +8,6 @@ from django.db import models from django.utils.translation import ugettext_lazy as _ from django.db.models import Q -from filesystem_serving.api import document_delete_fs_links - from dynamic_search.api import register from documents.conf.settings import AVAILABLE_FUNCTIONS @@ -142,13 +140,6 @@ class Document(models.Model): return self.file.storage.exists(self.file.url) - def delete(self, *args, **kwargs): - #TODO: Might not execute when done in bulk from a queryset - #topics/db/queries.html#topics-db-queries-delete - document_delete_fs_links(self) - super(Document, self).delete(*args, **kwargs) - - def get_metadata_groups(self): errors = [] metadata_groups = {} diff --git a/apps/documents/views.py b/apps/documents/views.py index 98f51f68f3..31e7299921 100755 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -349,16 +349,23 @@ def document_delete(request, document_id): document = get_object_or_404(Document, pk=document_id) previous = request.POST.get('previous', request.GET.get('previous', request.META.get('HTTP_REFERER', None))) + + if request.method == 'POST': + try: + document_delete_fs_links(document) + document.delete() + messages.success(request, _(u'Document deleted successfully.')) + return HttpResponseRedirect(reverse('document_list')) + except Exception, e: + messages.error(request, _(u'Document delete error: %s') % e) + return HttpResponseRedirect(previous) - return delete_object(request, model=Document, object_id=document_id, - template_name='generic_confirm.html', - post_delete_redirect=reverse('document_list'), - extra_context={ - 'delete_view':True, - 'object':document, - 'object_name':_(u'document'), - 'previous':previous, - }) + return render_to_response('generic_confirm.html', { + 'object':document, + 'delete_view':True, + 'object_name':_(u'document'), + 'previous':previous, + }, context_instance=RequestContext(request)) def document_edit(request, document_id):