diff --git a/apps/django_gpg/views.py b/apps/django_gpg/views.py index d908d011e0..6fe629dbe8 100644 --- a/apps/django_gpg/views.py +++ b/apps/django_gpg/views.py @@ -19,7 +19,8 @@ from filetransfers.api import serve_file from django_gpg.api import Key, SIGNATURE_STATES from django_gpg.runtime import gpg -from django_gpg.exceptions import GPGVerificationError, KeyFetchingError +from django_gpg.exceptions import (GPGVerificationError, KeyFetchingError, + KeyImportError) from django_gpg import (PERMISSION_DOCUMENT_VERIFY, PERMISSION_KEY_VIEW, PERMISSION_KEY_DELETE, PERMISSION_KEYSERVER_QUERY, PERMISSION_KEY_RECEIVE, PERMISSION_SIGNATURE_UPLOAD, @@ -44,7 +45,7 @@ def key_receive(request, key_id): key = gpg.import_key(keys_dict[key_id].key) messages.success(request, _(u'Key: %s, imported successfully.') % key) return HttpResponseRedirect(next) - except (KeyFetchingError, KeyError, TypeError): + except (KeyImportError, KeyError, TypeError): messages.error(request, _(u'Unable to import key id: %s') % key_id) return HttpResponseRedirect(previous) diff --git a/apps/documents/models.py b/apps/documents/models.py index b691cdc36d..25cb703d22 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -176,12 +176,10 @@ class Document(models.Model): def add_as_recent_document_for_user(self, user): RecentDocument.objects.add_document_for_user(user, self) - # TODO: investigate if Document's save method calls all of it - # DocumentVersion's delete methods - #def delete(self, *args, **kwargs): - # super(Document, self).delete(*args, **kwargs) - # for version in self.documentversion_set.all(): - # version.file.storage.delete(version.file.path) + def delete(self, *args, **kwargs): + for version in self.versions.all(): + version.delete() + return super(Document, self).delete(*args, **kwargs) @property def size(self): @@ -472,7 +470,7 @@ class DocumentVersion(models.Model): def update_signed_state(self, save=True): if self.exists(): try: - self.signature_state = gpg.verify(self.open()).status + self.signature_state = gpg.verify_file(self.open()).status # TODO: give use choice for auto public key fetch? # OR maybe new config option except GPGVerificationError: @@ -497,8 +495,8 @@ class DocumentVersion(models.Model): self.save() def delete(self, *args, **kwargs): - super(DocumentVersion, self).delete(*args, **kwargs) - return self.file.storage.delete(self.file.path) + self.file.storage.delete(self.file.path) + return super(DocumentVersion, self).delete(*args, **kwargs) def exists(self): ''' diff --git a/apps/documents/views.py b/apps/documents/views.py index 3234a2014e..d7ab3701f3 100644 --- a/apps/documents/views.py +++ b/apps/documents/views.py @@ -198,7 +198,7 @@ def document_delete(request, document_id=None, document_id_list=None): document.delete() #create_history(HISTORY_DOCUMENT_DELETED, data={'user': request.user, 'document': document}) - messages.success(request, _(u'Document: %s deleted successfully.') % document) + messages.success(request, _(u'Document deleted successfully.')) except Exception, e: messages.error(request, _(u'Document: %(document)s delete error: %(error)s') % { 'document': document, 'error': e diff --git a/apps/metadata/views.py b/apps/metadata/views.py index 9d34c0cd4f..028700a46d 100644 --- a/apps/metadata/views.py +++ b/apps/metadata/views.py @@ -481,11 +481,12 @@ def setup_metadata_set_delete(request, metadata_set_id): try: metadata_set.delete() messages.success(request, _(u'Metadata set: %s deleted successfully.') % metadata_set) + return HttpResponseRedirect(post_action_redirect) except Exception, e: messages.error(request, _(u'Metadata set: %(metadata_set)s delete error: %(error)s') % { 'metadata_set': metadata_set, 'error': e}) + return HttpResponseRedirect(previous) - return HttpResponseRedirect(next) context = { 'object_name': _(u'metadata set'),