diff options
author | 2019-10-08 01:22:15 +0200 | |
---|---|---|
committer | 2019-10-08 01:22:15 +0200 | |
commit | 0d383cbe925fdec97cb678c0168ecf7e90d3d729 (patch) | |
tree | 2aa529c345ffe5000452c78aedc19867b227a43c /pydis_site/apps/api/migrations | |
parent | Migrate undesirable active infraction to inactive (diff) |
Prevent double active infractions with constraint
https://github.com/python-discord/site/issues/273
This commits adds a UniqueConstraint for active infractions on a
combination of the `user` and `type` field. This means that a user
can only have one active infraction of a given type in the database
at any time.
I've also added tests to make sure that this behaves as expected.
Diffstat (limited to 'pydis_site/apps/api/migrations')
-rw-r--r-- | pydis_site/apps/api/migrations/0045_add_infractions_unique_constraints_active.py | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/pydis_site/apps/api/migrations/0045_add_infractions_unique_constraints_active.py b/pydis_site/apps/api/migrations/0045_add_infractions_unique_constraints_active.py new file mode 100644 index 00000000..bacb56b8 --- /dev/null +++ b/pydis_site/apps/api/migrations/0045_add_infractions_unique_constraints_active.py @@ -0,0 +1,17 @@ +# Generated by Django 2.2.6 on 2019-10-07 18:27 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0044_active_infractions_migration'), + ] + + operations = [ + migrations.AddConstraint( + model_name='infraction', + constraint=models.UniqueConstraint(condition=models.Q(active=True), fields=('user', 'type'), name='unique_active_infraction_per_type_per_user'), + ), + ] |