From bee7567327972dc310818c779f7592fb9f181fb7 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Tue, 6 Dec 2011 23:40:20 -0400 Subject: [PATCH 1/4] Catch the correct exception KeyImportError and not KeyFetchingError --- apps/django_gpg/views.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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) From 6bf8a3df10be9002fd36dc530546c70a9813ae0f Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:22:34 -0400 Subject: [PATCH 2/4] Fix document delete regresion --- apps/documents/models.py | 14 ++++++-------- apps/documents/views.py | 2 +- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/apps/documents/models.py b/apps/documents/models.py index b691cdc36d..90f7e6912e 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): @@ -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 From 5f3656c43f20194c6096afd9d623a5b24146041b Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:23:02 -0400 Subject: [PATCH 3/4] Call the correct gpg method --- apps/documents/models.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/documents/models.py b/apps/documents/models.py index 90f7e6912e..25cb703d22 100644 --- a/apps/documents/models.py +++ b/apps/documents/models.py @@ -470,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: From 76aced48e8de932b64b02dca3ca6c150a6e252c1 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Wed, 7 Dec 2011 04:31:59 -0400 Subject: [PATCH 4/4] Improve post metadata set delete redirection --- apps/metadata/views.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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'),