Add flag to allow signals to bypass metadata validation
This commit is contained in:
@@ -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):
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user