]> git.parisson.com Git - telemeta.git/commitdiff
#74: First version of the new CREM models
authordavid <>
Thu, 17 Sep 2009 08:47:59 +0000 (08:47 +0000)
committerdavid <>
Thu, 17 Sep 2009 08:47:59 +0000 (08:47 +0000)
telemeta/models/crem.py [new file with mode: 0755]

diff --git a/telemeta/models/crem.py b/telemeta/models/crem.py
new file mode 100755 (executable)
index 0000000..eacb530
--- /dev/null
@@ -0,0 +1,211 @@
+from django.db import models
+
+class MediaCollection(models.Model):
+    reference               = models.CharField(unique = True)
+    physical_format_id      = models.ForeignKey('PhysicalFormat')
+    old_code                = models.CharField(unique = True)
+    code                    = models.CharField(unique = True)
+    title                   = models.CharField()
+    alt_title               = models.CharField()
+    physical_items_num      = models.IntegerField()
+    publishing_status_id    = models.ForeignKey('PublishingStatus')
+    creator                 = models.CharField()
+    booklet_author          = models.CharField()
+    booklet_description     = models.TextField()
+    collector               = models.CharField()
+    collector_is_creator    = models.BooleanField()
+    publisher_id            = models.IntegerField()
+    year_published          = models.IntegerField()
+    publisher_collection_id = models.ForeignKey('PublisherCollection')   
+    publisher_serial        = models.CharField()
+    external_references     = models.TextField()
+    acquisition_mode_id     = models.ForeignKey('AcquisitionMode')
+    comment                 = models.TextField()
+    metadata_author_id      = models.ForeignKey('MetadataAuthor')
+    metadata_writer_id      = models.ForeignKey('MetadataWriter')
+    legal_rights_id         = models.ForeignKey('LegalRight')
+    alt_ids                 = models.CharField()
+    recorded_from_year      = models.IntegerField()
+    recorded_to_year        = models.IntegerField()
+    recording_context_id    = models.ForeignKey('RecordingContext')
+    approx_duration         = models.TimeField()
+    doctype_code            = models.IntegerField()
+    travail                 = models.CharField()
+    state                   = models.TextField()
+    cnrs_contributor        = models.CharField()
+    items_done              = models.CharField()
+    a_informer_07_03        = models.CharField()
+    ad_conversion_id        = models.ForeignKey('AdConversion')
+    PUBLIC_ACCESS_CHOICES   = (
+        ('none'),
+        ('metadata'),
+        ('full'),
+    )
+    public_access           = models.Charfield(choices = PUBLIC_ACCESS_CHOICES) 
+
+class MediaItem(models.Model):
+    collection_id       = models.ForeignKey('MediaCollection')
+    track               = models.CharField()
+    old_code            = models.CharField(unique = True)
+    code                = models.CharField(unique = True)
+    approx_duration     = models.TimeField()
+    recorded_from_date  = models.DateField()
+    recorded_to_date    = models.DateField()
+    location_name       = models.ForeignKey('Location')
+    location_comment    = models.CharField()
+    ethnic_group_id     = models.ForeignKey('EthnicGroup')
+    title               = models.CharField()
+    alt_title           = models.CharField()
+    author              = models.CharField()
+    vernacular_style_id = models.ForeignKey('VernacularStyle')
+    context_comment     = models.TextField()
+    external_references = models.TextField()
+    moda_execut         = models.CharField()
+    copied_from_item_id = models.ForeignKey('self')
+    collector           = models.CharField()
+    cultural_area       = models.CharField()
+    generic_style_id    = models.ForeignKey('GenericStyle')
+    collector_selection = models.CharField()
+    creator_reference   = models.CharField()
+    comment             = models.TextField()
+    filename            = models.CharField()
+    PUBLIC_ACCESS_CHOICES   = (
+        ('none'),
+        ('metadata'),
+        ('full'),
+    )
+    public_access           = models.Charfield(choices = PUBLIC_ACCESS_CHOICES)
+
+class MediaPart(models.Model):
+    item_id = models.ForeignKey('MediaItem')
+    title   = models.CharField()
+    start   = models.FloatField()
+    end     = models.FloatField()
+
+class PhysicalFormat(models.Model):
+
+class PublishingStatus(models.Model):
+
+class PublisherCollection(models.Model):
+
+class AcquisitionMode(models.Model):
+
+class MetadataAuthor(models.Model):
+
+class MetadataWriter(models.Model):  
+
+class LegalRight(models.Model): 
+
+class RecordingContext(models.Model):
+
+class AdConversion(models.Model):
+
+class EthnicGroup(models.Model):
+   
+class VernacularStyle(models.Model):
+
+class GenericStyle(models.Model):
+
+class Instrument(models.Model):
+    name = models.CharField()
+
+class InstrumentRelation(models.Model):
+    instrument_id        = models.ForeignKey('Instrument')
+    parent_instrmuent_id = models.ForeignKey('Instrument')
+
+class InstrumentAlias(models.Model):
+    name = models.CharField()
+
+class InstrumentAliasRelation(models.Model):
+    alias_id      = models.ForeignKey('InstrumentAlias')
+    instrument_id = models.ForeignKey('InstrumentAlias')
+
+class MediaItemPerformance(models.Model):
+    media_item_id   = models.ForeignKey('MediaItem')
+    instrument_id   = models.ForeignKey('Instrument')
+    alias_id        = models.ForeignKey('InstrumentAlias')
+    instruments_num = models.CharField()
+    musicians       = models.CharField()
+
+class User(models.Model):
+    username   = models.CharField(primary_key = True)
+    LEVEL_CHOICES = (
+    ('user'),
+    ('maintainer'),
+    ('admin'),
+    )    
+    level      = models.CharField(choices = LEVEL_CHOICES)
+    first_name = models.CharField()
+    last_name  = models.CharField()
+    phone      = models.CharField()
+    email      = models.CharField()
+
+class Playlist(models.Model):
+    owner_username = models.ForeignKey('self') 
+    name           = models.CharField()
+
+class PlaylistResource(models.Model):
+    playlist_id   = models.ForeignKey('Playlist')
+    RESOURCE_TYPE_CHOICES = (
+    ('item'),
+    ('collection'),
+    )
+    resource_type = models.CharField(choices = RESOURCE_TYPE_CHOICES)
+    resource_id   = models.ForeignKey('Playlist')
+
+class Location(models.Model):
+    name             = models.CharField(primary_key = True)
+    TYPE_CHOICES     = (
+    ('country'),
+    ('continent'),
+    ('other'),
+    )
+    type = models.CharField(choices = TYPE_CHOICES)
+    complet_type_id  = models.ForeignKey('LocationType')
+    current_name     = models.ForeignKey('self') 
+    is_authoritative = models.BooleanField()
+
+class LocationType(models.Model):
+    type = models.CharField()
+
+class LocationAlias(models.Model):
+    location_name    = models.ForeignKey('Location')
+    alias            = models.CharField()
+    is_authoritative = models.BooleanField()
+    
+class LocationRelation(models.Model):
+    location_name        = models.ForeignKey('Location')
+    parent_location_name = models.ForeignKey('Location')
+    is_authoritative     = models.BooleanField()
+    
+class ContextKeyword(models.Model):
+    value = models.CharField
+
+class MediaItemKeyword(models.Model):
+    item_id    = models.ForeignKey('MediaItem')
+    keyword_id = models.ForeignKey('ContextKeyword')
+
+class Publisher(models.Model): 
+    value = models.CharField()
+
+class PublisherCollection(models.Model):
+    publisher_id = models.ForeignKey('Publisher')
+    value        = models.CharField()
+
+class Revision(models.Model):
+    element_type = models.CharField()
+    element_id   = models.ForeignKey('User')
+    CHANGE_TYPE_CHOICE = (
+    ('create'),
+    ('update'),
+    ('delete'),
+    )
+    change_type  = models.CharField(choices = CHANGE_TYPE_CHOICES)
+    time         = models.DateTimeField()
+    username     = models.ForeignKey('User')
+    
+class EthnicGroup(models.Model):
+    name = models.CharField()
+
+class EthnicGroupAlias(models.Model):
+    name = models.CharField()