Add support for document metadata events: add, edit and remove.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2018-08-15 05:04:09 -04:00
parent 0a653a08bd
commit 0022548e35
6 changed files with 105 additions and 23 deletions

View File

@@ -149,11 +149,19 @@ class DocumentMetadataAddView(MultipleObjectFormActionView):
def object_action(self, form, instance):
for metadata_type in form.cleaned_data['metadata_type']:
try:
document_metadata, created = DocumentMetadata.objects.get_or_create(
document=instance,
metadata_type=metadata_type,
defaults={'value': ''}
)
created = False
try:
DocumentMetadata.objects.get(
document=instance,
metadata_type=metadata_type,
)
except DocumentMetadata.DoesNotExist:
instance = DocumentMetadata(
document=instance,
metadata_type=metadata_type,
)
instance.save(_user=self.request.user)
created = True
except ValidationError as exception:
messages.error(
self.request,
@@ -310,7 +318,10 @@ class DocumentMetadataEditView(MultipleObjectFormActionView):
for form in form.forms:
if form.cleaned_data['update']:
try:
save_metadata_list([form.cleaned_data], instance)
save_metadata_list(
metadata_list=[form.cleaned_data], document=instance,
_user=self.request.user
)
except Exception as exception:
errors.append(exception)
@@ -488,7 +499,7 @@ class DocumentMetadataRemoveView(MultipleObjectFormActionView):
document_metadata = DocumentMetadata.objects.get(
document=instance, metadata_type=metadata_type
)
document_metadata.delete()
document_metadata.delete(_user=self.request.user)
messages.success(
self.request,
_(