From: yomguy Date: Mon, 28 Nov 2011 22:00:40 +0000 (+0100) Subject: add collection to corpus relation X-Git-Tag: 1.3~20 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=c6d752c194b0085e87aa3c44bc3e4ca6df4f8ceb;p=telemeta.git add collection to corpus relation --- diff --git a/telemeta/models/media.py b/telemeta/models/media.py index 466889a7..5ce5d17e 100644 --- a/telemeta/models/media.py +++ b/telemeta/models/media.py @@ -51,6 +51,16 @@ from telemeta.models.enum import * 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._-]*' +collection_code_regex = '(?:%s|%s)' % (collection_published_code_regex, + collection_unpublished_code_regex) + +item_published_code_regex = '[A-Za-z0-9._-]*' +item_unpublished_code_regex = '[A-Za-z0-9._-]*' +item_code_regex = '(?:%s|%s)' % (item_published_code_regex, item_unpublished_code_regex) + class MediaResource(ModelCore): "Base class of all media objects" @@ -106,12 +116,24 @@ class MediaCorpus(MediaResource): class MediaCorpusForm(ModelForm): class Meta: model = MediaCorpus - - -collection_published_code_regex = '[A-Za-z0-9._-]*' -collection_unpublished_code_regex = '[A-Za-z0-9._-]*' -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" @@ -134,8 +156,6 @@ class MediaCollection(MediaResource): recorded_from_year = IntegerField(_('recording year (from)')) recorded_to_year = IntegerField(_('recording year (until)')) year_published = IntegerField(_('year published')) -# corpus = ForeignKey('MediaCorpus', related_name="collections", -# verbose_name=_('corpus')) # Geographic and cultural informations ## See "countries" and "ethnic_groups" methods below @@ -256,10 +276,6 @@ class MediaCollectionForm(ModelForm): return self.cleaned_data['doctype_code'] or 0 -item_published_code_regex = '[A-Za-z0-9._-]*' -item_unpublished_code_regex = '[A-Za-z0-9._-]*' -item_code_regex = '(?:%s|%s)' % (item_published_code_regex, item_unpublished_code_regex) - class MediaItem(MediaResource): "Describe an item" element_type = 'item'