# Generated by Django 3.1.1 on 2021-04-28 03:53 import byostorage.cached from django.conf import settings from django.db import migrations, models import django.db.models.deletion import library.models class Migration(migrations.Migration): initial = True dependencies = [ ('interface', '0027_auto_20210322_1154'), ('byostorage', '0003_auto_20210323_1047'), migrations.swappable_dependency(settings.AUTH_USER_MODEL), ] operations = [ migrations.CreateModel( name='Collection', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=255)), ('location', models.CharField(help_text='Physical location', max_length=100)), ('notes', models.TextField(blank=True)), ('administrators', models.ManyToManyField(help_text='Administrators for this collection', related_name='collections', to=settings.AUTH_USER_MODEL)), ('ensembles', models.ManyToManyField(related_name='collections', to='interface.Ensemble')), ('storage', models.ForeignKey(blank=True, help_text='Storage for documents', null=True, on_delete=django.db.models.deletion.CASCADE, to='byostorage.userstorage')), ], ), migrations.CreateModel( name='Document', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('doctype', models.PositiveSmallIntegerField(choices=[(1, 'PDF'), (2, 'Audio'), (3, 'Video'), (4, 'Source')], default=1)), ('upload', models.FileField(storage=byostorage.cached.CachedStorage(), upload_to=library.models.doc_upload_filename)), ], ), migrations.CreateModel( name='Item', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('order', models.SmallIntegerField(default=0)), ('project', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='interface.project')), ], options={ 'ordering': ['order', 'work'], }, ), migrations.CreateModel( name='Orchestration', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('name', models.CharField(max_length=100)), ('instruments', models.TextField()), ('ensemble', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='orchestrations', to='interface.ensemble')), ], ), migrations.CreateModel( name='Work', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('slug', models.SlugField(editable=False, max_length=100)), ('name', models.CharField(max_length=255)), ('version', models.CharField(blank=True, help_text='Version or edition details', max_length=100)), ('composer', models.CharField(blank=True, help_text='Use Composer / Arranger format', max_length=255)), ('code', models.CharField(blank=True, help_text='Collection specific code or number', max_length=100)), ('licence', models.PositiveSmallIntegerField(choices=[(2, 'Public Domain'), (4, 'Copyright Expired'), (6, 'Copyrighted'), (10, 'Internal use only')], default=6, help_text='Copyright status')), ('max_loans', models.BooleanField(default=1, help_text='How many projects can this work be attached to')), ('running_time', models.IntegerField(blank=True, help_text='Running time in seconds', null=True)), ('notes', models.TextField(blank=True)), ('tag_list', models.CharField(blank=True, help_text='Multiple tags for the work', max_length=255)), ('collection', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='works', to='library.collection')), ('orchestration', models.ForeignKey(null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='works', to='library.orchestration')), ('parent', models.ForeignKey(blank=True, help_text='Arrangement of another work or part of an anthology', null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='related_works', to='library.work')), ('projects', models.ManyToManyField(help_text='Current usage', related_name='works', through='library.Item', to='interface.Project')), ], ), migrations.CreateModel( name='Part', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('tag', models.SlugField(max_length=20)), ('start', models.SmallIntegerField(blank=True, null=True)), ('end', models.SmallIntegerField(blank=True, null=True)), ('notes', models.TextField(blank=True)), ('doc', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='parts', to='library.document')), ], options={ 'ordering': ['doc', 'start', 'pk'], }, ), migrations.AddField( model_name='item', name='work', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='project_items', to='library.work'), ), migrations.CreateModel( name='EnsembleAccess', fields=[ ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('access_type', models.PositiveSmallIntegerField(choices=[(1, 'Unlimited'), (2, 'Approval required')], default=2)), ('collection', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='library.collection')), ('ensemble', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, to='interface.ensemble')), ], ), migrations.AddField( model_name='document', name='work', field=models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='docs', to='library.work'), ), ]