diff options
Diffstat (limited to 'pydis_site/apps/api')
| -rw-r--r-- | pydis_site/apps/api/migrations/0074_voice_mute.py | 36 | ||||
| -rw-r--r-- | pydis_site/apps/api/migrations/0079_merge_20220125_2022.py | 14 | ||||
| -rw-r--r-- | pydis_site/apps/api/models/bot/infraction.py | 3 | ||||
| -rw-r--r-- | pydis_site/apps/api/serializers.py | 2 | 
4 files changed, 53 insertions, 2 deletions
| diff --git a/pydis_site/apps/api/migrations/0074_voice_mute.py b/pydis_site/apps/api/migrations/0074_voice_mute.py new file mode 100644 index 00000000..937557bc --- /dev/null +++ b/pydis_site/apps/api/migrations/0074_voice_mute.py @@ -0,0 +1,36 @@ +# Generated by Django 3.0.14 on 2021-10-09 18:52 +from django.apps.registry import Apps +from django.db import migrations, models +from django.db.backends.base.schema import BaseDatabaseSchemaEditor + + +def migrate_infractions(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) -> None: +    Infraction = apps.get_model("api", "Infraction") + +    for infraction in Infraction.objects.filter(type="voice_ban"): +        infraction.type = "voice_mute" +        infraction.save() + + +def unmigrate_infractions(apps: Apps, schema_editor: BaseDatabaseSchemaEditor) -> None: +    Infraction = apps.get_model("api", "Infraction") + +    for infraction in Infraction.objects.filter(type="voice_mute"): +        infraction.type = "voice_ban" +        infraction.save() + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('api', '0073_otn_allow_GT_and_LT'), +    ] + +    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'), ('voice_ban', 'Voice Ban'), ('voice_mute', 'Voice Mute')], help_text='The type of the infraction.', max_length=10), +        ), +        migrations.RunPython(migrate_infractions, unmigrate_infractions) +    ] diff --git a/pydis_site/apps/api/migrations/0079_merge_20220125_2022.py b/pydis_site/apps/api/migrations/0079_merge_20220125_2022.py new file mode 100644 index 00000000..9b9d9326 --- /dev/null +++ b/pydis_site/apps/api/migrations/0079_merge_20220125_2022.py @@ -0,0 +1,14 @@ +# Generated by Django 3.1.14 on 2022-01-25 20:22 + +from django.db import migrations + + +class Migration(migrations.Migration): + +    dependencies = [ +        ('api', '0078_merge_20211213_0552'), +        ('api', '0074_voice_mute'), +    ] + +    operations = [ +    ] diff --git a/pydis_site/apps/api/models/bot/infraction.py b/pydis_site/apps/api/models/bot/infraction.py index 913631d4..c9303024 100644 --- a/pydis_site/apps/api/models/bot/infraction.py +++ b/pydis_site/apps/api/models/bot/infraction.py @@ -17,6 +17,7 @@ class Infraction(ModelReprMixin, models.Model):          ("ban", "Ban"),          ("superstar", "Superstar"),          ("voice_ban", "Voice Ban"), +        ("voice_mute", "Voice Mute"),      )      inserted_at = models.DateTimeField(          default=timezone.now, @@ -45,7 +46,7 @@ class Infraction(ModelReprMixin, models.Model):          help_text="The user which applied the infraction."      )      type = models.CharField( -        max_length=9, +        max_length=10,          choices=TYPE_CHOICES,          help_text="The type of the infraction."      ) diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index ac05ebd4..4a702d61 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -177,7 +177,7 @@ class InfractionSerializer(ModelSerializer):              raise ValidationError({'expires_at': [f'{infr_type} infractions cannot expire.']})          hidden = attrs.get('hidden') -        if hidden and infr_type in ('superstar', 'warning', 'voice_ban'): +        if hidden and infr_type in ('superstar', 'warning', 'voice_ban', 'voice_mute'):              raise ValidationError({'hidden': [f'{infr_type} infractions cannot be hidden.']})          if not hidden and infr_type in ('note', ): | 
