from .models import *
from rest_framework import serializers
from django.contrib.postgres.fields import ArrayField
class QuestionSerializer(serializers.ModelSerializer):
topcomment_listing = serializers.HyperlinkedIdentityField(view_name=’topcomment-list’)
class Meta:
model = Questions
fields = ['_id', 'prompt', 'shuffleoption', 'choices', 'choiceanswers',
'typename', 'topic', 'username', 'learningoutcome', 'feedback', 'draft', 'hidden']
lookup_field = '_id'
'''
#DIVIDER
class QuestionTagSerializer(serializers.HyperlinkedModelSerializer):
qid = serializers.HyperlinkedIdentityField(view_name="Quiz:QuestionByLearningOutcome-detail")
#DIVIDER
class Meta:
model = QuestionTags
fields = ['qid', 'tag']
'''
class UsersSerializer(serializers.ModelSerializer):
class Meta:
model = Users
fields = ['email', 'username', 'password', 'created_at', 'contributor', 'student', 'professor', 'admin']
lookup_field = 'username'
topcomment_listing = serializers.HyperlinkedIdentityField(view_name=’topcomment-list’)
class ReviewQuizSerializer(serializers.ModelSerializer):
, ‘topcomment_listing’]
class Meta:
model = ReviewQuiz
fields = ['_id', 'questions', 'answers', 'correct',
'total', 'username', 'topic', 'correctness']
class TopicsSerializer(serializers.ModelSerializer):
learningoutcomes = serializers.ListField(child=serializers.CharField())
tags = serializers.ListField(child=serializers.CharField())
class Meta:
model = Topics
fields = ['name', 'creator_id', 'tags', 'learningoutcomes']
class TagsSerializer(serializers.ModelSerializer):
class Meta:
model = Tags
fields = ['tag']
class QuestionLearningOutComeSerializer(serializers.ModelSerializer):
class Meta:
model = QuestionLearningOutCome
fields = ['qid', 'learningoutcome', 'topic']
class TopicLearningOutcomeSerializer(serializers.ModelSerializer):
class Meta:
model = TopicLearningOutcome
fields = ['topic', 'learningoutcome']
class QuestionCommentSerializer(serializers.ModelSerializer):
class Meta:
model = Questions
fields = ['_id', 'username']
lookup_field = '_id'
class TopCommentSerializer(serializers.ModelSerializer):
class Meta:
model = TopComment
fields = ['parentid', 'commentid', 'comment', 'user', 'date']
lookup_field = 'commentid'
class ChildCommentSerializer(serializers.ModelSerializer):
parentid = QuestionCommentSerializer() parentid = serializers.HyperlinkedRelatedField(queryset=Questions.objects.all(), view_name=’question-detail’, lookup_field=’_id’) user = serializers.HyperlinkedRelatedField(view_name=’users-detail’,read_only=True, lookup_field=’username’)
class Meta:
model = ChildComment
fields = ['parentid', 'id', 'comment', 'user', 'date']
class QuestionRatingsSerializer(serializers.ModelSerializer):
topcommentid = serializers.HyperlinkedRelatedField(view_name=’topcomment-detail’,read_only=True, lookup_field=’commentid’) user = serializers.HyperlinkedRelatedField(view_name=’users-detail’,read_only=True, lookup_field=’username’)
class Meta:
model = QuestionRatings
fields = ['qid', 'username', 'rating']