COLLECTION_UNPUBLISHED_CODE_REGEX = '[A-Za-z0-9._-]*'
ITEM_PUBLISHED_CODE_REGEX = COLLECTION_PUBLISHED_CODE_REGEX + ''
ITEM_UNPUBLISHED_CODE_REGEX = COLLECTION_UNPUBLISHED_CODE_REGEX + ''
+RESOURCE_CODE_REGEX = '[A-Za-z0-9._-]*'
AUTH_PROFILE_MODULE = 'telemeta.userprofile'
SESSION_EXPIRE_AT_BROWSER_CLOSE = False
from telemeta.models.system import *
+resource_code_regex = getattr(settings, 'RESOURCE_CODE_REGEX', '[A-Za-z0-9._-]*')
+
+
class MediaResource(ModelCore):
"Base class of all media objects"
class MediaBaseResource(MediaResource):
"Describe a media base resource"
+ def is_valid_resource_code(value):
+ "Check if the resource code is well formed"
+ regex = '^' + resource_code_regex + '$'
+ if not re.match(regex, value):
+ raise ValidationError(u'%s is not a valid resource code' % value)
+
title = CharField(_('title'), required=True)
description = CharField(_('description_old'))
descriptions = TextField(_('description'))
- code = CharField(_('code'), unique=True, required=True)
+ code = CharField(_('code'), unique=True, required=True, validators=[is_valid_resource_code])
public_access = CharField(_('public access'), choices=PUBLIC_ACCESS_CHOICES, max_length=16, default="metadata")
def __unicode__(self):