diff options
Diffstat (limited to 'pysite/apps/api/migrations')
40 files changed, 857 insertions, 0 deletions
diff --git a/pysite/apps/api/migrations/0001_initial.py b/pysite/apps/api/migrations/0001_initial.py new file mode 100644 index 00000000..dca6d17f --- /dev/null +++ b/pysite/apps/api/migrations/0001_initial.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1 on 2018-08-15 17:28 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + initial = True + + dependencies = [ + ] + + operations = [ + migrations.CreateModel( + name='SnakeName', + fields=[ + ('name', models.CharField(max_length=100, primary_key=True, serialize=False)), + ('scientific', models.CharField(max_length=150)), + ], + ), + ] diff --git a/pysite/apps/api/migrations/0002_documentationlink.py b/pysite/apps/api/migrations/0002_documentationlink.py new file mode 100644 index 00000000..5dee679a --- /dev/null +++ b/pysite/apps/api/migrations/0002_documentationlink.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1 on 2018-08-16 19:42 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0001_initial'), + ] + + operations = [ + migrations.CreateModel( + name='DocumentationLink', + fields=[ + ('package', models.CharField(max_length=50, primary_key=True, serialize=False)), + ('base_url', models.URLField()), + ('inventory_url', models.URLField()), + ], + ), + ] diff --git a/pysite/apps/api/migrations/0003_offtopicchannelname.py b/pysite/apps/api/migrations/0003_offtopicchannelname.py new file mode 100644 index 00000000..2f19bfd8 --- /dev/null +++ b/pysite/apps/api/migrations/0003_offtopicchannelname.py @@ -0,0 +1,20 @@ +# Generated by Django 2.1 on 2018-08-31 22:21 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0002_documentationlink'), + ] + + operations = [ + migrations.CreateModel( + name='OffTopicChannelName', + fields=[ + ('name', models.CharField(max_length=96, primary_key=True, serialize=False, validators=[django.core.validators.RegexValidator(regex='^[a-z0-9-]+$')])), + ], + ), + ] diff --git a/pysite/apps/api/migrations/0004_role.py b/pysite/apps/api/migrations/0004_role.py new file mode 100644 index 00000000..0a6b6c43 --- /dev/null +++ b/pysite/apps/api/migrations/0004_role.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1 on 2018-09-01 19:54 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0003_offtopicchannelname'), + ] + + operations = [ + migrations.CreateModel( + name='Role', + fields=[ + ('id', models.BigIntegerField(help_text="The role's ID, taken from Discord.", primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='Role IDs cannot be negative.')])), + ('name', models.CharField(help_text="The role's name, taken from Discord.", max_length=100)), + ('colour', models.IntegerField(help_text='The integer value of the colour of this role from Discord.', validators=[django.core.validators.MinValueValidator(limit_value=0, message='Colour hex cannot be negative.')])), + ('permissions', models.IntegerField(help_text='The integer value of the permission bitset of this role from Discord.', validators=[django.core.validators.MinValueValidator(limit_value=0, message='Role permissions cannot be negative.'), django.core.validators.MaxValueValidator(limit_value=8589934592, message='Role permission bitset exceeds value of having all permissions')])), + ], + ), + ] diff --git a/pysite/apps/api/migrations/0005_user.py b/pysite/apps/api/migrations/0005_user.py new file mode 100644 index 00000000..a771119c --- /dev/null +++ b/pysite/apps/api/migrations/0005_user.py @@ -0,0 +1,38 @@ +# Generated by Django 2.1 on 2018-09-01 20:02 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0004_role'), + ] + + operations = [ + migrations.CreateModel( + name='Member', + fields=[ + ('id', models.BigIntegerField(help_text='The ID of this user, taken from Discord.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='User IDs cannot be negative.')])), + ('name', models.CharField(help_text='The username, taken from Discord.', max_length=32)), + ('discriminator', models.PositiveSmallIntegerField(help_text='The discriminator of this user, taken from Discord.', validators=[django.core.validators.MaxValueValidator(limit_value=9999, message='Discriminators may not exceed `9999`.')])), + ('avatar_hash', models.CharField(help_text="The user's avatar hash, taken from Discord. Null if the user does not have any custom avatar.", max_length=100, null=True)), + ], + ), + migrations.AlterField( + model_name='role', + name='id', + field=models.BigIntegerField(help_text='The role ID, taken from Discord.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='Role IDs cannot be negative.')]), + ), + migrations.AlterField( + model_name='role', + name='name', + field=models.CharField(help_text='The role name, taken from Discord.', max_length=100), + ), + migrations.AddField( + model_name='member', + name='roles', + field=models.ManyToManyField(help_text='Any roles this user has on our server.', to='api.Role'), + ), + ] diff --git a/pysite/apps/api/migrations/0006_add_help_texts.py b/pysite/apps/api/migrations/0006_add_help_texts.py new file mode 100644 index 00000000..a57d2289 --- /dev/null +++ b/pysite/apps/api/migrations/0006_add_help_texts.py @@ -0,0 +1,44 @@ +# Generated by Django 2.1.1 on 2018-09-21 20:26 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0005_user'), + ] + + operations = [ + migrations.AlterField( + model_name='documentationlink', + name='base_url', + field=models.URLField(help_text='The base URL from which documentation will be available for this project. Used to generate links to various symbols within this package.'), + ), + migrations.AlterField( + model_name='documentationlink', + name='inventory_url', + field=models.URLField(help_text='The URL at which the Sphinx inventory is available for this package.'), + ), + migrations.AlterField( + model_name='documentationlink', + name='package', + field=models.CharField(help_text='The Python package name that this documentation link belongs to.', max_length=50, primary_key=True, serialize=False), + ), + migrations.AlterField( + model_name='offtopicchannelname', + name='name', + field=models.CharField(help_text='The actual channel name that will be used on our Discord server.', max_length=96, primary_key=True, serialize=False, validators=[django.core.validators.RegexValidator(regex='^[a-z0-9-]+$')]), + ), + migrations.AlterField( + model_name='snakename', + name='name', + field=models.CharField(help_text="The regular name for this snake, e.g. 'Python'.", max_length=100, primary_key=True, serialize=False), + ), + migrations.AlterField( + model_name='snakename', + name='scientific', + field=models.CharField(help_text="The scientific name for this snake, e.g. 'Python bivittatus'.", max_length=150), + ), + ] diff --git a/pysite/apps/api/migrations/0007_tag.py b/pysite/apps/api/migrations/0007_tag.py new file mode 100644 index 00000000..d5546ccc --- /dev/null +++ b/pysite/apps/api/migrations/0007_tag.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.1 on 2018-09-21 22:05 + +import pysite.apps.api.models +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0006_add_help_texts'), + ] + + operations = [ + migrations.CreateModel( + name='Tag', + fields=[ + ('title', models.CharField(help_text='The title of this tag, shown in searches and providing a quick overview over what this embed contains.', max_length=100, primary_key=True, serialize=False)), + ('embed', django.contrib.postgres.fields.jsonb.JSONField(help_text='The actual embed shown by this tag.')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0008_tag_embed_validator.py b/pysite/apps/api/migrations/0008_tag_embed_validator.py new file mode 100644 index 00000000..fd2385d1 --- /dev/null +++ b/pysite/apps/api/migrations/0008_tag_embed_validator.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.1 on 2018-09-23 10:07 + +import pysite.apps.api.validators +import django.contrib.postgres.fields.jsonb +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0007_tag'), + ] + + operations = [ + migrations.AlterField( + model_name='tag', + name='embed', + field=django.contrib.postgres.fields.jsonb.JSONField(help_text='The actual embed shown by this tag.', validators=[ + + + pysite.apps.api.validators.validate_tag_embed]), + ), + ] diff --git a/pysite/apps/api/migrations/0009_snakefact.py b/pysite/apps/api/migrations/0009_snakefact.py new file mode 100644 index 00000000..2a136f83 --- /dev/null +++ b/pysite/apps/api/migrations/0009_snakefact.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-11 14:25 + +import pysite.apps.api.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0008_tag_embed_validator'), + ] + + operations = [ + migrations.CreateModel( + name='SnakeFact', + fields=[ + ('fact', models.CharField(help_text='A fact about snakes.', max_length=200, primary_key=True, serialize=False)), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0010_snakeidiom.py b/pysite/apps/api/migrations/0010_snakeidiom.py new file mode 100644 index 00000000..3eb99198 --- /dev/null +++ b/pysite/apps/api/migrations/0010_snakeidiom.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-19 16:27 + +import pysite.apps.api.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0009_snakefact'), + ] + + operations = [ + migrations.CreateModel( + name='SnakeIdiom', + fields=[ + ('idiom', models.CharField(help_text='A snake idiom', max_length=140, primary_key=True, serialize=False)), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0011_auto_20181020_1904.py b/pysite/apps/api/migrations/0011_auto_20181020_1904.py new file mode 100644 index 00000000..bb5a6325 --- /dev/null +++ b/pysite/apps/api/migrations/0011_auto_20181020_1904.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.2 on 2018-10-20 19:04 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0010_snakeidiom'), + ] + + operations = [ + migrations.AlterField( + model_name='snakeidiom', + name='idiom', + field=models.CharField(help_text='A saying about a snake.', max_length=140, primary_key=True, serialize=False), + ), + ] diff --git a/pysite/apps/api/migrations/0012_specialsnake.py b/pysite/apps/api/migrations/0012_specialsnake.py new file mode 100644 index 00000000..ecf1b9d9 --- /dev/null +++ b/pysite/apps/api/migrations/0012_specialsnake.py @@ -0,0 +1,22 @@ +# Generated by Django 2.1.2 on 2018-10-22 09:53 + +import pysite.apps.api.models +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0011_auto_20181020_1904'), + ] + + operations = [ + migrations.CreateModel( + name='SpecialSnake', + fields=[ + ('name', models.CharField(max_length=140, primary_key=True, serialize=False)), + ('info', models.TextField()), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0013_specialsnake_image.py b/pysite/apps/api/migrations/0013_specialsnake_image.py new file mode 100644 index 00000000..a0d0d318 --- /dev/null +++ b/pysite/apps/api/migrations/0013_specialsnake_image.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-23 11:51 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0012_specialsnake'), + ] + + operations = [ + migrations.AddField( + model_name='specialsnake', + name='image', + field=models.URLField(default=datetime.datetime(2018, 10, 23, 11, 51, 23, 703868, tzinfo=utc)), + preserve_default=False, + ), + ] diff --git a/pysite/apps/api/migrations/0014_auto_20181025_1959.py b/pysite/apps/api/migrations/0014_auto_20181025_1959.py new file mode 100644 index 00000000..3599d2cd --- /dev/null +++ b/pysite/apps/api/migrations/0014_auto_20181025_1959.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.2 on 2018-10-25 19:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0013_specialsnake_image'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='info', + field=models.TextField(help_text='Info about a special snake.'), + ), + migrations.AlterField( + model_name='specialsnake', + name='name', + field=models.CharField(help_text='A special snake name.', max_length=140, primary_key=True, serialize=False), + ), + ] diff --git a/pysite/apps/api/migrations/0015_auto_20181027_1617.py b/pysite/apps/api/migrations/0015_auto_20181027_1617.py new file mode 100644 index 00000000..8973ff6d --- /dev/null +++ b/pysite/apps/api/migrations/0015_auto_20181027_1617.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:17 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0014_auto_20181025_1959'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='image', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), size=None), + ), + ] diff --git a/pysite/apps/api/migrations/0016_auto_20181027_1619.py b/pysite/apps/api/migrations/0016_auto_20181027_1619.py new file mode 100644 index 00000000..b8bdfb16 --- /dev/null +++ b/pysite/apps/api/migrations/0016_auto_20181027_1619.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0015_auto_20181027_1617'), + ] + + operations = [ + migrations.RenameField( + model_name='specialsnake', + old_name='image', + new_name='images', + ), + ] diff --git a/pysite/apps/api/migrations/0017_auto_20181029_1921.py b/pysite/apps/api/migrations/0017_auto_20181029_1921.py new file mode 100644 index 00000000..012bda61 --- /dev/null +++ b/pysite/apps/api/migrations/0017_auto_20181029_1921.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-10-29 19:21 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0016_auto_20181027_1619'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='images', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), help_text='Images displaying this special snake.', size=None), + ), + ] diff --git a/pysite/apps/api/migrations/0018_messagedeletioncontext.py b/pysite/apps/api/migrations/0018_messagedeletioncontext.py new file mode 100644 index 00000000..10428ceb --- /dev/null +++ b/pysite/apps/api/migrations/0018_messagedeletioncontext.py @@ -0,0 +1,24 @@ +# Generated by Django 2.1.1 on 2018-11-18 20:12 + +import pysite.apps.api.models +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0017_auto_20181029_1921'), + ] + + operations = [ + migrations.CreateModel( + name='MessageDeletionContext', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('creation', models.DateTimeField(help_text='When this deletion took place.')), + ('actor', models.ForeignKey(help_text='The original actor causing this deletion. Could be the author of a manual clean command invocation, the bot when executing automatic actions, or nothing to indicate that the bulk deletion was not issued by us.', null=True, on_delete=django.db.models.deletion.CASCADE, to='api.User')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0018_user_rename.py b/pysite/apps/api/migrations/0018_user_rename.py new file mode 100644 index 00000000..f88eb5bc --- /dev/null +++ b/pysite/apps/api/migrations/0018_user_rename.py @@ -0,0 +1,17 @@ +# Generated by Django 2.1.3 on 2018-11-19 20:09 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0017_auto_20181029_1921'), + ] + + operations = [ + migrations.RenameModel( + old_name='Member', + new_name='User', + ), + ] diff --git a/pysite/apps/api/migrations/0019_deletedmessage.py b/pysite/apps/api/migrations/0019_deletedmessage.py new file mode 100644 index 00000000..cb4c59f2 --- /dev/null +++ b/pysite/apps/api/migrations/0019_deletedmessage.py @@ -0,0 +1,34 @@ +# Generated by Django 2.1.1 on 2018-11-18 20:26 + +import pysite.apps.api.models +import pysite.apps.api.validators +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0018_messagedeletioncontext'), + ] + + operations = [ + migrations.CreateModel( + name='DeletedMessage', + fields=[ + ('id', models.BigIntegerField(help_text='The message ID as taken from Discord.', primary_key=True, serialize=False, validators=[django.core.validators.MinValueValidator(limit_value=0, message='Message IDs cannot be negative.')])), + ('channel_id', models.BigIntegerField(help_text='The channel ID that this message was sent in, taken from Discord.', validators=[django.core.validators.MinValueValidator(limit_value=0, message='Channel IDs cannot be negative.')])), + ('content', models.CharField(help_text='The content of this message, taken from Discord.', max_length=2000)), + ('embeds', django.contrib.postgres.fields.ArrayField(base_field=django.contrib.postgres.fields.jsonb.JSONField(validators=[ + + + pysite.apps.api.validators.validate_tag_embed]), help_text='Embeds attached to this message.', size=None)), + ('author', models.ForeignKey(help_text='The author of this message.', on_delete=django.db.models.deletion.CASCADE, to='api.User')), + ('deletion_context', models.ForeignKey(help_text='The deletion context this message is part of.', on_delete=django.db.models.deletion.CASCADE, to='api.MessageDeletionContext')), + ], + options={ + 'abstract': False, + }, + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0019_user_in_guild.py b/pysite/apps/api/migrations/0019_user_in_guild.py new file mode 100644 index 00000000..fda008c4 --- /dev/null +++ b/pysite/apps/api/migrations/0019_user_in_guild.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.3 on 2018-11-19 20:30 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0018_user_rename'), + ] + + operations = [ + migrations.AddField( + model_name='user', + name='in_guild', + field=models.BooleanField(default=True, help_text='Whether this user is in our server.'), + ), + ] diff --git a/pysite/apps/api/migrations/0020_add_snake_field_validators.py b/pysite/apps/api/migrations/0020_add_snake_field_validators.py new file mode 100644 index 00000000..3b625f9b --- /dev/null +++ b/pysite/apps/api/migrations/0020_add_snake_field_validators.py @@ -0,0 +1,24 @@ +# Generated by Django 2.1.2 on 2018-11-24 17:11 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0019_user_in_guild'), + ] + + operations = [ + migrations.AlterField( + model_name='snakename', + name='name', + field=models.CharField(help_text="The regular name for this snake, e.g. 'Python'.", max_length=100, primary_key=True, serialize=False, validators=[django.core.validators.RegexValidator(regex='^([^0-9])+$')]), + ), + migrations.AlterField( + model_name='snakename', + name='scientific', + field=models.CharField(help_text="The scientific name for this snake, e.g. 'Python bivittatus'.", max_length=150, validators=[django.core.validators.RegexValidator(regex='^([^0-9])+$')]), + ), + ] diff --git a/pysite/apps/api/migrations/0020_infraction.py b/pysite/apps/api/migrations/0020_infraction.py new file mode 100644 index 00000000..7f7d5a41 --- /dev/null +++ b/pysite/apps/api/migrations/0020_infraction.py @@ -0,0 +1,30 @@ +# Generated by Django 2.1.3 on 2018-11-19 22:02 + +import pysite.apps.api.models +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0019_user_in_guild'), + ] + + operations = [ + migrations.CreateModel( + name='Infraction', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('inserted_at', models.DateTimeField(auto_now_add=True, help_text='The date and time of the creation of this infraction.')), + ('expires_at', models.DateTimeField(help_text="The date and time of the expiration of this infraction. Null if the infraction is permanent or it can't expire.", null=True)), + ('active', models.BooleanField(default=True, help_text='Whether the infraction is still active.')), + ('type', models.CharField(choices=[('note', 'Note'), ('warning', 'Warning'), ('mute', 'Mute'), ('ban', 'Ban'), ('kick', 'Kick'), ('superstar', 'Superstar')], help_text='The type of the infraction.', max_length=9)), + ('reason', models.TextField(help_text='The reason for the infraction.')), + ('hidden', models.BooleanField(default=False, help_text='Whether the infraction is a shadow infraction.')), + ('actor', models.ForeignKey(help_text='The user which applied the infraction.', on_delete=django.db.models.deletion.CASCADE, related_name='infractions_given', to='api.User')), + ('user', models.ForeignKey(help_text='The user to which the infraction was applied.', on_delete=django.db.models.deletion.CASCADE, related_name='infractions_received', to='api.User')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0021_add_special_snake_validator.py b/pysite/apps/api/migrations/0021_add_special_snake_validator.py new file mode 100644 index 00000000..d41b96e5 --- /dev/null +++ b/pysite/apps/api/migrations/0021_add_special_snake_validator.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-11-25 14:59 + +import django.core.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0020_add_snake_field_validators'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='name', + field=models.CharField(help_text='A special snake name.', max_length=140, primary_key=True, serialize=False, validators=[django.core.validators.RegexValidator(regex='^([^0-9])+$')]), + ), + ] diff --git a/pysite/apps/api/migrations/0021_infraction_reason_null.py b/pysite/apps/api/migrations/0021_infraction_reason_null.py new file mode 100644 index 00000000..6600f230 --- /dev/null +++ b/pysite/apps/api/migrations/0021_infraction_reason_null.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.3 on 2018-11-21 00:50 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0020_infraction'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='reason', + field=models.TextField(help_text='The reason for the infraction.', null=True), + ), + ] diff --git a/pysite/apps/api/migrations/0021_merge_20181125_1015.py b/pysite/apps/api/migrations/0021_merge_20181125_1015.py new file mode 100644 index 00000000..d8eaa510 --- /dev/null +++ b/pysite/apps/api/migrations/0021_merge_20181125_1015.py @@ -0,0 +1,14 @@ +# Generated by Django 2.1.1 on 2018-11-25 10:15 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0020_add_snake_field_validators'), + ('api', '0019_deletedmessage'), + ] + + operations = [ + ] diff --git a/pysite/apps/api/migrations/0022_infraction_remove_note.py b/pysite/apps/api/migrations/0022_infraction_remove_note.py new file mode 100644 index 00000000..eba84610 --- /dev/null +++ b/pysite/apps/api/migrations/0022_infraction_remove_note.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.3 on 2018-11-21 21:07 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0021_infraction_reason_null'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='type', + field=models.CharField(choices=[('warning', 'Warning'), ('mute', 'Mute'), ('ban', 'Ban'), ('kick', 'Kick'), ('superstar', 'Superstar')], help_text='The type of the infraction.', max_length=9), + ), + ] diff --git a/pysite/apps/api/migrations/0023_merge_infractions_snake_validators.py b/pysite/apps/api/migrations/0023_merge_infractions_snake_validators.py new file mode 100644 index 00000000..916f78f2 --- /dev/null +++ b/pysite/apps/api/migrations/0023_merge_infractions_snake_validators.py @@ -0,0 +1,14 @@ +# Generated by Django 2.1.3 on 2018-11-29 19:37 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0022_infraction_remove_note'), + ('api', '0021_add_special_snake_validator'), + ] + + operations = [ + ] diff --git a/pysite/apps/api/migrations/0024_add_note_infraction_type.py b/pysite/apps/api/migrations/0024_add_note_infraction_type.py new file mode 100644 index 00000000..4adb53b8 --- /dev/null +++ b/pysite/apps/api/migrations/0024_add_note_infraction_type.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.4 on 2019-01-05 14:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0023_merge_infractions_snake_validators'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='type', + field=models.CharField(choices=[('note', 'Note'), ('warning', 'Warning'), ('mute', 'Mute'), ('kick', 'Kick'), ('ban', 'Ban'), ('superstar', 'Superstar')], help_text='The type of the infraction.', max_length=9), + ), + ] diff --git a/pysite/apps/api/migrations/0025_allow_custom_inserted_at_infraction_field.py b/pysite/apps/api/migrations/0025_allow_custom_inserted_at_infraction_field.py new file mode 100644 index 00000000..0c02cb91 --- /dev/null +++ b/pysite/apps/api/migrations/0025_allow_custom_inserted_at_infraction_field.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.4 on 2019-01-06 16:01 + +import datetime +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0024_add_note_infraction_type'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='inserted_at', + field=models.DateTimeField(default=datetime.datetime.utcnow, help_text='The date and time of the creation of this infraction.'), + ), + ] diff --git a/pysite/apps/api/migrations/0026_use_proper_default_for_infraction_insertion_date.py b/pysite/apps/api/migrations/0026_use_proper_default_for_infraction_insertion_date.py new file mode 100644 index 00000000..56f3b2b8 --- /dev/null +++ b/pysite/apps/api/migrations/0026_use_proper_default_for_infraction_insertion_date.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.5 on 2019-01-09 19:50 + +from django.db import migrations, models +import django.utils.timezone + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0025_allow_custom_inserted_at_infraction_field'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='inserted_at', + field=models.DateTimeField(default=django.utils.timezone.now, help_text='The date and time of the creation of this infraction.'), + ), + ] diff --git a/pysite/apps/api/migrations/0027_merge_20190120_0852.py b/pysite/apps/api/migrations/0027_merge_20190120_0852.py new file mode 100644 index 00000000..6fab4fd0 --- /dev/null +++ b/pysite/apps/api/migrations/0027_merge_20190120_0852.py @@ -0,0 +1,14 @@ +# Generated by Django 2.1.5 on 2019-01-20 08:52 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0026_use_proper_default_for_infraction_insertion_date'), + ('api', '0021_merge_20181125_1015'), + ] + + operations = [ + ] diff --git a/pysite/apps/api/migrations/0028_allow_message_content_blank.py b/pysite/apps/api/migrations/0028_allow_message_content_blank.py new file mode 100644 index 00000000..6d57db27 --- /dev/null +++ b/pysite/apps/api/migrations/0028_allow_message_content_blank.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.5 on 2019-01-20 09:41 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0027_merge_20190120_0852'), + ] + + operations = [ + migrations.AlterField( + model_name='deletedmessage', + name='content', + field=models.CharField(blank=True, help_text='The content of this message, taken from Discord.', max_length=2000), + ), + ] diff --git a/pysite/apps/api/migrations/0029_add_infraction_type_watch.py b/pysite/apps/api/migrations/0029_add_infraction_type_watch.py new file mode 100644 index 00000000..c6f88a11 --- /dev/null +++ b/pysite/apps/api/migrations/0029_add_infraction_type_watch.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.5 on 2019-01-20 11:52 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0028_allow_message_content_blank'), + ] + + operations = [ + migrations.AlterField( + model_name='infraction', + name='type', + field=models.CharField(choices=[('note', 'Note'), ('warning', 'Warning'), ('watch', 'Watch'), ('mute', 'Mute'), ('kick', 'Kick'), ('ban', 'Ban'), ('superstar', 'Superstar')], help_text='The type of the infraction.', max_length=9), + ), + ] diff --git a/pysite/apps/api/migrations/0030_reminder.py b/pysite/apps/api/migrations/0030_reminder.py new file mode 100644 index 00000000..8448ac8c --- /dev/null +++ b/pysite/apps/api/migrations/0030_reminder.py @@ -0,0 +1,27 @@ +# Generated by Django 2.1.5 on 2019-01-22 22:17 + +import pysite.apps.api.models +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0029_add_infraction_type_watch'), + ] + + operations = [ + migrations.CreateModel( + name='Reminder', + fields=[ + ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), + ('active', models.BooleanField(default=True, help_text='Whether this reminder is still active. If not, it has been sent out to the user.')), + ('channel_id', models.BigIntegerField(help_text='The channel ID that this message was sent in, taken from Discord.', validators=[django.core.validators.MinValueValidator(limit_value=0, message='Channel IDs cannot be negative.')])), + ('content', models.CharField(help_text='The content that the user wants to be reminded of.', max_length=1500)), + ('expiration', models.DateTimeField(help_text='When this reminder should be sent.')), + ('author', models.ForeignKey(help_text='The creator of this reminder.', on_delete=django.db.models.deletion.CASCADE, to='api.User')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0031_nomination.py b/pysite/apps/api/migrations/0031_nomination.py new file mode 100644 index 00000000..f15da5c3 --- /dev/null +++ b/pysite/apps/api/migrations/0031_nomination.py @@ -0,0 +1,26 @@ +# Generated by Django 2.1.5 on 2019-01-27 11:01 + +import pysite.apps.api.models +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0030_reminder'), + ] + + operations = [ + migrations.CreateModel( + name='Nomination', + fields=[ + ('active', models.BooleanField(default=True, help_text='Whether this nomination is still relevant.')), + ('reason', models.TextField(help_text='Why this user was nominated.')), + ('user', models.OneToOneField(help_text='The nominated user.', on_delete=django.db.models.deletion.CASCADE, primary_key=True, related_name='nomination', serialize=False, to='api.User')), + ('inserted_at', models.DateTimeField(auto_now_add=True, help_text='The creation date of this nomination.')), + ('author', models.ForeignKey(help_text='The staff member that nominated this user.', on_delete=django.db.models.deletion.CASCADE, related_name='nomination_set', to='api.User')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0032_botsetting.py b/pysite/apps/api/migrations/0032_botsetting.py new file mode 100644 index 00000000..b7916dff --- /dev/null +++ b/pysite/apps/api/migrations/0032_botsetting.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.5 on 2019-02-07 19:03 + +import pysite.apps.api.models +import django.contrib.postgres.fields.jsonb +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0031_nomination'), + ] + + operations = [ + migrations.CreateModel( + name='BotSetting', + fields=[ + ('name', models.CharField(max_length=50, primary_key=True, serialize=False)), + ('data', django.contrib.postgres.fields.jsonb.JSONField(help_text='The actual settings of this setting.')), + ], + bases=(pysite.apps.api.models.ModelReprMixin, models.Model), + ), + ] diff --git a/pysite/apps/api/migrations/0033_create_defcon_settings.py b/pysite/apps/api/migrations/0033_create_defcon_settings.py new file mode 100644 index 00000000..830f3fb0 --- /dev/null +++ b/pysite/apps/api/migrations/0033_create_defcon_settings.py @@ -0,0 +1,30 @@ +# Generated by Django 2.1.5 on 2019-02-18 19:30 + +from django.db import migrations + + +def up(apps, schema_editor): + BotSetting = apps.get_model('api', 'BotSetting') + setting = BotSetting( + name='defcon', + data={ + 'enabled': False, + 'days': 0 + } + ).save() + + +def down(apps, schema_editor): # pragma: no cover - not necessary to test + BotSetting = apps.get_model('api', 'BotSetting') + BotSetting.get(name='defcon').delete() + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0032_botsetting'), + ] + + operations = [ + migrations.RunPython(up, down) + ] diff --git a/pysite/apps/api/migrations/0034_add_botsetting_name_validator.py b/pysite/apps/api/migrations/0034_add_botsetting_name_validator.py new file mode 100644 index 00000000..79aee41e --- /dev/null +++ b/pysite/apps/api/migrations/0034_add_botsetting_name_validator.py @@ -0,0 +1,20 @@ +# Generated by Django 2.1.5 on 2019-02-18 19:41 + +import pysite.apps.api.validators +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0033_create_defcon_settings'), + ] + + operations = [ + migrations.AlterField( + model_name='botsetting', + name='name', + field=models.CharField(max_length=50, primary_key=True, serialize=False, validators=[ + pysite.apps.api.validators.validate_bot_setting_name]), + ), + ] diff --git a/pysite/apps/api/migrations/__init__.py b/pysite/apps/api/migrations/__init__.py new file mode 100644 index 00000000..e69de29b --- /dev/null +++ b/pysite/apps/api/migrations/__init__.py |