aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site/apps/api/viewsets
diff options
context:
space:
mode:
authorGravatar ks129 <[email protected]>2021-02-22 09:05:54 +0200
committerGravatar ks129 <[email protected]>2021-02-22 09:05:54 +0200
commit0ae69d9892db73029336e7b9ca95164dd80f828f (patch)
tree3304705767c9447afd091fb5ff45d8690b6f3f07 /pydis_site/apps/api/viewsets
parentMigrate PATCH request for 2-table nominations system (diff)
Disable creating multiple nomination entries of one nomination for one actor
Diffstat (limited to 'pydis_site/apps/api/viewsets')
-rw-r--r--pydis_site/apps/api/viewsets/bot/nomination.py10
1 files changed, 10 insertions, 0 deletions
diff --git a/pydis_site/apps/api/viewsets/bot/nomination.py b/pydis_site/apps/api/viewsets/bot/nomination.py
index 14dee9bc..81fb43f7 100644
--- a/pydis_site/apps/api/viewsets/bot/nomination.py
+++ b/pydis_site/apps/api/viewsets/bot/nomination.py
@@ -252,6 +252,16 @@ class NominationViewSet(CreateModelMixin, RetrieveModelMixin, ListModelMixin, Ge
data=ChainMap(request.data, {"nomination": nomination_filter[0].id})
)
entry_serializer.is_valid(raise_exception=True)
+
+ # Don't allow user creating many nomination entries for one nomination
+ if NominationEntry.objects.filter(
+ nomination_id=nomination_filter[0].id,
+ actor__id=entry_serializer.validated_data["actor"].id
+ ).exists():
+ raise ValidationError(
+ {'actor': 'This actor have already created nomination entry for this nomination.'}
+ )
+
NominationEntry.objects.create(**entry_serializer.validated_data)
data = NominationSerializer(nomination_filter[0]).data