Loading resources/management/commands/loadfixtures.py +78 −70 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ from resources.models import ( MetadataType, ResourceClass, Collection, fetch_public_project, Permission, ) import json import csv Loading @@ -24,56 +26,58 @@ IIIF_SUPPORT = [ ] class Command(BaseCommand): # mimes database from https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json def handle(self, *args, **options): def set_base_permissions(): obj_types = ["collection", "resource", "metadata", "metadataset", "file", "tag"] permissions = ["add", "read", "write", "delete"] for obj_type in obj_types: for permission in permissions: Permission.objects.get_or_create(label="{}.{}".format(obj_type, permission)) Permission.objects.get_or_create(label="file.download_source") def load_fixtures(*args): set_base_permissions() for title in ["text", "numeric", "json", "xml", "integer", "float"]: metatype = MetadataType(title=title) metatype.save() MetadataType.objects.get_or_create(title=title) default_user, created = User.objects.get_or_create(username="public_user") root_collection, created = Collection.objects.get_or_create( owner=default_user, title="root" ) public_project = fetch_public_project() Collection.objects.get_or_create(owner=default_user, title="root") with open( "{}/mimes.json".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: data = json.load(f) for key in data: if "extensions" in data[key]: file_type, created = FileType.objects.get_or_create( mime=key, title=key ) if created: print("created file type {}".format(file_type)) file_type, created = FileType.objects.get_or_create(mime=key, title=key) for extension in data[key]["extensions"]: extension, created = FileExtension.objects.get_or_create( label=extension ) if created: print("created extension {}".format(extension)) file_type.extensions.add(extension) metadatasets = {} with open( "{}/vocabulary.csv".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: reader = csv.reader(f) next(reader) for row in reader: meta_set, created = MetadataSet.objects.get_or_create( title=row[4], owner=default_user metadatasets[row[0]], created = MetadataSet.objects.get_or_create( title=row[4], owner=default_user, project=public_project ) if created: print("created meta set {}".format(meta_set)) metadatas = {} with open( "{}/property.csv".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: reader = csv.reader(f) next(reader) for row in reader: meta_prop, created = Metadata.objects.get_or_create( title=row[3], set_id=row[2], owner=default_user metadatas[row[0]], created = Metadata.objects.get_or_create( title=row[3], set_id=metadatasets[row[2]].pk, owner=default_user, project=public_project, ) if created: print("created metada {}".format(meta_prop)) with open( "{}/resource_class.csv".format(pathlib.Path(__file__).parent.absolute()), "r", Loading @@ -81,15 +85,13 @@ class Command(BaseCommand): reader = csv.reader(f) next(reader) for row in reader: resource_class, created = ResourceClass.objects.get_or_create( ResourceClass.objects.get_or_create( id=row[0], title=row[3], set_id=row[2], set_id=metadatasets[row[2]].pk, verbose_title=row[4], description=row[5], ) if created: print("created resource class {}".format(resource_class)) for mime in IIIF_SUPPORT: try: file_type = FileType.objects.get(mime=mime) Loading @@ -97,3 +99,9 @@ class Command(BaseCommand): file_type.save() except FileType.DoesNotExist: pass class Command(BaseCommand): # mimes database from https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json def handle(self, *args, **options): load_fixtures() resources/migrations/0001_initial.py +325 −105 File changed.Preview size limit exceeded, changes collapsed. Show changes resources/migrations/0002_auto_20201125_1111.py +8 −4 Original line number Diff line number Diff line Loading @@ -7,13 +7,17 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('resources', '0001_initial'), ("resources", "0001_initial"), ] operations = [ migrations.AlterField( model_name='collection', name='parent', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.collection'), model_name="collection", name="parent", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to="resources.collection", ), ), ] resources/migrations/0003_resource_ptr_owner.py +8 −4 Original line number Diff line number Diff line Loading @@ -9,13 +9,17 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('resources', '0002_auto_20201125_1111'), ("resources", "0002_auto_20201125_1111"), ] operations = [ migrations.AddField( model_name='resource', name='ptr_owner', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), model_name="resource", name="ptr_owner", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, ), ), ] resources/migrations/0004_auto_20210128_1046.py +19 −7 Original line number Diff line number Diff line Loading @@ -7,20 +7,32 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('resources', '0003_resource_ptr_owner'), ("resources", "0003_resource_ptr_owner"), ] operations = [ migrations.CreateModel( name='MetadataType', name="MetadataType", fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=128, verbose_name='titre')), ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=128, verbose_name="titre")), ], ), migrations.AddField( model_name='metadata', name='data_type', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resources.metadatatype'), model_name="metadata", name="data_type", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to="resources.metadatatype", ), ), ] Loading
resources/management/commands/loadfixtures.py +78 −70 Original line number Diff line number Diff line Loading @@ -8,6 +8,8 @@ from resources.models import ( MetadataType, ResourceClass, Collection, fetch_public_project, Permission, ) import json import csv Loading @@ -24,56 +26,58 @@ IIIF_SUPPORT = [ ] class Command(BaseCommand): # mimes database from https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json def handle(self, *args, **options): def set_base_permissions(): obj_types = ["collection", "resource", "metadata", "metadataset", "file", "tag"] permissions = ["add", "read", "write", "delete"] for obj_type in obj_types: for permission in permissions: Permission.objects.get_or_create(label="{}.{}".format(obj_type, permission)) Permission.objects.get_or_create(label="file.download_source") def load_fixtures(*args): set_base_permissions() for title in ["text", "numeric", "json", "xml", "integer", "float"]: metatype = MetadataType(title=title) metatype.save() MetadataType.objects.get_or_create(title=title) default_user, created = User.objects.get_or_create(username="public_user") root_collection, created = Collection.objects.get_or_create( owner=default_user, title="root" ) public_project = fetch_public_project() Collection.objects.get_or_create(owner=default_user, title="root") with open( "{}/mimes.json".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: data = json.load(f) for key in data: if "extensions" in data[key]: file_type, created = FileType.objects.get_or_create( mime=key, title=key ) if created: print("created file type {}".format(file_type)) file_type, created = FileType.objects.get_or_create(mime=key, title=key) for extension in data[key]["extensions"]: extension, created = FileExtension.objects.get_or_create( label=extension ) if created: print("created extension {}".format(extension)) file_type.extensions.add(extension) metadatasets = {} with open( "{}/vocabulary.csv".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: reader = csv.reader(f) next(reader) for row in reader: meta_set, created = MetadataSet.objects.get_or_create( title=row[4], owner=default_user metadatasets[row[0]], created = MetadataSet.objects.get_or_create( title=row[4], owner=default_user, project=public_project ) if created: print("created meta set {}".format(meta_set)) metadatas = {} with open( "{}/property.csv".format(pathlib.Path(__file__).parent.absolute()), "r" ) as f: reader = csv.reader(f) next(reader) for row in reader: meta_prop, created = Metadata.objects.get_or_create( title=row[3], set_id=row[2], owner=default_user metadatas[row[0]], created = Metadata.objects.get_or_create( title=row[3], set_id=metadatasets[row[2]].pk, owner=default_user, project=public_project, ) if created: print("created metada {}".format(meta_prop)) with open( "{}/resource_class.csv".format(pathlib.Path(__file__).parent.absolute()), "r", Loading @@ -81,15 +85,13 @@ class Command(BaseCommand): reader = csv.reader(f) next(reader) for row in reader: resource_class, created = ResourceClass.objects.get_or_create( ResourceClass.objects.get_or_create( id=row[0], title=row[3], set_id=row[2], set_id=metadatasets[row[2]].pk, verbose_title=row[4], description=row[5], ) if created: print("created resource class {}".format(resource_class)) for mime in IIIF_SUPPORT: try: file_type = FileType.objects.get(mime=mime) Loading @@ -97,3 +99,9 @@ class Command(BaseCommand): file_type.save() except FileType.DoesNotExist: pass class Command(BaseCommand): # mimes database from https://cdn.jsdelivr.net/gh/jshttp/mime-db@master/db.json def handle(self, *args, **options): load_fixtures()
resources/migrations/0001_initial.py +325 −105 File changed.Preview size limit exceeded, changes collapsed. Show changes
resources/migrations/0002_auto_20201125_1111.py +8 −4 Original line number Diff line number Diff line Loading @@ -7,13 +7,17 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('resources', '0001_initial'), ("resources", "0001_initial"), ] operations = [ migrations.AlterField( model_name='collection', name='parent', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to='resources.collection'), model_name="collection", name="parent", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to="resources.collection", ), ), ]
resources/migrations/0003_resource_ptr_owner.py +8 −4 Original line number Diff line number Diff line Loading @@ -9,13 +9,17 @@ class Migration(migrations.Migration): dependencies = [ migrations.swappable_dependency(settings.AUTH_USER_MODEL), ('resources', '0002_auto_20201125_1111'), ("resources", "0002_auto_20201125_1111"), ] operations = [ migrations.AddField( model_name='resource', name='ptr_owner', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL), model_name="resource", name="ptr_owner", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, ), ), ]
resources/migrations/0004_auto_20210128_1046.py +19 −7 Original line number Diff line number Diff line Loading @@ -7,20 +7,32 @@ import django.db.models.deletion class Migration(migrations.Migration): dependencies = [ ('resources', '0003_resource_ptr_owner'), ("resources", "0003_resource_ptr_owner"), ] operations = [ migrations.CreateModel( name='MetadataType', name="MetadataType", fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('title', models.CharField(max_length=128, verbose_name='titre')), ( "id", models.AutoField( auto_created=True, primary_key=True, serialize=False, verbose_name="ID", ), ), ("title", models.CharField(max_length=128, verbose_name="titre")), ], ), migrations.AddField( model_name='metadata', name='data_type', field=models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, to='resources.metadatatype'), model_name="metadata", name="data_type", field=models.ForeignKey( null=True, on_delete=django.db.models.deletion.SET_NULL, to="resources.metadatatype", ), ), ]