diff options
Diffstat (limited to 'pydis_site')
-rw-r--r-- | pydis_site/apps/api/admin.py | 4 | ||||
-rw-r--r-- | pydis_site/apps/api/migrations/0036_alter_nominations_api.py | 32 | ||||
-rw-r--r-- | pydis_site/apps/api/models/bot/nomination.py | 10 | ||||
-rw-r--r-- | pydis_site/apps/api/serializers.py | 4 | ||||
-rw-r--r-- | pydis_site/apps/api/viewsets/bot/nomination.py | 2 |
5 files changed, 48 insertions, 4 deletions
diff --git a/pydis_site/apps/api/admin.py b/pydis_site/apps/api/admin.py index 3ae7f3c5..1caa1d8b 100644 --- a/pydis_site/apps/api/admin.py +++ b/pydis_site/apps/api/admin.py @@ -3,7 +3,8 @@ from django.contrib import admin from .models import ( BotSetting, DeletedMessage, DocumentationLink, Infraction, - MessageDeletionContext, OffTopicChannelName, + MessageDeletionContext, Nomination, + OffTopicChannelName, Role, SnakeFact, SnakeIdiom, SnakeName, SpecialSnake, Tag, @@ -16,6 +17,7 @@ admin.site.register(DeletedMessage) admin.site.register(DocumentationLink) admin.site.register(Infraction) admin.site.register(MessageDeletionContext) +admin.site.register(Nomination) admin.site.register(OffTopicChannelName) admin.site.register(Role) admin.site.register(SnakeFact) diff --git a/pydis_site/apps/api/migrations/0036_alter_nominations_api.py b/pydis_site/apps/api/migrations/0036_alter_nominations_api.py new file mode 100644 index 00000000..6b50a2df --- /dev/null +++ b/pydis_site/apps/api/migrations/0036_alter_nominations_api.py @@ -0,0 +1,32 @@ +from django.db import migrations, models +import django.db.models.deletion + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0035_create_table_log_entry'), + ] + + operations = [ + migrations.AlterField( + model_name='nomination', + name='user', + field=models.OneToOneField(help_text='The nominated user.', on_delete=django.db.models.deletion.CASCADE, related_name='nomination', to='api.User'), + ), + migrations.AddField( + model_name='nomination', + name='id', + field=models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID'), + ), + migrations.AddField( + model_name='nomination', + name='unnominate_reason', + field=models.TextField(default='', help_text='Why the nomination was ended.'), + ), + migrations.AddField( + model_name='nomination', + name='unwatched_at', + field=models.DateTimeField(help_text='When the nomination was ended.', null=True), + ), + ] diff --git a/pydis_site/apps/api/models/bot/nomination.py b/pydis_site/apps/api/models/bot/nomination.py index 5ebb9759..9a9f31ff 100644 --- a/pydis_site/apps/api/models/bot/nomination.py +++ b/pydis_site/apps/api/models/bot/nomination.py @@ -24,10 +24,18 @@ class Nomination(ModelReprMixin, models.Model): User, on_delete=models.CASCADE, help_text="The nominated user.", - primary_key=True, related_name='nomination' ) inserted_at = models.DateTimeField( auto_now_add=True, help_text="The creation date of this nomination." ) + unnominate_reason = models.TextField( + help_text="Why the nomination was ended.", + default="" + ) + unwatched_at = models.DateTimeField( + auto_now_add=False, + help_text="When the nomination was ended.", + null=True + ) diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 8f045044..54f26466 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -178,5 +178,7 @@ class NominationSerializer(ModelSerializer): class Meta: model = Nomination - fields = ('active', 'author', 'reason', 'user', 'inserted_at') + fields = ( + 'id', 'active', 'author', 'reason', 'user', + 'inserted_at', 'unnominate_reason', 'unwatched_at') depth = 1 diff --git a/pydis_site/apps/api/viewsets/bot/nomination.py b/pydis_site/apps/api/viewsets/bot/nomination.py index 725ae176..9d3246c2 100644 --- a/pydis_site/apps/api/viewsets/bot/nomination.py +++ b/pydis_site/apps/api/viewsets/bot/nomination.py @@ -10,7 +10,7 @@ class NominationViewSet(ModelViewSet): # TODO: doc me serializer_class = NominationSerializer queryset = Nomination.objects.prefetch_related('author', 'user') - frozen_fields = ('author', 'inserted_at', 'user') + frozen_fields = ('id', 'author', 'inserted_at', 'user') def update(self, request, *args, **kwargs): for field in request.data: |