Add field to set validation function separately from the lookup field

This commit is contained in:
Roberto Rosario
2015-01-14 15:50:41 -04:00
parent 8b8c915bd0
commit f5e1adedfa
3 changed files with 67 additions and 2 deletions

View File

@@ -6,7 +6,7 @@ from .models import MetadataType
class MetadataTypeAdmin(admin.ModelAdmin):
list_display = ('name', 'title', 'default', 'lookup')
list_display = ('name', 'title', 'default', 'lookup', 'validation')
admin.site.register(MetadataType, MetadataTypeAdmin)

View File

@@ -7,6 +7,7 @@ from django.utils.translation import ugettext_lazy as _
from documents.models import Document, DocumentType
from .managers import MetadataTypeManager
from .settings import AVAILABLE_VALIDATORS
class MetadataType(models.Model):
@@ -24,7 +25,7 @@ class MetadataType(models.Model):
lookup = models.TextField(blank=True, null=True,
verbose_name=_(u'Lookup'),
help_text=_(u'Enter a string to be evaluated that returns an iterable.'))
# TODO: Add datatype choice: Date, Time, String, Number
validation = models.CharField(blank=True, choices=zip(AVAILABLE_VALIDATORS, AVAILABLE_VALIDATORS), max_length=64, verbose_name=_(u'Validation function name'))
# TODO: Find a different way to let users know what models and functions are
# available now that we removed these from the help_text
objects = MetadataTypeManager()

View File

@@ -0,0 +1,64 @@
# -*- coding: utf-8 -*-
from south.utils import datetime_utils as datetime
from south.db import db
from south.v2 import SchemaMigration
from django.db import models
class Migration(SchemaMigration):
def forwards(self, orm):
# Adding field 'MetadataType.validation'
db.add_column(u'metadata_metadatatype', 'validation',
self.gf('django.db.models.fields.CharField')(default='', max_length=64),
keep_default=False)
def backwards(self, orm):
# Deleting field 'MetadataType.validation'
db.delete_column(u'metadata_metadatatype', 'validation')
models = {
u'documents.document': {
'Meta': {'ordering': "['-date_added']", 'object_name': 'Document'},
'date_added': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'document_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'documents'", 'to': u"orm['documents.DocumentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'label': ('django.db.models.fields.CharField', [], {'default': "u'Uninitialized document'", 'max_length': '255', 'db_index': 'True'}),
'language': ('django.db.models.fields.CharField', [], {'default': "u'eng'", 'max_length': '8'}),
'uuid': ('django.db.models.fields.CharField', [], {'default': "u'8fd13d23-fcd0-438c-a1b3-7421a1d0eed5'", 'max_length': '48'})
},
u'documents.documenttype': {
'Meta': {'ordering': "['name']", 'object_name': 'DocumentType'},
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '32'}),
'ocr': ('django.db.models.fields.BooleanField', [], {'default': 'True'})
},
u'metadata.documentmetadata': {
'Meta': {'unique_together': "(('document', 'metadata_type'),)", 'object_name': 'DocumentMetadata'},
'document': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'metadata'", 'to': u"orm['documents.Document']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'metadata_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['metadata.MetadataType']"}),
'value': ('django.db.models.fields.CharField', [], {'db_index': 'True', 'max_length': '255', 'null': 'True', 'blank': 'True'})
},
u'metadata.documenttypemetadatatype': {
'Meta': {'unique_together': "(('document_type', 'metadata_type'),)", 'object_name': 'DocumentTypeMetadataType'},
'document_type': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'metadata'", 'to': u"orm['documents.DocumentType']"}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'metadata_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['metadata.MetadataType']"}),
'required': ('django.db.models.fields.BooleanField', [], {'default': 'False'})
},
u'metadata.metadatatype': {
'Meta': {'ordering': "('title',)", 'object_name': 'MetadataType'},
'default': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}),
u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
'lookup': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '48'}),
'title': ('django.db.models.fields.CharField', [], {'max_length': '48'}),
'validation': ('django.db.models.fields.CharField', [], {'max_length': '64'})
}
}
complete_apps = ['metadata']