Add flag to allow signals to bypass metadata validation

This commit is contained in:
Roberto Rosario
2014-11-03 00:09:58 -04:00
parent 1905a1ee3c
commit 8a54e2bde4
2 changed files with 4 additions and 4 deletions

View File

@@ -39,7 +39,7 @@ def post_post_document_type_change_metadata(sender, instance, **kwargs):
logger.debug('instance: %s', instance) logger.debug('instance: %s', instance)
# Delete existing document metadata # Delete existing document metadata
for metadata in instance.metadata.all(): for metadata in instance.metadata.all():
metadata.delete() metadata.delete(enforce_required=False)
# Add new document type metadata types to document # Add new document type metadata types to document
for metadata_type in instance.document_type.metadata_type.filter(required=True): for metadata_type in instance.document_type.metadata_type.filter(required=True):

View File

@@ -58,9 +58,9 @@ class DocumentMetadata(models.Model):
return super(DocumentMetadata, self).save(*args, **kwargs) return super(DocumentMetadata, self).save(*args, **kwargs)
def delete(self, *args, **kwargs): def delete(self, enforce_required=True, *args, **kwargs):
if self.metadata_type in self.document.document_type.metadata_type.filter(required=True): if enforce_required and self.metadata_type in self.document.document_type.metadata_type.filter(required=True):
raise ValidationError(_('Metadata type required if for this document type.')) raise ValidationError(_('Metadata type is required for this document type.'))
return super(DocumentMetadata, self).delete(*args, **kwargs) return super(DocumentMetadata, self).delete(*args, **kwargs)