Add unicode method, update and optimize validation code

This commit is contained in:
Roberto Rosario
2014-12-08 19:34:40 -04:00
parent bb783fa2e1
commit 82bedefff6

View File

@@ -53,13 +53,13 @@ class DocumentMetadata(models.Model):
return unicode(self.metadata_type)
def save(self, *args, **kwargs):
if self.metadata_type not in self.document.document_type.metadata_type.all():
if self.metadata_type.pk not in self.document.document_type.metadata.values_list('metadata_type', flat=True):
raise ValidationError(_('Metadata type is not valid for this document type.'))
return super(DocumentMetadata, self).save(*args, **kwargs)
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):
if enforce_required and self.metadata_type.pk in self.document.document_type.metadata.filter(required=True).values_list('metadata_type', flat=True):
raise ValidationError(_('Metadata type is required for this document type.'))
return super(DocumentMetadata, self).delete(*args, **kwargs)
@@ -75,6 +75,9 @@ class DocumentTypeMetadataType(models.Model):
metadata_type = models.ForeignKey(MetadataType, verbose_name=_(u'Metadata type'))
required = models.BooleanField(default=False, verbose_name=_('Required'))
def __unicode__(self):
return unicode(self.metadata_type)
class Meta:
unique_together = ('document_type', 'metadata_type')
verbose_name = _(u'Document type metadata type options')