From 0766dab8306d24b22550e1a4a054ff3f2956a0b1 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Mon, 22 Oct 2018 11:22:48 +0100 Subject: Added special snakes api --- api/models.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) (limited to 'api/models.py') diff --git a/api/models.py b/api/models.py index bb520f8c..6571d16a 100644 --- a/api/models.py +++ b/api/models.py @@ -103,6 +103,18 @@ class SnakeName(ModelReprMixin, models.Model): return f"{self.name} ({self.scientific})" +class SpecialSnake(ModelReprMixin, models.Model): + """A special snake used by the bot's snake cog.""" + + name = models.CharField( + max_length=140, primary_key=True + ) + info = models.TextField() + + def __str__(self): + return self.name + + class Role(ModelReprMixin, models.Model): """A role on our Discord server.""" -- cgit v1.2.3 From da5780d914d152187f395ffce3fec26106e1888e Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Tue, 23 Oct 2018 12:58:23 +0100 Subject: Added image field --- api/migrations/0013_specialsnake_image.py | 21 +++++++++++++++++++++ api/models.py | 1 + api/serializers.py | 4 ++-- 3 files changed, 24 insertions(+), 2 deletions(-) create mode 100644 api/migrations/0013_specialsnake_image.py (limited to 'api/models.py') diff --git a/api/migrations/0013_specialsnake_image.py b/api/migrations/0013_specialsnake_image.py new file mode 100644 index 00000000..a0d0d318 --- /dev/null +++ b/api/migrations/0013_specialsnake_image.py @@ -0,0 +1,21 @@ +# Generated by Django 2.1.2 on 2018-10-23 11:51 + +import datetime +from django.db import migrations, models +from django.utils.timezone import utc + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0012_specialsnake'), + ] + + operations = [ + migrations.AddField( + model_name='specialsnake', + name='image', + field=models.URLField(default=datetime.datetime(2018, 10, 23, 11, 51, 23, 703868, tzinfo=utc)), + preserve_default=False, + ), + ] diff --git a/api/models.py b/api/models.py index 6571d16a..2ba50adf 100644 --- a/api/models.py +++ b/api/models.py @@ -110,6 +110,7 @@ class SpecialSnake(ModelReprMixin, models.Model): max_length=140, primary_key=True ) info = models.TextField() + image = models.URLField() def __str__(self): return self.name diff --git a/api/serializers.py b/api/serializers.py index 683a6df5..6c878c5d 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -40,13 +40,13 @@ class SnakeIdiomSerializer(ModelSerializer): class SnakeNameSerializer(ModelSerializer): class Meta: model = SnakeName - fields = ('name', 'scientific') + fields = ('name', 'scientific',) class SpecialSnakeSerializer(ModelSerializer): class Meta: model = SpecialSnake - fields = ('name', 'info',) + fields = ('name', 'image', 'info',) class RoleSerializer(ModelSerializer): -- cgit v1.2.3 From aebf48cff6e41eb6d8dde695b10380da4e57d733 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Thu, 25 Oct 2018 21:02:42 +0100 Subject: code presentasion and help text on models --- api/migrations/0014_auto_20181025_1959.py | 23 +++++++++++++++++++++++ api/models.py | 12 ++++++++---- api/tests/test_models.py | 3 ++- api/viewsets.py | 11 ++++++----- 4 files changed, 39 insertions(+), 10 deletions(-) create mode 100644 api/migrations/0014_auto_20181025_1959.py (limited to 'api/models.py') diff --git a/api/migrations/0014_auto_20181025_1959.py b/api/migrations/0014_auto_20181025_1959.py new file mode 100644 index 00000000..3599d2cd --- /dev/null +++ b/api/migrations/0014_auto_20181025_1959.py @@ -0,0 +1,23 @@ +# Generated by Django 2.1.2 on 2018-10-25 19:59 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0013_specialsnake_image'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='info', + field=models.TextField(help_text='Info about a special snake.'), + ), + migrations.AlterField( + model_name='specialsnake', + name='name', + field=models.CharField(help_text='A special snake name.', max_length=140, primary_key=True, serialize=False), + ), + ] diff --git a/api/models.py b/api/models.py index 2ba50adf..eb9c2e16 100644 --- a/api/models.py +++ b/api/models.py @@ -104,12 +104,16 @@ class SnakeName(ModelReprMixin, models.Model): class SpecialSnake(ModelReprMixin, models.Model): - """A special snake used by the bot's snake cog.""" + """A special snake's name, info and image from our database used by the bot's snake cog.""" name = models.CharField( - max_length=140, primary_key=True - ) - info = models.TextField() + max_length=140, + primary_key=True, + help_text='A special snake name.' + ) + info = models.TextField( + help_text='Info about a special snake.' + ) image = models.URLField() def __str__(self): diff --git a/api/tests/test_models.py b/api/tests/test_models.py index 7dea68b5..a1561a07 100644 --- a/api/tests/test_models.py +++ b/api/tests/test_models.py @@ -34,7 +34,8 @@ class StringDunderMethodTests(SimpleTestCase): SnakeIdiom(idiom='snake snacks'), SnakeName(name='python', scientific='3'), SpecialSnake(name='Pythagoras Pythonista', - info='The only python snake that is born a triangle'), + info='The only python snake that is born a triangle' + ), Role( id=5, name='test role', colour=0x5, permissions=0 diff --git a/api/viewsets.py b/api/viewsets.py index 70fc96f8..08660810 100644 --- a/api/viewsets.py +++ b/api/viewsets.py @@ -20,7 +20,8 @@ from .serializers import ( DocumentationLinkSerializer, MemberSerializer, OffTopicChannelNameSerializer, SnakeFactSerializer, SnakeIdiomSerializer, - SnakeNameSerializer, SpecialSnakeSerializer, TagSerializer + SnakeNameSerializer, SpecialSnakeSerializer, + TagSerializer ) @@ -294,10 +295,10 @@ class SpecialSnakeViewSet(ListModelMixin, GenericViewSet): #### Response Format >>> [ ... { - ... 'name':'Snakky sneakatus', - ... 'info':'Scary snek', - ... 'image':'https://discordapp.com/assets/53ef346458017da2062aca5c7955946b.svg' - ... }, + ... 'name': 'Snakky sneakatus', + ... 'info': 'Scary snek', + ... 'image': 'https://discordapp.com/assets/53ef346458017da2062aca5c7955946b.svg' + ... } ... ] #### Status codes -- cgit v1.2.3 From d3268527642df788531e3cd07a3e293b6d4affc7 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Sat, 27 Oct 2018 17:27:11 +0100 Subject: Changed image urlfield to ArrayField --- api/migrations/0015_auto_20181027_1617.py | 19 +++++++++++++++++++ api/migrations/0016_auto_20181027_1619.py | 18 ++++++++++++++++++ api/models.py | 4 +++- api/serializers.py | 2 +- 4 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 api/migrations/0015_auto_20181027_1617.py create mode 100644 api/migrations/0016_auto_20181027_1619.py (limited to 'api/models.py') diff --git a/api/migrations/0015_auto_20181027_1617.py b/api/migrations/0015_auto_20181027_1617.py new file mode 100644 index 00000000..8973ff6d --- /dev/null +++ b/api/migrations/0015_auto_20181027_1617.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:17 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0014_auto_20181025_1959'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='image', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), size=None), + ), + ] diff --git a/api/migrations/0016_auto_20181027_1619.py b/api/migrations/0016_auto_20181027_1619.py new file mode 100644 index 00000000..b8bdfb16 --- /dev/null +++ b/api/migrations/0016_auto_20181027_1619.py @@ -0,0 +1,18 @@ +# Generated by Django 2.1.2 on 2018-10-27 16:19 + +from django.db import migrations + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0015_auto_20181027_1617'), + ] + + operations = [ + migrations.RenameField( + model_name='specialsnake', + old_name='image', + new_name='images', + ), + ] diff --git a/api/models.py b/api/models.py index eb9c2e16..bc778330 100644 --- a/api/models.py +++ b/api/models.py @@ -114,7 +114,9 @@ class SpecialSnake(ModelReprMixin, models.Model): info = models.TextField( help_text='Info about a special snake.' ) - image = models.URLField() + images = pgfields.ArrayField( + models.URLField() + ) def __str__(self): return self.name diff --git a/api/serializers.py b/api/serializers.py index 3a379771..f8d15bbf 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -46,7 +46,7 @@ class SnakeNameSerializer(ModelSerializer): class SpecialSnakeSerializer(ModelSerializer): class Meta: model = SpecialSnake - fields = ('name', 'image', 'info') + fields = ('name', 'images', 'info') class RoleSerializer(ModelSerializer): -- cgit v1.2.3 From 342dfc39e4240c5f061abacdba2f7e301b33cbe6 Mon Sep 17 00:00:00 2001 From: Hasan-Ahmad Date: Mon, 29 Oct 2018 19:22:01 +0000 Subject: Added help text --- api/migrations/0017_auto_20181029_1921.py | 19 +++++++++++++++++++ api/models.py | 3 ++- 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 api/migrations/0017_auto_20181029_1921.py (limited to 'api/models.py') diff --git a/api/migrations/0017_auto_20181029_1921.py b/api/migrations/0017_auto_20181029_1921.py new file mode 100644 index 00000000..012bda61 --- /dev/null +++ b/api/migrations/0017_auto_20181029_1921.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.2 on 2018-10-29 19:21 + +import django.contrib.postgres.fields +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0016_auto_20181027_1619'), + ] + + operations = [ + migrations.AlterField( + model_name='specialsnake', + name='images', + field=django.contrib.postgres.fields.ArrayField(base_field=models.URLField(), help_text='Images displaying this special snake.', size=None), + ), + ] diff --git a/api/models.py b/api/models.py index bc778330..9990e266 100644 --- a/api/models.py +++ b/api/models.py @@ -115,7 +115,8 @@ class SpecialSnake(ModelReprMixin, models.Model): help_text='Info about a special snake.' ) images = pgfields.ArrayField( - models.URLField() + models.URLField(), + help_text='Images displaying this special snake.' ) def __str__(self): -- cgit v1.2.3