From a95c26002183379dec793cce951c75f0421188a9 Mon Sep 17 00:00:00 2001 From: Guillaume Pellerin Date: Sun, 17 Sep 2017 21:23:49 +0200 Subject: [PATCH] begin database enumeration property management --- doc/themes/pelican-bootstrap3 | 2 +- telemeta/admin.py | 6 + .../commands/telemeta-setup-enumerations.py | 22 + .../0036_auto__add_enumerationproperty.py | 634 ++++++++++++++++++ telemeta/models/enum.py | 9 +- telemeta/pages | 2 +- telemeta/templates/telemeta/inc/nav.html | 40 +- telemeta/views/admin.py | 15 +- telemeta/views/enum.py | 13 +- telemeta/views/item.py | 5 +- 10 files changed, 703 insertions(+), 45 deletions(-) create mode 100644 telemeta/management/commands/telemeta-setup-enumerations.py create mode 100644 telemeta/migrations/0036_auto__add_enumerationproperty.py diff --git a/doc/themes/pelican-bootstrap3 b/doc/themes/pelican-bootstrap3 index 0d473861..13ffdfdc 160000 --- a/doc/themes/pelican-bootstrap3 +++ b/doc/themes/pelican-bootstrap3 @@ -1 +1 @@ -Subproject commit 0d473861e930e91a4a85a1770d926a62c05b8268 +Subproject commit 13ffdfdca0b81fab654d4f464c59c19852640ddb diff --git a/telemeta/admin.py b/telemeta/admin.py index 34db84d5..1f5ec416 100644 --- a/telemeta/admin.py +++ b/telemeta/admin.py @@ -103,6 +103,10 @@ class UserProfileAdmin(UserAdmin): class PlaylistAdmin(admin.ModelAdmin): search_fields = ['title', 'public_id'] +class EnumerationPropertyAdmin(admin.ModelAdmin): + list_display = ['enumeration_name', 'is_admin', 'is_hidden'] + + admin.site.register(MediaFonds, MediaFondsAdmin) admin.site.register(MediaCorpus, MediaCorpusAdmin) admin.site.register(MediaCollection, MediaCollectionAdmin) @@ -129,3 +133,5 @@ admin.site.register(User, UserProfileAdmin) admin.site.register(PublisherCollection) admin.site.register(Playlist, PlaylistAdmin) + +admin.site.register(EnumerationProperty, EnumerationPropertyAdmin) diff --git a/telemeta/management/commands/telemeta-setup-enumerations.py b/telemeta/management/commands/telemeta-setup-enumerations.py new file mode 100644 index 00000000..500ae87f --- /dev/null +++ b/telemeta/management/commands/telemeta-setup-enumerations.py @@ -0,0 +1,22 @@ +from optparse import make_option +from django.conf import settings +from django.core.management.base import BaseCommand, CommandError +from django.contrib.auth.models import User +import telemeta +from telemeta.models.enum import Enumeration, EnumerationProperty + + +class Command(BaseCommand): + help = """Create all EnumerationProperty against the Enumeration list""" + + def handle(self, *args, **options): + from django.db.models import get_models + models = get_models(telemeta.models) + for model in models: + if issubclass(model, Enumeration): + enumeration_property = EnumerationProperty.objects.filter(enumeration_name=model._meta.module_name) + if not enumeration_property: + enumeration_property = EnumerationProperty(enumeration_name=model._meta.module_name) + enumeration_property.is_admin = True + enumeration_property.is_hidden = False + enumeration_property.save() diff --git a/telemeta/migrations/0036_auto__add_enumerationproperty.py b/telemeta/migrations/0036_auto__add_enumerationproperty.py new file mode 100644 index 00000000..e789c4b1 --- /dev/null +++ b/telemeta/migrations/0036_auto__add_enumerationproperty.py @@ -0,0 +1,634 @@ +# -*- coding: utf-8 -*- +from south.utils import datetime_utils as datetime +from south.db import db +from south.v2 import SchemaMigration +from django.db import models + + +class Migration(SchemaMigration): + + def forwards(self, orm): + # Adding model 'EnumerationProperty' + db.create_table(u'telemeta_enumerationproperty', ( + (u'id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), + ('enumeration_name', self.gf('django.db.models.fields.CharField')(max_length=255)), + ('is_hidden', self.gf('telemeta.models.fields.BooleanField')(default=False)), + ('is_admin', self.gf('telemeta.models.fields.BooleanField')(default=True)), + )) + db.send_create_signal('telemeta', ['EnumerationProperty']) + + + def backwards(self, orm): + # Deleting model 'EnumerationProperty' + db.delete_table(u'telemeta_enumerationproperty') + + + models = { + u'auth.group': { + 'Meta': {'object_name': 'Group'}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}), + 'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': u"orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) + }, + u'auth.permission': { + 'Meta': {'ordering': "(u'content_type__app_label', u'content_type__model', u'codename')", 'unique_together': "((u'content_type', u'codename'),)", 'object_name': 'Permission'}, + 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': u"orm['contenttypes.ContentType']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) + }, + u'auth.user': { + 'Meta': {'object_name': 'User'}, + 'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}), + 'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'groups': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Group']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}), + 'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}), + 'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}), + 'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}), + 'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}), + 'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'symmetrical': 'False', 'related_name': "u'user_set'", 'blank': 'True', 'to': u"orm['auth.Permission']"}), + 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) + }, + u'contenttypes.contenttype': { + 'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"}, + 'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}), + 'name': ('django.db.models.fields.CharField', [], {'max_length': '100'}) + }, + 'telemeta.acquisitionmode': { + 'Meta': {'ordering': "['value']", 'object_name': 'AcquisitionMode', 'db_table': "'acquisition_modes'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.adconversion': { + 'Meta': {'ordering': "['value']", 'object_name': 'AdConversion', 'db_table': "'ad_conversions'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.contextkeyword': { + 'Meta': {'ordering': "['value']", 'object_name': 'ContextKeyword', 'db_table': "'context_keywords'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.copytype': { + 'Meta': {'ordering': "['value']", 'object_name': 'CopyType', 'db_table': "'copy_type'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.criteria': { + 'Meta': {'object_name': 'Criteria', 'db_table': "'search_criteria'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'key': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'value': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.enumerationproperty': { + 'Meta': {'object_name': 'EnumerationProperty'}, + 'enumeration_name': ('django.db.models.fields.CharField', [], {'max_length': '255'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_admin': ('telemeta.models.fields.BooleanField', [], {'default': 'True'}), + 'is_hidden': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'telemeta.ethnicgroup': { + 'Meta': {'ordering': "['value']", 'object_name': 'EthnicGroup', 'db_table': "'ethnic_groups'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.ethnicgroupalias': { + 'Meta': {'ordering': "['ethnic_group__value']", 'unique_together': "(('ethnic_group', 'value'),)", 'object_name': 'EthnicGroupAlias', 'db_table': "'ethnic_group_aliases'"}, + 'ethnic_group': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'aliases'", 'to': "orm['telemeta.EthnicGroup']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.format': { + 'Meta': {'object_name': 'Format', 'db_table': "'media_formats'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'format'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.MediaItem']", 'blank': 'True', 'null': 'True'}), + 'original_audio_quality': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'original_channels': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'format'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.NumberOfChannels']"}), + 'original_code': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'original_comments': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'original_location': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'format'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Location']", 'blank': 'True', 'null': 'True'}), + 'original_number': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'original_state': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'original_status': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'physical_format': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'format'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'recording_system': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'sticker_presence': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'tape_reference': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'tape_speed': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'format'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.TapeSpeed']"}), + 'tape_thickness': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'tape_vendor': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'format'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.TapeVendor']"}), + 'tape_wheel_diameter': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'format'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.TapeWheelDiameter']"}) + }, + 'telemeta.genericstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'GenericStyle', 'db_table': "'generic_styles'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.identifiertype': { + 'Meta': {'ordering': "['value']", 'object_name': 'IdentifierType', 'db_table': "'identifier_type'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.instrument': { + 'Meta': {'ordering': "['name']", 'object_name': 'Instrument', 'db_table': "'instruments'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'telemeta.instrumentalias': { + 'Meta': {'ordering': "['name']", 'object_name': 'InstrumentAlias', 'db_table': "'instrument_aliases'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}) + }, + 'telemeta.instrumentaliasrelation': { + 'Meta': {'unique_together': "(('alias', 'instrument'),)", 'object_name': 'InstrumentAliasRelation', 'db_table': "'instrument_alias_relations'"}, + 'alias': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'other_name'", 'to': "orm['telemeta.InstrumentAlias']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instrument': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'relation'", 'to': "orm['telemeta.Instrument']"}) + }, + 'telemeta.instrumentrelation': { + 'Meta': {'unique_together': "(('instrument', 'parent_instrument'),)", 'object_name': 'InstrumentRelation', 'db_table': "'instrument_relations'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instrument': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'parent_relation'", 'to': "orm['telemeta.Instrument']"}), + 'parent_instrument': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'child_relation'", 'to': "orm['telemeta.Instrument']"}) + }, + 'telemeta.language': { + 'Meta': {'ordering': "['name']", 'object_name': 'Language', 'db_table': "'languages'"}, + 'comment': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'name': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'part1': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'part2B': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'part2T': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '3', 'blank': 'True'}), + 'scope': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}), + 'type': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '1', 'blank': 'True'}) + }, + 'telemeta.legalright': { + 'Meta': {'ordering': "['value']", 'object_name': 'LegalRight', 'db_table': "'legal_rights'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.location': { + 'Meta': {'ordering': "['name']", 'object_name': 'Location', 'db_table': "'locations'"}, + 'complete_type': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'locations'", 'to': "orm['telemeta.LocationType']"}), + 'current_location': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'past_names'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Location']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'latitude': ('telemeta.models.fields.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'longitude': ('telemeta.models.fields.FloatField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'name': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '150'}), + 'type': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'db_index': 'True', 'blank': 'True'}) + }, + 'telemeta.locationalias': { + 'Meta': {'ordering': "['alias']", 'unique_together': "(('location', 'alias'),)", 'object_name': 'LocationAlias', 'db_table': "'location_aliases'"}, + 'alias': ('telemeta.models.fields.CharField', [], {'max_length': '150'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'location': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'aliases'", 'to': "orm['telemeta.Location']"}) + }, + 'telemeta.locationrelation': { + 'Meta': {'ordering': "['ancestor_location__name']", 'unique_together': "(('location', 'ancestor_location'),)", 'object_name': 'LocationRelation', 'db_table': "'location_relations'"}, + 'ancestor_location': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'descendant_relations'", 'to': "orm['telemeta.Location']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_authoritative': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'is_direct': ('telemeta.models.fields.BooleanField', [], {'default': 'False', 'db_index': 'True'}), + 'location': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'ancestor_relations'", 'to': "orm['telemeta.Location']"}) + }, + 'telemeta.locationtype': { + 'Meta': {'ordering': "['name']", 'object_name': 'LocationType', 'db_table': "'location_types'"}, + 'code': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '64'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'name': ('telemeta.models.fields.CharField', [], {'max_length': '150'}) + }, + 'telemeta.mediacollection': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCollection', 'db_table': "'media_collections'"}, + 'acquisition_mode': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AcquisitionMode']"}), + 'ad_conversion': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.AdConversion']"}), + 'alt_copies': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'alt_ids': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'alt_title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.fields.DurationField', [], {'default': "'0'", 'blank': 'True'}), + 'archiver_notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'auto_period_access': ('telemeta.models.fields.BooleanField', [], {'default': 'True'}), + 'booklet_author': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'booklet_description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'cnrs_contributor': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'code': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collector': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_is_creator': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'comment': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'conservation_site': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'copy_type': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.CopyType']"}), + 'creator': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'external_references': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'is_published': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'items_done': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'legal_rights': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.LegalRight']"}), + 'media_type': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaType']"}), + 'metadata_author': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataAuthor']"}), + 'metadata_writer': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MetadataWriter']"}), + 'old_code': ('telemeta.models.fields.CharField', [], {'default': 'None', 'max_length': '250', 'null': 'True', 'blank': 'True'}), + 'original_format': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.OriginalFormat']"}), + 'physical_format': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PhysicalFormat']"}), + 'physical_items_num': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'public_access': ('telemeta.models.fields.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publisher': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Publisher']"}), + 'publisher_collection': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublisherCollection']"}), + 'publisher_serial': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'publishing_status': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.PublishingStatus']"}), + 'recorded_from_year': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recording_context': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.RecordingContext']"}), + 'reference': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'status': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'collections'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Status']"}), + 'title': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'travail': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'year_published': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}) + }, + 'telemeta.mediacollectionidentifier': { + 'Meta': {'unique_together': "(('identifier', 'collection'),)", 'object_name': 'MediaCollectionIdentifier', 'db_table': "'media_collection_identifier'"}, + 'collection': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'identifiers'", 'to': "orm['telemeta.MediaCollection']"}), + 'date_add': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'date_first': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'date_last': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'date_modified': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'type': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.IdentifierType']", 'null': 'True', 'blank': 'True'}) + }, + 'telemeta.mediacollectionrelated': { + 'Meta': {'object_name': 'MediaCollectionRelated', 'db_table': "'media_collection_related'"}, + 'collection': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'related'", 'to': "orm['telemeta.MediaCollection']"}), + 'credits': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.fields.FileField', [], {'default': "''", 'max_length': '255', 'db_column': "'filename'", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mime_type': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'url': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '500', 'blank': 'True'}) + }, + 'telemeta.mediacorpus': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaCorpus', 'db_table': "'media_corpus'"}, + 'children': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'corpus'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['telemeta.MediaCollection']"}), + 'code': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'description': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'descriptions': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_access': ('telemeta.models.fields.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'recorded_from_year': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'recorded_to_year': ('telemeta.models.fields.IntegerField', [], {'default': '0', 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.mediacorpusrelated': { + 'Meta': {'object_name': 'MediaCorpusRelated', 'db_table': "'media_corpus_related'"}, + 'credits': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.fields.FileField', [], {'default': "''", 'max_length': '255', 'db_column': "'filename'", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mime_type': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'resource': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'related'", 'to': "orm['telemeta.MediaCorpus']"}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'url': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '500', 'blank': 'True'}) + }, + 'telemeta.mediafonds': { + 'Meta': {'ordering': "['code']", 'object_name': 'MediaFonds', 'db_table': "'media_fonds'"}, + 'children': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'fonds'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['telemeta.MediaCorpus']"}), + 'code': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'description': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'descriptions': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_access': ('telemeta.models.fields.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.mediafondsrelated': { + 'Meta': {'object_name': 'MediaFondsRelated', 'db_table': "'media_fonds_related'"}, + 'credits': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.fields.FileField', [], {'default': "''", 'max_length': '255', 'db_column': "'filename'", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'mime_type': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'resource': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'related'", 'to': "orm['telemeta.MediaFonds']"}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'url': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '500', 'blank': 'True'}) + }, + 'telemeta.mediaitem': { + 'Meta': {'object_name': 'MediaItem', 'db_table': "'media_items'"}, + 'alt_title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'approx_duration': ('telemeta.models.fields.DurationField', [], {'default': "'0'", 'blank': 'True'}), + 'author': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'auto_period_access': ('telemeta.models.fields.BooleanField', [], {'default': 'True'}), + 'code': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}), + 'collection': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'items'", 'to': "orm['telemeta.MediaCollection']"}), + 'collector': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'collector_from_collection': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}), + 'collector_selection': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'comment': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'context_comment': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'contributor': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'creator_reference': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'cultural_area': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'depositor': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'digitalist': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'digitization_date': ('telemeta.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'ethnic_group': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.EthnicGroup']"}), + 'external_references': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.fields.FileField', [], {'default': "''", 'max_length': '1024', 'db_column': "'filename'", 'blank': 'True'}), + 'generic_style': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.GenericStyle']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'language': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'language_iso': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'items'", 'on_delete': 'models.SET_NULL', 'default': 'None', 'to': "orm['telemeta.Language']", 'blank': 'True', 'null': 'True'}), + 'location': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Location']", 'null': 'True', 'blank': 'True'}), + 'location_comment': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'media_type': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.MediaType']"}), + 'mimetype': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '255', 'blank': 'True'}), + 'moda_execut': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'old_code': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'organization': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Organization']", 'null': 'True', 'blank': 'True'}), + 'public_access': ('telemeta.models.fields.CharField', [], {'default': "'metadata'", 'max_length': '16', 'blank': 'True'}), + 'publishing_date': ('telemeta.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_from_date': ('telemeta.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recorded_to_date': ('telemeta.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'recordist': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'rights': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Rights']", 'null': 'True', 'blank': 'True'}), + 'scientist': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'summary': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'topic': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.Topic']", 'null': 'True', 'blank': 'True'}), + 'track': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'url': ('django.db.models.fields.URLField', [], {'max_length': '512', 'blank': 'True'}), + 'vernacular_style': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'items'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.VernacularStyle']"}) + }, + 'telemeta.mediaitemanalysis': { + 'Meta': {'ordering': "['name']", 'object_name': 'MediaItemAnalysis', 'db_table': "'media_analysis'"}, + 'analyzer_id': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'analysis'", 'to': "orm['telemeta.MediaItem']"}), + 'name': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'unit': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) + }, + 'telemeta.mediaitemidentifier': { + 'Meta': {'unique_together': "(('identifier', 'item'),)", 'object_name': 'MediaItemIdentifier', 'db_table': "'media_item_identifier'"}, + 'date_add': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'date_first': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'date_last': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'date_modified': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'identifier': ('telemeta.models.fields.CharField', [], {'default': "''", 'unique': 'True', 'max_length': '255', 'blank': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'identifiers'", 'to': "orm['telemeta.MediaItem']"}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'type': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'to': "orm['telemeta.IdentifierType']", 'null': 'True', 'blank': 'True'}) + }, + 'telemeta.mediaitemkeyword': { + 'Meta': {'unique_together': "(('item', 'keyword'),)", 'object_name': 'MediaItemKeyword', 'db_table': "'media_item_keywords'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'keyword_relations'", 'to': "orm['telemeta.MediaItem']"}), + 'keyword': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'item_relations'", 'to': "orm['telemeta.ContextKeyword']"}) + }, + 'telemeta.mediaitemmarker': { + 'Meta': {'ordering': "['time']", 'object_name': 'MediaItemMarker', 'db_table': "'media_markers'"}, + 'author': ('telemeta.models.fields.ForeignKey', [], {'default': 'None', 'related_name': "'markers'", 'null': 'True', 'blank': 'True', 'to': u"orm['auth.User']"}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'markers'", 'to': "orm['telemeta.MediaItem']"}), + 'public_id': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'time': ('telemeta.models.fields.FloatField', [], {'default': '0', 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) + }, + 'telemeta.mediaitemperformance': { + 'Meta': {'object_name': 'MediaItemPerformance', 'db_table': "'media_item_performances'"}, + 'alias': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'performances'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.InstrumentAlias']"}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'instrument': ('telemeta.models.fields.WeakForeignKey', [], {'default': 'None', 'related_name': "'performances'", 'null': 'True', 'blank': 'True', 'to': "orm['telemeta.Instrument']"}), + 'instruments_num': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'media_item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'performances'", 'to': "orm['telemeta.MediaItem']"}), + 'musicians': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}) + }, + 'telemeta.mediaitemrelated': { + 'Meta': {'object_name': 'MediaItemRelated', 'db_table': "'media_item_related'"}, + 'credits': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'file': ('telemeta.models.fields.FileField', [], {'default': "''", 'max_length': '255', 'db_column': "'filename'", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'related'", 'to': "orm['telemeta.MediaItem']"}), + 'mime_type': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'title': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'url': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '500', 'blank': 'True'}) + }, + 'telemeta.mediaitemtranscoded': { + 'Meta': {'object_name': 'MediaItemTranscoded', 'db_table': "'telemeta_media_transcoded'"}, + 'date_added': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'file': ('django.db.models.fields.files.FileField', [], {'max_length': '1024', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'transcoded'", 'to': "orm['telemeta.MediaItem']"}), + 'mimetype': ('django.db.models.fields.CharField', [], {'max_length': '255', 'blank': 'True'}), + 'status': ('django.db.models.fields.IntegerField', [], {'default': '1'}) + }, + 'telemeta.mediaitemtranscodingflag': { + 'Meta': {'object_name': 'MediaItemTranscodingFlag', 'db_table': "'media_transcoding'"}, + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now': 'True', 'null': 'True', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'transcoding'", 'to': "orm['telemeta.MediaItem']"}), + 'mime_type': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'value': ('telemeta.models.fields.BooleanField', [], {'default': 'False'}) + }, + 'telemeta.mediapart': { + 'Meta': {'object_name': 'MediaPart', 'db_table': "'media_parts'"}, + 'end': ('telemeta.models.fields.FloatField', [], {}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'item': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'parts'", 'to': "orm['telemeta.MediaItem']"}), + 'start': ('telemeta.models.fields.FloatField', [], {}), + 'title': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.mediatype': { + 'Meta': {'ordering': "['value']", 'object_name': 'MediaType', 'db_table': "'media_type'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadataauthor': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataAuthor', 'db_table': "'metadata_authors'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.metadatawriter': { + 'Meta': {'ordering': "['value']", 'object_name': 'MetadataWriter', 'db_table': "'metadata_writers'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.numberofchannels': { + 'Meta': {'ordering': "['value']", 'object_name': 'NumberOfChannels', 'db_table': "'original_channel_number'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.organization': { + 'Meta': {'ordering': "['value']", 'object_name': 'Organization', 'db_table': "'organization'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.originalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'OriginalFormat', 'db_table': "'original_format'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.physicalformat': { + 'Meta': {'ordering': "['value']", 'object_name': 'PhysicalFormat', 'db_table': "'physical_formats'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.playlist': { + 'Meta': {'object_name': 'Playlist', 'db_table': "'playlists'"}, + 'author': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'playlists'", 'db_column': "'author'", 'to': u"orm['auth.User']"}), + 'description': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'public_id': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'title': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.playlistresource': { + 'Meta': {'object_name': 'PlaylistResource', 'db_table': "'playlist_resources'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'playlist': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'resources'", 'to': "orm['telemeta.Playlist']"}), + 'public_id': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'resource_id': ('telemeta.models.fields.CharField', [], {'max_length': '250'}), + 'resource_type': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publisher': { + 'Meta': {'ordering': "['value']", 'object_name': 'Publisher', 'db_table': "'publishers'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.publishercollection': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublisherCollection', 'db_table': "'publisher_collections'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'publisher': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'publisher_collections'", 'to': "orm['telemeta.Publisher']"}), + 'value': ('telemeta.models.fields.CharField', [], {'max_length': '250'}) + }, + 'telemeta.publishingstatus': { + 'Meta': {'ordering': "['value']", 'object_name': 'PublishingStatus', 'db_table': "'publishing_status'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.recordingcontext': { + 'Meta': {'ordering': "['value']", 'object_name': 'RecordingContext', 'db_table': "'recording_contexts'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.revision': { + 'Meta': {'ordering': "['-time']", 'object_name': 'Revision', 'db_table': "'revisions'"}, + 'change_type': ('telemeta.models.fields.CharField', [], {'max_length': '16'}), + 'element_id': ('telemeta.models.fields.IntegerField', [], {}), + 'element_type': ('telemeta.models.fields.CharField', [], {'max_length': '16'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'time': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'user': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'revisions'", 'db_column': "'username'", 'to': u"orm['auth.User']"}) + }, + 'telemeta.rights': { + 'Meta': {'ordering': "['value']", 'object_name': 'Rights', 'db_table': "'rights'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.search': { + 'Meta': {'ordering': "['-date']", 'object_name': 'Search', 'db_table': "'searches'"}, + 'criteria': ('django.db.models.fields.related.ManyToManyField', [], {'blank': 'True', 'related_name': "'search'", 'null': 'True', 'symmetrical': 'False', 'to': "orm['telemeta.Criteria']"}), + 'date': ('telemeta.models.fields.DateTimeField', [], {'default': 'None', 'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}), + 'description': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'username': ('telemeta.models.fields.ForeignKey', [], {'related_name': "'searches'", 'db_column': "'username'", 'to': u"orm['auth.User']"}) + }, + 'telemeta.status': { + 'Meta': {'ordering': "['value']", 'object_name': 'Status', 'db_table': "'media_status'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.tapelength': { + 'Meta': {'ordering': "['value']", 'object_name': 'TapeLength', 'db_table': "'tape_length'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.tapespeed': { + 'Meta': {'ordering': "['value']", 'object_name': 'TapeSpeed', 'db_table': "'tape_speed'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.tapevendor': { + 'Meta': {'ordering': "['value']", 'object_name': 'TapeVendor', 'db_table': "'tape_vendor'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.tapewheeldiameter': { + 'Meta': {'ordering': "['value']", 'object_name': 'TapeWheelDiameter', 'db_table': "'tape_wheel_diameter'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.tapewidth': { + 'Meta': {'ordering': "['value']", 'object_name': 'TapeWidth', 'db_table': "'tape_width'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.topic': { + 'Meta': {'ordering': "['value']", 'object_name': 'Topic', 'db_table': "'topic'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + }, + 'telemeta.userprofile': { + 'Meta': {'object_name': 'UserProfile', 'db_table': "'profiles'"}, + 'address': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'attachment': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'department': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'expiration_date': ('telemeta.models.fields.DateField', [], {'default': 'None', 'null': 'True', 'blank': 'True'}), + 'function': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'institution': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'telephone': ('telemeta.models.fields.CharField', [], {'default': "''", 'max_length': '250', 'blank': 'True'}), + 'user': ('telemeta.models.fields.ForeignKey', [], {'to': u"orm['auth.User']", 'unique': 'True'}) + }, + 'telemeta.vernacularstyle': { + 'Meta': {'ordering': "['value']", 'object_name': 'VernacularStyle', 'db_table': "'vernacular_styles'"}, + u'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), + 'notes': ('telemeta.models.fields.TextField', [], {'default': "''", 'blank': 'True'}), + 'value': ('telemeta.models.fields.CharField', [], {'unique': 'True', 'max_length': '250'}) + } + } + + complete_apps = ['telemeta'] \ No newline at end of file diff --git a/telemeta/models/enum.py b/telemeta/models/enum.py index 88a4d17e..8f197352 100644 --- a/telemeta/models/enum.py +++ b/telemeta/models/enum.py @@ -40,16 +40,19 @@ class MetaEnumeration(MetaCore): ordering = ['value'] -class EnumerationProperty(models.Model): +class EnumerationProperty(ModelCore): - enumeration_name = models.CharField(_('enumeration name')) + enumeration_name = models.CharField(_('enumeration name'), max_length=255) is_hidden = BooleanField(_('is hidden'), default=False) is_admin = BooleanField(_('is admin'), default=True) - class Meta: + class Meta(MetaCore): verbose_name = _("enumeration property") verbose_name_plural = _("enumeration properties") + def __unicode__(self): + return self.enumeration_name + class PhysicalFormat(Enumeration): "Collection physical format" diff --git a/telemeta/pages b/telemeta/pages index 47aec4d0..c2a0f196 160000 --- a/telemeta/pages +++ b/telemeta/pages @@ -1 +1 @@ -Subproject commit 47aec4d02719d4df3eef2fc0aa58a0a3ede2972e +Subproject commit c2a0f19625f44ab2c3050b7784382ac7eb6939b0 diff --git a/telemeta/templates/telemeta/inc/nav.html b/telemeta/templates/telemeta/inc/nav.html index 096414a6..1670dc28 100644 --- a/telemeta/templates/telemeta/inc/nav.html +++ b/telemeta/templates/telemeta/inc/nav.html @@ -26,27 +26,25 @@
  • {% trans "Advanced search" %}
  • - {% if user.is_authenticated and user.is_staff %} -
  • {% trans "Terminology" %} - {% if perms.telemeta.change_physicalformat %} - - {% else %} - - {% endif %} -
  • - {% endif %} +
  • {% trans "Terminology" %} + {% if user.is_authenticated and user.is_staff %} + + {% else %} + + {% endif %} +
  • {% if user.is_authenticated and user.is_staff %}
  • {% trans "Admin" %} diff --git a/telemeta/views/admin.py b/telemeta/views/admin.py index dc2a5908..66c625ab 100644 --- a/telemeta/views/admin.py +++ b/telemeta/views/admin.py @@ -52,10 +52,11 @@ class AdminView(object): enumerations = [] for model in models: if issubclass(model, Enumeration): - if not model.is_hidden : + enumeration_property = EnumerationProperty.objects.get(enumeration_name=model._meta.module_name) + if not enumeration_property.is_hidden : enumerations.append({"name": model._meta.verbose_name, "id": model._meta.module_name, - "admin": model.is_admin}) + "admin": enumeration_property.is_admin}) cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name']) enumerations.sort(cmp) @@ -99,7 +100,6 @@ class AdminView(object): else: vars["enumeration_support"] = "Collection" vars["enumeration_count"] = self.__getCountColl(vars["enumeration_values"],atr) - return render(request, 'telemeta/enumeration_edit.html', vars) def __getCountColl(self, values, atr): @@ -164,11 +164,12 @@ class AdminView(object): models = get_models(telemeta.models) for model in models: if issubclass(model, Enumeration): + enumeration_property = EnumerationProperty.objects.get(enumeration_name=model._meta.module_name) if model._meta.module_name in request.POST.getlist('sel'): - model.is_admin = True - else : - model.is_admin = False - model.save() + enumeration_property.is_hidden = True + else: + enumeration_property.is_hidden = False + enumeration_property.save() return self.admin_enumerations(request) @method_decorator(permission_required('telemeta.change_physicalformat')) diff --git a/telemeta/views/enum.py b/telemeta/views/enum.py index 29f532d1..1a8583ee 100644 --- a/telemeta/views/enum.py +++ b/telemeta/views/enum.py @@ -1,6 +1,7 @@ from telemeta.views.core import * import telemeta.models + class EnumView(object): enu = [] @@ -44,10 +45,8 @@ class EnumView(object): def set_enum_file(self, request): - from django.db.models import get_models models = get_models(telemeta.models) - f = open("enumeration/enumeration.txt","r") s = f.read() tab = s.split('\n') @@ -60,23 +59,20 @@ class EnumView(object): if model._meta.module_name == enu["nom"]: model.admin = enu["admin"] - - def __get_enumerations_list(self): from django.db.models import get_models models = get_models(telemeta.models) - enumerations = [] for model in models: if issubclass(model, Enumeration): - if not model.is_hidden and model.is_admin == False: + enumeration_property = EnumerationProperty.objects.get(enumeration_name=model._meta.module_name) + if not enumeration_property.is_hidden and not enumeration_property.is_admin: enumerations.append({"name": model._meta.verbose_name, "id": model._meta.module_name }) cmp = lambda obj1, obj2: unaccent_icmp(obj1['name'], obj2['name']) enumerations.sort(cmp) - return enumerations def __get_enumeration(self, id): @@ -88,7 +84,6 @@ class EnumView(object): if model._meta.module_name != id: return None - return model def __getCountColl(self, values, atr): @@ -99,7 +94,6 @@ class EnumView(object): c.reverse() return c - def __getCountItem(self, enumeration, values): c = [] atr = "" @@ -113,7 +107,6 @@ class EnumView(object): c.reverse() return c - def __getCountKeyWord(self, values): c = [] atr = "keyword_id" diff --git a/telemeta/views/item.py b/telemeta/views/item.py index 76e983aa..fccc2d88 100644 --- a/telemeta/views/item.py +++ b/telemeta/views/item.py @@ -48,14 +48,14 @@ class ItemBaseMixin(TelemetaBaseMixin): public_graphers = ['waveform_centroid' ,'waveform_simple', 'spectrogram', 'spectrogram_log'] - + def get_graphers(self): graphers = [] user = self.request.user graphers_access = (user.is_staff or user.is_superuser or user.has_perm('can_run_analysis')) - + for grapher in self.graphers: if (not graphers_access and grapher.id() not in self.public_graphers): @@ -1048,6 +1048,7 @@ class ItemVideoPlayerView(ItemDetailView): template_name = 'telemeta/mediaitem_video_player.html' + class ItemEnumListView(ItemListView): template_name = 'telemeta/media_item_enum_list.html' -- 2.39.5