]> git.parisson.com Git - telemeta.git/commitdiff
add collection to corpus relation
authoryomguy <yomguy@parisson.com>
Mon, 28 Nov 2011 22:00:40 +0000 (23:00 +0100)
committeryomguy <yomguy@parisson.com>
Mon, 28 Nov 2011 22:00:40 +0000 (23:00 +0100)
telemeta/models/media.py

index 466889a791d22ecc2c1770acf7d768ca24b1a5e8..5ce5d17e1fce9da26656cd11dbd22d0900bb4e48 100644 (file)
@@ -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'