From: david <> Date: Thu, 17 Sep 2009 08:47:59 +0000 (+0000) Subject: #74: First version of the new CREM models X-Git-Tag: 1.1~639 X-Git-Url: https://git.parisson.com/?a=commitdiff_plain;h=404b7d94027db6d1bfd36353e87aaa0e9c1e4dcf;p=telemeta.git #74: First version of the new CREM models --- diff --git a/telemeta/models/crem.py b/telemeta/models/crem.py new file mode 100755 index 00000000..eacb5307 --- /dev/null +++ b/telemeta/models/crem.py @@ -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()