Merge branch 'develop' into feature/webapp-tests
This commit is contained in:
@@ -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
@@ -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
@@ -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')
|
||||
|
||||
@@ -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
@@ -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')
|
||||
|
||||
Reference in New Issue
Block a user