Merge branch 'develop' into feature/webapp-tests

This commit is contained in:
Aarni Halinen
2019-11-10 21:38:07 +02:00
5 changed files with 31 additions and 24 deletions
@@ -0,0 +1,19 @@
# Generated by Django 2.1.5 on 2019-11-10 19:17
import django.contrib.postgres.fields.jsonb
from django.db import migrations
class Migration(migrations.Migration):
dependencies = [
('webapp', '0061_auto_20191110_2024'),
]
operations = [
migrations.AlterField(
model_name='templatequestion',
name='question',
field=django.contrib.postgres.fields.jsonb.JSONField(),
),
]
+1 -2
View File
@@ -77,9 +77,8 @@ class Event(BaseFeed):
class TemplateQuestion(models.Model):
"""Stores template questions for signup forms as JSONB"""
# question = JSONField()
name = models.CharField(max_length=255)
question = models.CharField(max_length=255)
question = JSONField()
def __str__(self):
return _('Template questions: {}').format(self.name)
+6 -18
View File
@@ -1,21 +1,14 @@
from rest_framework import serializers
from webapp.models import *
import json
class SignupFormSerializer(serializers.ModelSerializer):
class SignupFormSerializer(serializers.HyperlinkedModelSerializer):
questions = serializers.JSONField(binary=True)
class Meta:
model = SignupForm
fields = ('id', 'title', 'start_time', 'end_time', 'questions')
def create(self, validated_data):
validated_data["questions"] = json.loads(validated_data["questions"])
return super().create(validated_data)
def update(self, instance, validated_data):
validated_data["questions"] = json.loads(validated_data["questions"])
return super().update(instance, validated_data)
class EventSerializer(serializers.ModelSerializer):
signupForm = SignupFormSerializer(many=True, read_only=True, required=False)
@@ -63,6 +56,7 @@ class SignupSerializer(serializers.ModelSerializer):
source="signupForm",
queryset=SignupForm.objects.all()
)
answer = serializers.JSONField(binary=True)
class Meta:
model = Signup
@@ -73,16 +67,10 @@ class SignupSerializer(serializers.ModelSerializer):
}
}
def create(self, validated_data):
validated_data["answer"] = json.loads(validated_data["answer"])
return super().create(validated_data)
def update(self, instance, validated_data):
validated_data["answer"] = json.loads(validated_data["answer"])
return super().update(instance, validated_data)
class SavedQuestionsSerializer(serializers.ModelSerializer):
question = serializers.JSONField(binary=True)
class Meta:
model = TemplateQuestion
fields = ('id', 'name', 'question')
+1 -1
View File
@@ -3,7 +3,7 @@ from django.utils import timezone
from webapp.utils import month_from_now
ALL_QUESTION_TYPES = [
{"id": "j5CeRZDvl", "name": "Asd", "type": "text", "options": []}, {"id": "RHJhSoaLD", "name": "Asd2", "type": "radiobutton", "options": ["Yes", "no", "maybe"]}, {"id": "i10d426d5", "name": "Asd3", "type": "checkbox", "options": ["A", "B", "C"]}
]
+4 -3
View File
@@ -55,9 +55,10 @@ class SignupFormViewSet(viewsets.ModelViewSet):
queryset = SignupForm.objects.all()
serializer_class = SignupFormSerializer
permission_classes = [IsAuthenticatedOrReadOnly]
filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
filter_fields = '__all__'
search_fields = '__all__'
# Throws errors with JSONFIeld. Modify __all__ to not use JSONField if filters are enadbled
# filter_backends = (filters.DjangoFilterBackend, SearchFilter, OrderingFilter)
# filter_fields = '__all__'
# search_fields = '__all__'
def get_queryset(self):
return SignupForm.objects.filter(visible=True, end_time__gt=timezone.now()).order_by('start_time')