aboutsummaryrefslogtreecommitdiffstats
path: root/pydis_site
diff options
context:
space:
mode:
authorGravatar SebastiaanZ <[email protected]>2019-04-24 22:25:30 +0200
committerGravatar SebastiaanZ <[email protected]>2019-04-24 22:25:30 +0200
commitabd77fdaa67d1686df64f82a919ee283b8baec9b (patch)
tree7f31e34b330febf2a78a8889f0322de46b9517d7 /pydis_site
parentMerge pull request #202 from gdude2002/django+200/wiki (diff)
Adding migration solution
Diffstat (limited to 'pydis_site')
-rw-r--r--pydis_site/apps/api/admin.py4
-rw-r--r--pydis_site/apps/api/migrations/0036_alter_nominations_api.py32
-rw-r--r--pydis_site/apps/api/models/bot/nomination.py10
-rw-r--r--pydis_site/apps/api/serializers.py4
-rw-r--r--pydis_site/apps/api/viewsets/bot/nomination.py2
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: