# HG changeset patch # User durandn # Date 1430393393 -7200 # Node ID 1d9fc32ec8abb7ff62bff963a7cadc66406197cc # Parent 1b5550516ceb20ac6ecd966aee96006bb5ae363c Django 1.8 upgrade: migrations diff -r 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/ldt_utils/migrations/0001_initial.py --- a/src/ldt/ldt/ldt_utils/migrations/0001_initial.py Tue Apr 28 15:43:41 2015 +0200 +++ b/src/ldt/ldt/ldt_utils/migrations/0001_initial.py Thu Apr 30 13:29:53 2015 +0200 @@ -20,71 +20,65 @@ 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)), + ('email', models.EmailField(max_length=254, 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)), + ('iri_id', models.CharField(default=ldt.ldt_utils.utils.generate_uuid, unique=True, max_length=255, verbose_name='content.iri_id')), + ('iriurl', models.CharField(max_length=1024, verbose_name='content.iriurl')), + ('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='content.title', blank=True)), + ('description', models.TextField(null=True, verbose_name='content.description', blank=True)), + ('duration', models.IntegerField(null=True, verbose_name='content.duration', blank=True)), + ('content_creation_date', models.DateTimeField(null=True, verbose_name='content.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)), + ('annotation_volume_str', models.CommaSeparatedIntegerField(max_length=1024, null=True, verbose_name='content_stat.annotations_volume', blank=True)), + ('polemics_volume_str', models.CommaSeparatedIntegerField(max_length=1024, null=True, verbose_name='content_stat.polemics_volume', blank=True)), + ('nb_annotations', models.IntegerField(default=0, verbose_name='content.nb_annotation', db_index=True)), + ('last_annotated', models.DateTimeField(default=datetime.datetime.now, null=True, verbose_name='content.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)), + ('external_id', models.CharField(max_length=1024, null=True, verbose_name='media.external_id', blank=True)), + ('external_permalink', models.URLField(max_length=1024, null=True, verbose_name='media.external_permalink', blank=True)), + ('external_publication_url', models.URLField(max_length=1024, null=True, verbose_name='media.external_publication_url', blank=True)), + ('external_src_url', models.CharField(max_length=1024, null=True, verbose_name='media.external_src_url', blank=True)), + ('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='media.creation_date')), + ('media_creation_date', models.DateTimeField(null=True, verbose_name='media.media_creation_date', blank=True)), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='media.update_date')), + ('videopath', models.CharField(max_length=1024, null=True, verbose_name='media.videopath', blank=True)), + ('duration', models.IntegerField(null=True, verbose_name='media.duration', 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)), + ('src', models.CharField(max_length=1024, verbose_name='media.src')), + ('src_hash', models.CharField(unique=True, max_length=128, verbose_name='media.src_hash', blank=True)), + ('mimetype_field', models.CharField(max_length=512, null=True, verbose_name='media.mimetype', blank=True)), ], options={ 'permissions': (('view_media', 'Can view media'),), }, - bases=(models.Model,), ), migrations.CreateModel( name='Project', @@ -106,7 +100,6 @@ 'ordering': ['title'], 'permissions': (('view_project', 'Can view project'),), }, - bases=(models.Model,), ), migrations.CreateModel( name='Segment', @@ -134,6 +127,5 @@ options={ 'permissions': (('view_segment', 'Can view segment'),), }, - bases=(models.Model,), ), ] diff -r 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/ldt_utils/migrations/0002_auto_20150423_0935.py --- a/src/ldt/ldt/ldt_utils/migrations/0002_auto_20150423_0935.py Tue Apr 28 15:43:41 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,60 +0,0 @@ -# -*- 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 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/ldt_utils/migrations/0002_auto_20150430_0951.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/ldt_utils/migrations/0002_auto_20150430_0951.py Thu Apr 30 13:29:53 2015 +0200 @@ -0,0 +1,53 @@ +# -*- 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), + ), + migrations.AddField( + model_name='media', + name='creator', + field=models.ForeignKey(verbose_name='media.creator', blank=True, to=settings.AUTH_USER_MODEL, null=True), + ), + migrations.AddField( + model_name='contentstat', + name='content', + field=models.OneToOneField(related_name='stat_annotation', verbose_name='content_stat.content', to='ldt_utils.Content'), + ), + migrations.AddField( + model_name='content', + name='authors', + field=models.ManyToManyField(to='ldt_utils.Author', verbose_name='content.authors', blank=True), + ), + migrations.AddField( + model_name='content', + name='front_project', + field=models.ForeignKey(blank=True, to='ldt_utils.Project', null=True), + ), + migrations.AddField( + model_name='content', + name='media_obj', + field=models.ForeignKey(blank=True, to='ldt_utils.Media', null=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'), + ), + ] diff -r 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/ldt_utils/migrations/0003_adding_is_owner_group_permission.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/src/ldt/ldt/ldt_utils/migrations/0003_adding_is_owner_group_permission.py Thu Apr 30 13:29:53 2015 +0200 @@ -0,0 +1,33 @@ +# -*- coding: utf-8 -*- +from __future__ import unicode_literals + +from django.db import models, migrations + +class Migration(migrations.Migration): + + def add_permission_is_owner_group(apps, schema_editor): + from django.contrib.contenttypes.management import update_contenttypes + for app_config in apps.get_app_configs(): + app_config.models_module=True + update_contenttypes(app_config) + app_config.models_module=None + + Permission = apps.get_model("auth", "Permission") + ContentType = apps.get_model("contenttypes", "ContentType") + 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 = [ + ('contenttypes', '0001_initial'), + ('auth', '0006_require_contenttypes_0002'), + ('ldt_utils', '0002_auto_20150430_0951'), + ] + + operations = [ + migrations.RunPython(add_permission_is_owner_group) + ] \ No newline at end of file diff -r 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/text/migrations/0001_initial.py --- a/src/ldt/ldt/text/migrations/0001_initial.py Tue Apr 28 15:43:41 2015 +0200 +++ b/src/ldt/ldt/text/migrations/0001_initial.py Thu Apr 30 13:29:53 2015 +0200 @@ -17,20 +17,17 @@ 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')), + ('external_id', models.CharField(default=ldt.text.utils.generate_uuid, unique=True, max_length=255, verbose_name='annotation.external_id')), + ('uri', models.CharField(max_length=1024, verbose_name='annotation.uri')), + ('title', models.CharField(max_length=1024, null=True, verbose_name='annotation.title', blank=True)), + ('description', models.TextField(null=True, verbose_name='annotation.description', blank=True)), + ('text', models.TextField(null=True, verbose_name='annotation.text', blank=True)), + ('color', models.CharField(max_length=1024, verbose_name='annotation.color')), + ('creator', models.CharField(max_length=1024, null=True, verbose_name='creator.title', blank=True)), + ('contributor', models.CharField(max_length=1024, null=True, verbose_name='contributor.title', blank=True)), + ('creation_date', models.DateTimeField(auto_now_add=True, verbose_name='annotation.creation_date')), + ('update_date', models.DateTimeField(auto_now=True, verbose_name='annotation.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 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/user/migrations/0001_initial.py --- a/src/ldt/ldt/user/migrations/0001_initial.py Tue Apr 28 15:43:41 2015 +0200 +++ b/src/ldt/ldt/user/migrations/0001_initial.py Thu Apr 30 13:29:53 2015 +0200 @@ -10,7 +10,7 @@ class Migration(migrations.Migration): dependencies = [ - ('auth', '0001_initial'), + ('auth', '0006_require_contenttypes_0002'), ] operations = [ @@ -19,18 +19,18 @@ 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')), + ('last_login', models.DateTimeField(null=True, verbose_name='last login', blank=True)), ('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')])), + ('username', models.CharField(error_messages={'unique': 'A user with that username already exists.'}, max_length=30, validators=[django.core.validators.RegexValidator('^[\\w.@+-]+$', 'Enter a valid username. This value may contain only letters, numbers and @/./+/-/_ characters.', 'invalid')], help_text='Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.', unique=True, verbose_name='username')), ('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)), + ('email', models.EmailField(max_length=254, 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')), + ('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 their groups.', 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={ @@ -38,7 +38,6 @@ 'verbose_name': 'user', 'verbose_name_plural': 'users', }, - bases=(models.Model,), ), migrations.CreateModel( name='GroupProfile', @@ -48,8 +47,5 @@ ('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 1b5550516ceb -r 1d9fc32ec8ab src/ldt/ldt/user/migrations/0002_auto_20150424_1042.py --- a/src/ldt/ldt/user/migrations/0002_auto_20150424_1042.py Tue Apr 28 15:43:41 2015 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,26 +0,0 @@ -# -*- 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) - ]