diff --git a/AKModel/migrations/0001_event.py b/AKModel/migrations/0001_event.py new file mode 100644 index 0000000000000000000000000000000000000000..cfc20938b4902a5f4c4671432741a3b062fabd94 --- /dev/null +++ b/AKModel/migrations/0001_event.py @@ -0,0 +1,25 @@ +# Generated by Django 2.2.6 on 2019-10-11 16:58 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='Event', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name or iteration of the event', max_length=64, unique=True, verbose_name='Name')), + ('start', models.DateTimeField(help_text='Time the event begins', verbose_name='Start')), + ('end', models.DateTimeField(help_text='Time the event ends', verbose_name='End')), + ('place', models.CharField(help_text='City etc. where the event takes place', max_length=128, verbose_name='Place')), + ('active', models.BooleanField(help_text='Marks currently active events', verbose_name='Active State')), + ], + ), + ] diff --git a/AKModel/migrations/0002_ak_owner.py b/AKModel/migrations/0002_ak_owner.py new file mode 100644 index 0000000000000000000000000000000000000000..a43b619dc8739f271eed7601de331cc9b0e12d7f --- /dev/null +++ b/AKModel/migrations/0002_ak_owner.py @@ -0,0 +1,31 @@ +# Generated by Django 2.2.6 on 2019-10-11 16:59 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('AKModel', '0001_event'), + ] + + operations = [ + migrations.CreateModel( + name='AKOwner', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name used to identify an AK owner', max_length=256, verbose_name='Nickname')), + ('email', models.EmailField(blank=True, help_text='Contact e-mail', max_length=128, verbose_name='E-Mail Address')), + ('institution', models.CharField(blank=True, help_text='University etc.', max_length=128, verbose_name='Institution')), + ('link', models.URLField(blank=True, help_text='Link to Homepage', verbose_name='Web Link')), + ('event', models.ForeignKey(help_text='Matching event', on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', verbose_name='Event')), + ], + options={ + 'verbose_name': 'AK Owner', + 'verbose_name_plural': 'AK Owners', + 'ordering': ['name'], + 'unique_together': {('name', 'institution')}, + }, + ), + ] diff --git a/AKModel/migrations/0003_ak.py b/AKModel/migrations/0003_ak.py new file mode 100644 index 0000000000000000000000000000000000000000..e3cb964f19f07f89315eb118d1d9a942fa8638fb --- /dev/null +++ b/AKModel/migrations/0003_ak.py @@ -0,0 +1,90 @@ +# Generated by Django 2.2.6 on 2019-10-11 16:59 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('AKModel', '0002_ak_owner'), + ] + + operations = [ + migrations.CreateModel( + name='AKTag', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the AK Tag', max_length=64, unique=True, verbose_name='Name')), + ], + options={ + 'verbose_name': 'AK Tag', + 'verbose_name_plural': 'AK Tags', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='AKTrack', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the AK Track', max_length=64, unique=True, verbose_name='Name')), + ('color', models.CharField(blank=True, help_text='Color to display this track in', max_length=7, verbose_name='Color')), + ], + options={ + 'verbose_name': 'AK Track', + 'verbose_name_plural': 'AK Tracks', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='AKType', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the AK Type', max_length=64, unique=True, verbose_name='Name')), + ('color', models.CharField(blank=True, help_text='Color to display this type in', max_length=7, verbose_name='Color')), + ], + options={ + 'verbose_name': 'AK Type', + 'verbose_name_plural': 'AK Types', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='AKRequirement', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the AK Requirement', max_length=128, unique=True, verbose_name='Name')), + ('event', models.ForeignKey(help_text='Matching event', on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', verbose_name='Event')), + ], + options={ + 'verbose_name': 'AK Requirement', + 'verbose_name_plural': 'AK Requirements', + 'ordering': ['name'], + }, + ), + migrations.CreateModel( + name='AK', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name of the AK', max_length=256, unique=True, verbose_name='Name')), + ('short_name', models.CharField(blank=True, help_text='Name displayed in schedule', max_length=64, unique=True, verbose_name='Short Name')), + ('description', models.TextField(blank=True, help_text='Description of the AK', verbose_name='Description')), + ('link', models.URLField(blank=True, help_text='Link to wiki page', verbose_name='Web Link')), + ('reso', models.BooleanField(default=False, help_text='Intends to submit a reso', verbose_name='Resolution Intention')), + ('notes', models.TextField(blank=True, help_text='Notes to organizers', verbose_name='Internal Notes')), + ('interest', models.IntegerField(default=-1, help_text='Expected number of people to attend', verbose_name='Interest')), + ('conflicts', models.ManyToManyField(blank=True, help_text='AKs that conflict and thus must not take place at the same time', related_name='conflict', to='AKModel.AK', verbose_name='Conflicting AKs')), + ('event', models.ForeignKey(help_text='Matching event', on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', verbose_name='Event')), + ('owners', models.ManyToManyField(help_text='Those organizing the AK', to='AKModel.AKOwner', verbose_name='Owners')), + ('prerequisites', models.ManyToManyField(blank=True, help_text='AKs that should precede this AK in the schedule', to='AKModel.AK', verbose_name='Prerequisite AKs')), + ('requirements', models.ManyToManyField(blank=True, help_text="AK's Requirements", to='AKModel.AKRequirement', verbose_name='Requirements')), + ('tags', models.ManyToManyField(blank=True, help_text='Tags provided by AK owners', to='AKModel.AKTag', verbose_name='Tags')), + ('track', models.ForeignKey(help_text='Track the AK belongs to.', null=True, on_delete=django.db.models.deletion.SET_NULL, to='AKModel.AKTrack', verbose_name='Track')), + ('type', models.ForeignKey(help_text='Type of the AK', on_delete=django.db.models.deletion.PROTECT, to='AKModel.AKType', verbose_name='Type')), + ], + options={ + 'verbose_name': 'AK', + 'verbose_name_plural': 'AKs', + }, + ), + ] diff --git a/AKModel/migrations/0004_room.py b/AKModel/migrations/0004_room.py new file mode 100644 index 0000000000000000000000000000000000000000..77a03437cbbfce29548ca2a6a7f18bebb9508105 --- /dev/null +++ b/AKModel/migrations/0004_room.py @@ -0,0 +1,31 @@ +# Generated by Django 2.2.6 on 2019-10-11 17:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('AKModel', '0003_ak'), + ] + + operations = [ + migrations.CreateModel( + name='Room', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('name', models.CharField(help_text='Name or number of the room', max_length=64, verbose_name='Name')), + ('building', models.CharField(help_text='Name or number of the building', max_length=256, verbose_name='Building')), + ('capacity', models.IntegerField(help_text='Maximum number of people', verbose_name='Capacity')), + ('event', models.ForeignKey(help_text='Matching event', on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', verbose_name='Event')), + ('properties', models.ManyToManyField(help_text='AK requirements fulfilled by the room', to='AKModel.AKRequirement', verbose_name='Properties')), + ], + options={ + 'verbose_name': 'Room', + 'verbose_name_plural': 'Rooms', + 'ordering': ['building', 'name'], + 'unique_together': {('name', 'building')}, + }, + ), + ] diff --git a/AKModel/migrations/0005_ak_slot.py b/AKModel/migrations/0005_ak_slot.py new file mode 100644 index 0000000000000000000000000000000000000000..39197a7f8a5aacf68bca2a223640b4812867228f --- /dev/null +++ b/AKModel/migrations/0005_ak_slot.py @@ -0,0 +1,30 @@ +# Generated by Django 2.2.6 on 2019-10-11 17:00 + +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('AKModel', '0004_room'), + ] + + operations = [ + migrations.CreateModel( + name='AKSlot', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('start', models.DateTimeField(help_text='Time and date the slot begins', verbose_name='Slot Begin')), + ('duration', models.DecimalField(decimal_places=2, default=2, help_text='Length in hours', max_digits=4, verbose_name='Duration')), + ('ak', models.ForeignKey(help_text='AK being mapped', on_delete=django.db.models.deletion.CASCADE, to='AKModel.AK', verbose_name='AK')), + ('event', models.ForeignKey(help_text='Matching event', on_delete=django.db.models.deletion.CASCADE, to='AKModel.Event', verbose_name='Event')), + ('room', models.ForeignKey(help_text='Room the AK will take place in', null=True, on_delete=django.db.models.deletion.SET_NULL, to='AKModel.Room', verbose_name='Room')), + ], + options={ + 'verbose_name': 'AK Slot', + 'verbose_name_plural': 'AK Slots', + 'ordering': ['start', 'room'], + }, + ), + ]