diff --git a/mayan/apps/metadata/__init__.py b/mayan/apps/metadata/__init__.py index 38178b6878..ae26302eb3 100644 --- a/mayan/apps/metadata/__init__.py +++ b/mayan/apps/metadata/__init__.py @@ -39,7 +39,7 @@ def post_post_document_type_change_metadata(sender, instance, **kwargs): logger.debug('instance: %s', instance) # Delete existing document metadata for metadata in instance.metadata.all(): - metadata.delete() + metadata.delete(enforce_required=False) # Add new document type metadata types to document for metadata_type in instance.document_type.metadata_type.filter(required=True): diff --git a/mayan/apps/metadata/models.py b/mayan/apps/metadata/models.py index f20aa48807..1a48c61cdd 100644 --- a/mayan/apps/metadata/models.py +++ b/mayan/apps/metadata/models.py @@ -58,9 +58,9 @@ class DocumentMetadata(models.Model): return super(DocumentMetadata, self).save(*args, **kwargs) - def delete(self, *args, **kwargs): - if self.metadata_type in self.document.document_type.metadata_type.filter(required=True): - raise ValidationError(_('Metadata type required if for this document type.')) + def delete(self, enforce_required=True, *args, **kwargs): + if enforce_required and self.metadata_type in self.document.document_type.metadata_type.filter(required=True): + raise ValidationError(_('Metadata type is required for this document type.')) return super(DocumentMetadata, self).delete(*args, **kwargs)