# HG changeset patch # User durandn # Date 1429872975 -7200 # Node ID b52d0f2347ab821e7f57ba4b78a393a0e19f649c # Parent bdf0b7f45431371c83f8b60ef8ca479223bda67f Upgrade to Django 1.7: migration (2) + data migration ldt.user for group permission is_owner_group diff -r bdf0b7f45431 -r b52d0f2347ab src/ldt/ldt/ldt_utils/migrations/0001_initial.py --- a/src/ldt/ldt/ldt_utils/migrations/0001_initial.py Thu Apr 23 12:12:33 2015 +0200 +++ b/src/ldt/ldt/ldt_utils/migrations/0001_initial.py Fri Apr 24 12:56:15 2015 +0200 @@ -1,261 +1,139 @@ -#@PydevCodeAnalysisIgnore -# encoding: utf-8 -import datetime -from south.db import db -from south.v2 import SchemaMigration -from django.db import models -import uuid - -class Migration(SchemaMigration): - - depends_on = ( - ("core", "0001_initial"), - ) - - def forwards(self, orm): - - # Adding model 'Author' - db.create_table('ldt_utils_author', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('handle', self.gf('django.db.models.fields.CharField')(max_length=255, unique=True, null=True, blank=True)), #this does not match modeldefinition because of mysql limitations - ('email', self.gf('django.db.models.fields.EmailField')(max_length=75, null=True, blank=True)), - ('firstname', self.gf('django.db.models.fields.CharField')(max_length=512, null=True, blank=True)), - ('lastname', self.gf('django.db.models.fields.CharField')(max_length=512, null=True, blank=True)), - )) - db.send_create_signal('ldt_utils', ['Author']) - - # Adding model 'Media' - db.create_table('ldt_utils_media', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('external_id', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('external_permalink', self.gf('django.db.models.fields.URLField')(max_length=1024, null=True, blank=True)), - ('external_publication_url', self.gf('django.db.models.fields.URLField')(max_length=1024, null=True, blank=True)), - ('external_src_url', self.gf('django.db.models.fields.URLField')(max_length=1024, null=True, blank=True)), - ('creation_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('media_creation_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - ('update_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('videopath', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('duration', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), - ('creator', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['auth.User'], null=True, blank=True)), - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - ('title', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('src', self.gf('django.db.models.fields.CharField')(max_length=1024)), - )) - db.send_create_signal('ldt_utils', ['Media']) +# -*- coding: utf-8 -*- +from __future__ import unicode_literals - # Adding model 'Content' - db.create_table('ldt_utils_content', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('iri_id', self.gf('django.db.models.fields.CharField')(default=lambda: unicode(uuid.uuid1()), unique=True, max_length=255)), #this does not match modeldefinition because of mysql limitations - ('iriurl', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('creation_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('update_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('title', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - ('duration', self.gf('django.db.models.fields.IntegerField')(null=True, blank=True)), - ('content_creation_date', self.gf('django.db.models.fields.DateTimeField')(null=True, blank=True)), - ('tags', self.gf('tagging.fields.TagField')(max_length=2048, null=True)), - ('media_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ldt_utils.Media'], null=True, blank=True)), - )) - db.send_create_signal('ldt_utils', ['Content']) - - # Adding M2M table for field authors on 'Content' - db.create_table('ldt_utils_content_authors', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('content', models.ForeignKey(orm['ldt_utils.content'], null=False)), - ('author', models.ForeignKey(orm['ldt_utils.author'], null=False)) - )) - db.create_unique('ldt_utils_content_authors', ['content_id', 'author_id']) - - # Adding model 'Project' - db.create_table('ldt_utils_project', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('owner', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['core.Owner'], null=True, blank=True)), - ('ldt_id', self.gf('django.db.models.fields.CharField')(unique=True, max_length=255)), #this does not match modeldefinition because of mysql limitations - ('ldt', self.gf('django.db.models.fields.TextField')(null=True)), - ('title', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('creation_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('modification_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - ('created_by', self.gf('django.db.models.fields.CharField')(max_length=70)), - ('changed_by', self.gf('django.db.models.fields.CharField')(max_length=70)), - ('state', self.gf('django.db.models.fields.IntegerField')(default=1)), - )) - db.send_create_signal('ldt_utils', ['Project']) - - # Adding M2M table for field contents on 'Project' - db.create_table('ldt_utils_project_contents', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('project', models.ForeignKey(orm['ldt_utils.project'], null=False)), - ('content', models.ForeignKey(orm['ldt_utils.content'], null=False)) - )) - db.create_unique('ldt_utils_project_contents', ['project_id', 'content_id']) - - # Adding model 'Segment' - db.create_table('ldt_utils_segment', ( - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('project_obj', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ldt_utils.Project'], null=True)), - ('content', self.gf('django.db.models.fields.related.ForeignKey')(to=orm['ldt_utils.Content'])), - ('project_id', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('iri_id', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('ensemble_id', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('cutting_id', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('element_id', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('tags', self.gf('tagging.fields.TagField')(max_length=2048, null=True)), - ('title', self.gf('django.db.models.fields.CharField')(max_length=2048, null=True, blank=True)), - ('duration', self.gf('django.db.models.fields.IntegerField')(null=True)), - ('start_ts', self.gf('django.db.models.fields.IntegerField')(null=True)), - ('author', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('date', self.gf('django.db.models.fields.CharField')(max_length=128, null=True, blank=True)), - ('abstract', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('ldt_utils', ['Segment']) - - # Adding unique constraint on 'Segment', fields ['project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'] - #db.create_unique('ldt_utils_segment', ['project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id']) +from django.db import models, migrations +import sorl.thumbnail.fields +import datetime +import ldt.ldt_utils.utils +import taggit.managers - def backwards(self, orm): - - # Removing unique constraint on 'Segment', fields ['project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'] - #db.delete_unique('ldt_utils_segment', ['project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id']) - - # Deleting model 'Author' - db.delete_table('ldt_utils_author') - - # Deleting model 'Media' - db.delete_table('ldt_utils_media') +class Migration(migrations.Migration): - # Deleting model 'Content' - db.delete_table('ldt_utils_content') - - # Removing M2M table for field authors on 'Content' - db.delete_table('ldt_utils_content_authors') - - # Deleting model 'Project' - db.delete_table('ldt_utils_project') - - # Removing M2M table for field contents on 'Project' - db.delete_table('ldt_utils_project_contents') - - # Deleting model 'Segment' - db.delete_table('ldt_utils_segment') - + dependencies = [ + ('taggit', '0001_initial'), + ] - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - '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': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - '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', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - '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', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - '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'}), - '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'}) - }, - 'core.owner': { - 'Meta': {'object_name': 'Owner'}, - 'group': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.Group']", 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'user': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}) - }, - 'ldt_utils.author': { - 'Meta': {'object_name': 'Author'}, - 'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'null': 'True', 'blank': 'True'}), - 'firstname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}), - 'handle': ('django.db.models.fields.CharField', [], {'max_length': '512', 'unique': 'True', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'lastname': ('django.db.models.fields.CharField', [], {'max_length': '512', 'null': 'True', 'blank': 'True'}) - }, - 'ldt_utils.content': { - 'Meta': {'ordering': "['title']", 'object_name': 'Content'}, - 'authors': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Author']", 'symmetrical': 'False', 'blank': 'True'}), - 'content_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'iri_id': ('django.db.models.fields.CharField', [], {'default': "u'54150594-c974-11e0-a397-58b035f6b93d'", 'unique': 'True', 'max_length': '1024'}), - 'iriurl': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'media_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Media']", 'null': 'True', 'blank': 'True'}), - 'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}) - }, - 'ldt_utils.media': { - 'Meta': {'object_name': 'Media'}, - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'creator': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['auth.User']", 'null': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}), - 'external_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'external_permalink': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'external_publication_url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'external_src_url': ('django.db.models.fields.URLField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'media_creation_date': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}), - 'src': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'videopath': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}) - }, - 'ldt_utils.project': { - 'Meta': {'ordering': "['title']", 'object_name': 'Project'}, - 'changed_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), - 'contents': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['ldt_utils.Content']", 'symmetrical': 'False'}), - 'created_by': ('django.db.models.fields.CharField', [], {'max_length': '70'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'ldt': ('django.db.models.fields.TextField', [], {'null': 'True'}), - 'ldt_id': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '1024'}), - 'modification_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'owner': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['core.Owner']", 'null': 'True', 'blank': 'True'}), - 'state': ('django.db.models.fields.IntegerField', [], {'default': '1'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) - }, - 'ldt_utils.segment': { - 'Meta': {'unique_together': "(('project_id', 'iri_id', 'ensemble_id', 'cutting_id', 'element_id'),)", 'object_name': 'Segment'}, - 'abstract': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'author': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'content': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Content']"}), - 'cutting_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'date': ('django.db.models.fields.CharField', [], {'max_length': '128', 'null': 'True', 'blank': 'True'}), - 'duration': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), - 'element_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'ensemble_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'iri_id': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'project_id': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'project_obj': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['ldt_utils.Project']", 'null': 'True'}), - 'start_ts': ('django.db.models.fields.IntegerField', [], {'null': 'True'}), - 'tags': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '2048', 'null': 'True', 'blank': 'True'}) - } - } - - complete_apps = ['ldt_utils'] + operations = [ + migrations.CreateModel( + name='Author', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('handle', models.CharField(max_length=255, unique=True, null=True, blank=True)), + ('email', models.EmailField(max_length=75, null=True, blank=True)), + ('firstname', models.CharField(max_length=512, null=True, blank=True)), + ('lastname', models.CharField(max_length=512, null=True, blank=True)), + ], + options={ + 'permissions': (('view_author', 'Can view author'),), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Content', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('iri_id', models.CharField(default=ldt.ldt_utils.utils.generate_uuid, unique=True, max_length=255, verbose_name='iri id')), + ('iriurl', models.CharField(max_length=1024, verbose_name='iri url')), + ('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='content creation date')), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='content update date')), + ('title', models.CharField(max_length=1024, null=True, verbose_name='title', blank=True)), + ('description', models.TextField(null=True, verbose_name='description', blank=True)), + ('duration', models.IntegerField(null=True, verbose_name='duration (ms)', blank=True)), + ('content_creation_date', models.DateTimeField(null=True, verbose_name='content creation date', blank=True)), + ('image', sorl.thumbnail.fields.ImageField(default=b'thumbnails/contents/content_default_icon.png', max_length=200, upload_to=b'thumbnails/contents/')), + ], + options={ + 'ordering': ['title'], + 'permissions': (('view_content', 'Can view content'),), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='ContentStat', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('annotation_volume_str', models.CommaSeparatedIntegerField(max_length=1024, null=True, verbose_name='annotation volume', blank=True)), + ('polemics_volume_str', models.CommaSeparatedIntegerField(max_length=1024, null=True, verbose_name='Annotation volume', blank=True)), + ('nb_annotations', models.IntegerField(default=0, verbose_name='annotation number', db_index=True)), + ('last_annotated', models.DateTimeField(default=datetime.datetime.now, null=True, verbose_name='last annotated', blank=True)), + ], + options={ + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Media', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('external_id', models.CharField(max_length=1024, null=True, verbose_name='external id', blank=True)), + ('external_permalink', models.URLField(max_length=1024, null=True, verbose_name='media permalink', blank=True)), + ('external_publication_url', models.URLField(max_length=1024, null=True, verbose_name='media publication url', blank=True)), + ('external_src_url', models.CharField(max_length=1024, null=True, verbose_name='media external source url', blank=True)), + ('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='media object creation date')), + ('media_creation_date', models.DateTimeField(null=True, verbose_name='media creation date', blank=True)), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='update date')), + ('videopath', models.CharField(max_length=1024, null=True, verbose_name='videopath', blank=True)), + ('duration', models.IntegerField(null=True, verbose_name='duration (ms)', blank=True)), + ('description', models.TextField(null=True, verbose_name='description', blank=True)), + ('title', models.CharField(max_length=1024, null=True, verbose_name='title', blank=True)), + ('src', models.CharField(max_length=1024, verbose_name='media source')), + ('src_hash', models.CharField(unique=True, max_length=128, verbose_name='source hash', blank=True)), + ('mimetype_field', models.CharField(max_length=512, null=True, verbose_name='mimetype', blank=True)), + ], + options={ + 'permissions': (('view_media', 'Can view media'),), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Project', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('ldt_id', models.CharField(unique=True, max_length=255)), + ('ldt', models.TextField(null=True)), + ('title', models.CharField(max_length=1024)), + ('creation_date', models.DateTimeField(auto_now_add=True)), + ('modification_date', models.DateTimeField(auto_now=True)), + ('created_by', models.CharField(max_length=70, verbose_name='created by')), + ('changed_by', models.CharField(max_length=70, verbose_name='changed by')), + ('state', models.IntegerField(default=1, choices=[(1, b'edition'), (2, b'published'), (3, b'moderated'), (4, b'rejected'), (5, b'deleted')])), + ('description', models.TextField(null=True, blank=True)), + ('image', sorl.thumbnail.fields.ImageField(default=b'thumbnails/projects/project_default_icon.png', max_length=200, upload_to=b'thumbnails/projects/')), + ('contents', models.ManyToManyField(to='ldt_utils.Content')), + ], + options={ + 'ordering': ['title'], + 'permissions': (('view_project', 'Can view project'),), + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='Segment', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('project_id', models.CharField(db_index=True, max_length=255, null=True, blank=True)), + ('iri_id', models.CharField(max_length=255, db_index=True)), + ('ensemble_id', models.CharField(max_length=512, db_index=True)), + ('cutting_id', models.CharField(max_length=512, db_index=True)), + ('element_id', models.CharField(max_length=512, db_index=True)), + ('title', models.CharField(max_length=2048, null=True, blank=True)), + ('duration', models.IntegerField(null=True)), + ('start_ts', models.IntegerField(null=True)), + ('author', models.CharField(max_length=1024, null=True, blank=True)), + ('date', models.CharField(max_length=128, null=True, blank=True)), + ('abstract', models.TextField(null=True, blank=True)), + ('polemics', models.IntegerField(default=0, null=True, blank=True)), + ('id_hash', models.CharField(unique=True, max_length=128, blank=True)), + ('audio_src', models.CharField(max_length=255, null=True, blank=True)), + ('audio_href', models.CharField(max_length=512, null=True, blank=True)), + ('content', models.ForeignKey(to='ldt_utils.Content')), + ('project_obj', models.ForeignKey(to='ldt_utils.Project', null=True)), + ('tags', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', help_text='A comma-separated list of tags.', verbose_name='Tags')), + ], + options={ + 'permissions': (('view_segment', 'Can view segment'),), + }, + bases=(models.Model,), + ), + ] diff -r bdf0b7f45431 -r b52d0f2347ab src/ldt/ldt/ldt_utils/migrations/0002_auto_20150423_0935.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/ldt_utils/migrations/0002_auto_20150423_0935.py Fri Apr 24 12:56:15 2015 +0200 @@ -0,0 +1,60 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.conf import settings +import taggit.managers + + +class Migration(migrations.Migration): + + dependencies = [ + ('taggit', '0001_initial'), + migrations.swappable_dependency(settings.AUTH_USER_MODEL), + ('ldt_utils', '0001_initial'), + ] + + operations = [ + migrations.AddField( + model_name='project', + name='owner', + field=models.ForeignKey(blank=True, to=settings.AUTH_USER_MODEL, null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='media', + name='creator', + field=models.ForeignKey(verbose_name='media creator', blank=True, to=settings.AUTH_USER_MODEL, null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='contentstat', + name='content', + field=models.OneToOneField(related_name='stat_annotation', verbose_name='annotation statistics', to='ldt_utils.Content'), + preserve_default=True, + ), + migrations.AddField( + model_name='content', + name='authors', + field=models.ManyToManyField(to='ldt_utils.Author', verbose_name='authors', blank=True), + preserve_default=True, + ), + migrations.AddField( + model_name='content', + name='front_project', + field=models.ForeignKey(blank=True, to='ldt_utils.Project', null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='content', + name='media_obj', + field=models.ForeignKey(blank=True, to='ldt_utils.Media', null=True), + preserve_default=True, + ), + migrations.AddField( + model_name='content', + name='tags', + field=taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', help_text='A comma-separated list of tags.', verbose_name='Tags'), + preserve_default=True, + ), + ] diff -r bdf0b7f45431 -r b52d0f2347ab src/ldt/ldt/text/migrations/0001_initial.py --- a/src/ldt/ldt/text/migrations/0001_initial.py Thu Apr 23 12:12:33 2015 +0200 +++ b/src/ldt/ldt/text/migrations/0001_initial.py Fri Apr 24 12:56:15 2015 +0200 @@ -1,51 +1,36 @@ -# encoding: utf-8 -from south.db import db -from south.v2 import SchemaMigration - -class Migration(SchemaMigration): +# -*- coding: utf-8 -*- +from __future__ import unicode_literals - def forwards(self, orm): - - # Adding model 'Annotation' - db.create_table('text_annotation', ( # @UndefinedVariable - ('id', self.gf('django.db.models.fields.AutoField')(primary_key=True)), - ('external_id', self.gf('django.db.models.fields.CharField')(default=u'5393f930-c975-11e0-bf36-58b035f6b93d', unique=True, max_length=255)), - ('uri', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('tags_field', self.gf('tagging.fields.TagField')(max_length=2048, null=True)), - ('title', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - ('text', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - ('color', self.gf('django.db.models.fields.CharField')(max_length=1024)), - ('creator', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('contributor', self.gf('django.db.models.fields.CharField')(max_length=1024, null=True, blank=True)), - ('creation_date', self.gf('django.db.models.fields.DateTimeField')(auto_now_add=True, blank=True)), - ('update_date', self.gf('django.db.models.fields.DateTimeField')(auto_now=True, blank=True)), - )) - db.send_create_signal('text', ['Annotation']) # @UndefinedVariable +from django.db import models, migrations +import ldt.text.utils +import taggit.managers - def backwards(self, orm): - - # Deleting model 'Annotation' - db.delete_table('text_annotation') # @UndefinedVariable +class Migration(migrations.Migration): + dependencies = [ + ('taggit', '0001_initial'), + ] - models = { - 'text.annotation': { - 'Meta': {'object_name': 'Annotation'}, - 'color': ('django.db.models.fields.CharField', [], {'max_length': '1024'}), - 'contributor': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'creation_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}), - 'creator': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'external_id': ('django.db.models.fields.CharField', [], {'default': "u'53952d00-c975-11e0-b311-58b035f6b93d'", 'unique': 'True', 'max_length': '1024'}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'tags_field': ('tagging.fields.TagField', [], {'max_length': '2048', 'null': 'True'}), - 'text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'title': ('django.db.models.fields.CharField', [], {'max_length': '1024', 'null': 'True', 'blank': 'True'}), - 'update_date': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}), - 'uri': ('django.db.models.fields.CharField', [], {'max_length': '1024'}) - } - } - - complete_apps = ['text'] + operations = [ + migrations.CreateModel( + name='Annotation', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('external_id', models.CharField(default=ldt.text.utils.generate_uuid, unique=True, max_length=255, verbose_name='external id')), + ('uri', models.CharField(max_length=1024, verbose_name='annotation uri')), + ('title', models.CharField(max_length=1024, null=True, verbose_name='title', blank=True)), + ('description', models.TextField(null=True, verbose_name='description', blank=True)), + ('text', models.TextField(null=True, verbose_name='text', blank=True)), + ('color', models.CharField(max_length=1024, verbose_name='color')), + ('creator', models.CharField(max_length=1024, null=True, verbose_name='title', blank=True)), + ('contributor', models.CharField(max_length=1024, null=True, verbose_name='title', blank=True)), + ('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='creation date')), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='update date')), + ('tags_field', taggit.managers.TaggableManager(to='taggit.Tag', through='taggit.TaggedItem', help_text='A comma-separated list of tags.', verbose_name='Tags')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff -r bdf0b7f45431 -r b52d0f2347ab src/ldt/ldt/user/migrations/0001_initial.py --- a/src/ldt/ldt/user/migrations/0001_initial.py Thu Apr 23 12:12:33 2015 +0200 +++ b/src/ldt/ldt/user/migrations/0001_initial.py Fri Apr 24 12:56:15 2015 +0200 @@ -1,95 +1,55 @@ -#@PydevCodeAnalysisIgnore -# encoding: utf-8 -import 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 'IriGroup' - db.create_table('user_irigroup', ( - ('group_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.Group'], unique=True, primary_key=True)), - ('description', self.gf('django.db.models.fields.TextField')(null=True, blank=True)), - )) - db.send_create_signal('user', ['IriGroup']) +# -*- coding: utf-8 -*- +from __future__ import unicode_literals - # Adding model 'ldt' - db.create_table('user_ldt', ( - ('user_ptr', self.gf('django.db.models.fields.related.OneToOneField')(to=orm['auth.User'], unique=True, primary_key=True)), - )) - db.send_create_signal('user', ['ldt']) - - # Adding M2M table for field irigroups on 'ldt' - db.create_table('user_ldt_irigroups', ( - ('id', models.AutoField(verbose_name='ID', primary_key=True, auto_created=True)), - ('ldt', models.ForeignKey(orm['user.ldt'], null=False)), - ('irigroup', models.ForeignKey(orm['user.irigroup'], null=False)) - )) - db.create_unique('user_ldt_irigroups', ['ldt_id', 'irigroup_id']) - - - def backwards(self, orm): - - # Deleting model 'IriGroup' - db.delete_table('user_irigroup') - - # Deleting model 'ldt' - db.delete_table('user_ldt') - - # Removing M2M table for field irigroups on 'ldt' - db.delete_table('user_ldt_irigroups') +from django.db import models, migrations +import sorl.thumbnail.fields +import django.utils.timezone +import django.core.validators - models = { - 'auth.group': { - 'Meta': {'object_name': 'Group'}, - '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': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}) - }, - 'auth.permission': { - 'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'}, - 'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}), - 'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}), - 'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}), - 'name': ('django.db.models.fields.CharField', [], {'max_length': '50'}) - }, - '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', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}), - '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', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}), - 'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'}) - }, - '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'}), - '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'}) - }, - 'user.irigroup': { - 'Meta': {'object_name': 'IriGroup', '_ormbases': ['auth.Group']}, - 'description': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}), - 'group_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.Group']", 'unique': 'True', 'primary_key': 'True'}) - }, - 'user.ldt': { - 'Meta': {'object_name': 'ldt', '_ormbases': ['auth.User']}, - 'irigroups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['user.IriGroup']", 'symmetrical': 'False', 'blank': 'True'}), - 'user_ptr': ('django.db.models.fields.related.OneToOneField', [], {'to': "orm['auth.User']", 'unique': 'True', 'primary_key': 'True'}) - } - } +class Migration(migrations.Migration): + + dependencies = [ + ('auth', '0001_initial'), + ] - complete_apps = ['user'] + operations = [ + migrations.CreateModel( + name='LdtUser', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('password', models.CharField(max_length=128, verbose_name='password')), + ('last_login', models.DateTimeField(default=django.utils.timezone.now, verbose_name='last login')), + ('is_superuser', models.BooleanField(default=False, help_text='Designates that this user has all permissions without explicitly assigning them.', verbose_name='superuser status')), + ('username', models.CharField(help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', unique=True, max_length=30, verbose_name='username', validators=[django.core.validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid username.', 'invalid')])), + ('first_name', models.CharField(max_length=30, verbose_name='first name', blank=True)), + ('last_name', models.CharField(max_length=30, verbose_name='last name', blank=True)), + ('email', models.EmailField(max_length=75, verbose_name='email address', blank=True)), + ('is_staff', models.BooleanField(default=False, help_text='Designates whether the user can log into this admin site.', verbose_name='staff status')), + ('is_active', models.BooleanField(default=True, help_text='Designates whether this user should be treated as active. Unselect this instead of deleting accounts.', verbose_name='active')), + ('date_joined', models.DateTimeField(default=django.utils.timezone.now, verbose_name='date joined')), + ('language', models.CharField(default=b'fr', max_length=2)), + ('image', sorl.thumbnail.fields.ImageField(default=b'thumbnails/users/user_default_icon.png', max_length=200, upload_to=b'thumbnails/users/')), + ('groups', models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Group', blank=True, help_text='The groups this user belongs to. A user will get all permissions granted to each of his/her group.', verbose_name='groups')), + ('user_permissions', models.ManyToManyField(related_query_name='user', related_name='user_set', to='auth.Permission', blank=True, help_text='Specific permissions for this user.', verbose_name='user permissions')), + ], + options={ + 'abstract': False, + 'verbose_name': 'user', + 'verbose_name_plural': 'users', + }, + bases=(models.Model,), + ), + migrations.CreateModel( + name='GroupProfile', + fields=[ + ('id', models.AutoField(verbose_name='ID', serialize=False, auto_created=True, primary_key=True)), + ('description', models.TextField()), + ('image', sorl.thumbnail.fields.ImageField(default=b'thumbnails/groups/group_default_icon.png', max_length=200, upload_to=b'/Users/durandn/IRIProjects/platform_web/web/static/media/thumbnails/groups/')), + ('group', models.OneToOneField(related_name='profile', to='auth.Group')), + ], + options={ + }, + bases=(models.Model,), + ), + ] diff -r bdf0b7f45431 -r b52d0f2347ab src/ldt/ldt/user/migrations/0002_auto_20150424_1042.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/user/migrations/0002_auto_20150424_1042.py Fri Apr 24 12:56:15 2015 +0200 @@ -0,0 +1,26 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations +from django.contrib.contenttypes.models import ContentType +from django.contrib.auth.models import Permission + +class Migration(migrations.Migration): + + def add_permission_is_owner_group(apps, schema_editor): + content_type = ContentType.objects.get(app_label='auth', model='group') + Permission.objects.create( + codename='is_owner_group', + name='Can add/delete admins to the group', + content_type=content_type + ) + + + + dependencies = [ + ('user', '0001_initial'), + ] + + operations = [ + migrations.RunPython(add_permission_is_owner_group) + ]