from django.forms import ModelForm
from django.db.models.fields import URLField
-collection_published_code_regex = '[A-Za-z0-9._-]*'
-collection_unpublished_code_regex = '[A-Za-z0-9._-]*'
+
-item_published_code_regex = '[A-Za-z0-9._-]*'
-item_unpublished_code_regex = '[A-Za-z0-9._-]*'
++collection_published_code_regex = 'CNRSMH_E_[0-9]{4}(?:_[0-9]{3}){2}'
++collection_unpublished_code_regex = 'CNRSMH_I_[0-9]{4}_[0-9]{3}'
+ collection_code_regex = '(?:%s|%s)' % (collection_published_code_regex,
+ collection_unpublished_code_regex)
+
++item_published_code_regex = collection_published_code_regex + '(?:_[0-9]{2,3}){1,2}'
++item_unpublished_code_regex = collection_unpublished_code_regex + '_[0-9]{2,3}(?:_[0-9]{2,3}){0,2}'
+ item_code_regex = '(?:%s|%s)' % (item_published_code_regex, item_unpublished_code_regex)
+
class MediaResource(ModelCore):
"Base class of all media objects"
class MediaCorpusForm(ModelForm):
class Meta:
model = MediaCorpus
-
+
-
- collection_published_code_regex = 'CNRSMH_E_[0-9]{4}(?:_[0-9]{3}){2}'
- collection_unpublished_code_regex = 'CNRSMH_I_[0-9]{4}_[0-9]{3}'
- collection_code_regex = '(?:%s|%s)' % (collection_published_code_regex,
- collection_unpublished_code_regex)
+ class MediaCorpusCollectionRelation(ModelCore):
+ "Relations between Corpus and Collections"
+
+ collection = ForeignKey('MediaCollection', related_name="parent_relation",
+ verbose_name=_('collection'))
+ corpus = ForeignKey('MediaCorpus', related_name="child_relation",
+ verbose_name=_('corpus'))
+
+ class Meta(MetaCore):
+ db_table = 'media_corpus_collection_relations'
+ unique_together = (('collection', 'corpus'),)
+
+ def __unicode__(self):
+ sep = ' > '
+ return self.corpus.code + sep + self.collection.code
+
class MediaCollection(MediaResource):
"Describe a collection of items"