50 lines
1.4 KiB
Python
50 lines
1.4 KiB
Python
from rest_framework import serializers
|
|
from webapp.models import *
|
|
|
|
|
|
class SignupFormSerializer(serializers.HyperlinkedModelSerializer):
|
|
|
|
class Meta:
|
|
model = SignupForm
|
|
fields = ('id', 'start', 'end', 'questions')
|
|
|
|
|
|
class EventSerializer(serializers.HyperlinkedModelSerializer):
|
|
signupForm = SignupFormSerializer(many=True, read_only=True, required=False)
|
|
signup_id = serializers.PrimaryKeyRelatedField(
|
|
many=True,
|
|
source="signupForm",
|
|
queryset=SignupForm.objects.all())
|
|
|
|
class Meta:
|
|
model = Event
|
|
fields = ('id', 'tags', 'visible', 'title', 'description',
|
|
'content', 'start_time', 'end_time', 'signup_id', 'signupForm')
|
|
depth = 1
|
|
|
|
def create(self, validated_data):
|
|
signupForms = validated_data.pop('signupForm')
|
|
event = Event.objects.create(**validated_data)
|
|
for signupForm in signupForms:
|
|
event.signupForm.add(signupForm)
|
|
event.save()
|
|
return event
|
|
|
|
|
|
class SignupSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Signup
|
|
fields = ('id', 'signupForm', 'answer')
|
|
extra_kwargs = {
|
|
'url': {
|
|
'view_name': 'signup-detail',
|
|
}
|
|
}
|
|
|
|
|
|
class FeedSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Feed
|
|
fields = ('id', 'tags', 'visible', 'title', 'description',
|
|
'content', 'publish_time', 'autohide')
|