Loading resources/management/commands/convertproperty.py 0 → 100644 +72 −0 Original line number Diff line number Diff line from django.core.management.base import BaseCommand from django.db import connection from resources.models import ( Project, Role, Permission, Collection, Resource, File, Metadata, MetadataSet, MetadataCollectionValue, MetadataResourceValue, Tag, ProjectAccess, ) from django.contrib.auth.models import User """ - Add field project to collection - Add field project to file - Add field project to metadata - Add field project to metadataset - Add field ptr_project to resource - Add field project to tag """ class Command(BaseCommand): def handle(self, *args, **options): for user in User.objects.all(): project, created = Project.objects.get_or_create( label="{} main project".format(user.username) ) admin_role, created = Role.objects.get_or_create( label="admin", project=project ) project_access, created = ProjectAccess.objects.get_or_create( project=project, role=admin_role, user=user ) with connection.cursor() as cursor: cursor.execute( "UPDATE resources_collection set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_file set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_metadata set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_metadataset set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_resource set ptr_project_id = {} where ptr_owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_tag set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) resources/migrations/0014_auto_20210915_2024.py 0 → 100644 +101 −0 Original line number Diff line number Diff line # Generated by Django 3.2.2 on 2021-09-15 20:24 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('resources', '0013_collection_is_oai_record'), ] operations = [ migrations.CreateModel( name='Permission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField(unique=True)), ], ), migrations.CreateModel( name='Project', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField()), ('description', models.TextField()), ], ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField()), ('permissions', models.ManyToManyField(to='resources.Permission')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.project')), ], options={ 'unique_together': {('label', 'project')}, }, ), migrations.AddField( model_name='collection', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='file', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='metadata', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='metadataset', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='resource', name='ptr_project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='tag', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AlterUniqueTogether( name='file', unique_together={('owner', 'hash'), ('project', 'hash')}, ), migrations.AlterUniqueTogether( name='metadata', unique_together={('title', 'set', 'owner'), ('title', 'set', 'project')}, ), migrations.AlterUniqueTogether( name='metadataset', unique_together={('title', 'project'), ('title', 'owner')}, ), migrations.AlterUniqueTogether( name='tag', unique_together={('uid', 'project'), ('uid', 'owner')}, ), migrations.CreateModel( name='ProjectAccess', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.project')), ('role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.role')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'unique_together': {('project', 'user', 'role')}, }, ), ] Loading
resources/management/commands/convertproperty.py 0 → 100644 +72 −0 Original line number Diff line number Diff line from django.core.management.base import BaseCommand from django.db import connection from resources.models import ( Project, Role, Permission, Collection, Resource, File, Metadata, MetadataSet, MetadataCollectionValue, MetadataResourceValue, Tag, ProjectAccess, ) from django.contrib.auth.models import User """ - Add field project to collection - Add field project to file - Add field project to metadata - Add field project to metadataset - Add field ptr_project to resource - Add field project to tag """ class Command(BaseCommand): def handle(self, *args, **options): for user in User.objects.all(): project, created = Project.objects.get_or_create( label="{} main project".format(user.username) ) admin_role, created = Role.objects.get_or_create( label="admin", project=project ) project_access, created = ProjectAccess.objects.get_or_create( project=project, role=admin_role, user=user ) with connection.cursor() as cursor: cursor.execute( "UPDATE resources_collection set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_file set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_metadata set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_metadataset set project_id = {} where owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_resource set ptr_project_id = {} where ptr_owner_id = {}".format( project.pk, user.pk ) ) cursor.execute( "UPDATE resources_tag set project_id = {} where owner_id = {}".format( project.pk, user.pk ) )
resources/migrations/0014_auto_20210915_2024.py 0 → 100644 +101 −0 Original line number Diff line number Diff line # Generated by Django 3.2.2 on 2021-09-15 20:24 from django.conf import settings from django.db import migrations, models import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('resources', '0013_collection_is_oai_record'), ] operations = [ migrations.CreateModel( name='Permission', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField(unique=True)), ], ), migrations.CreateModel( name='Project', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField()), ('description', models.TextField()), ], ), migrations.CreateModel( name='Role', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('label', models.TextField()), ('permissions', models.ManyToManyField(to='resources.Permission')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.project')), ], options={ 'unique_together': {('label', 'project')}, }, ), migrations.AddField( model_name='collection', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='file', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='metadata', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='metadataset', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='resource', name='ptr_project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AddField( model_name='tag', name='project', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.project'), ), migrations.AlterUniqueTogether( name='file', unique_together={('owner', 'hash'), ('project', 'hash')}, ), migrations.AlterUniqueTogether( name='metadata', unique_together={('title', 'set', 'owner'), ('title', 'set', 'project')}, ), migrations.AlterUniqueTogether( name='metadataset', unique_together={('title', 'project'), ('title', 'owner')}, ), migrations.AlterUniqueTogether( name='tag', unique_together={('uid', 'project'), ('uid', 'owner')}, ), migrations.CreateModel( name='ProjectAccess', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.project')), ('role', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='resources.role')), ('user', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL)), ], options={ 'unique_together': {('project', 'user', 'role')}, }, ), ]