update submission serializers
This commit is contained in:
@@ -1,4 +1,4 @@
|
|||||||
from submission.serializers import SubmissionCodeSerializer
|
from submission.serializers import SubmissionListSerializer
|
||||||
from utils.api import serializers
|
from utils.api import serializers
|
||||||
from utils.api._serializers import UsernameSerializer
|
from utils.api._serializers import UsernameSerializer
|
||||||
|
|
||||||
@@ -40,24 +40,12 @@ class EditAnnouncementSerializer(serializers.Serializer):
|
|||||||
|
|
||||||
class MessageSerializer(serializers.Serializer):
|
class MessageSerializer(serializers.Serializer):
|
||||||
sender = UsernameSerializer()
|
sender = UsernameSerializer()
|
||||||
recipient = UsernameSerializer()
|
submission = SubmissionListSerializer()
|
||||||
submission = SubmissionCodeSerializer()
|
|
||||||
|
|
||||||
class Meta:
|
class Meta:
|
||||||
model = Message
|
model = Message
|
||||||
fields = "__all__"
|
fields = "__all__"
|
||||||
|
|
||||||
|
|
||||||
class MessageListSerializer(serializers.Serializer):
|
|
||||||
sender = UsernameSerializer()
|
|
||||||
recipient = UsernameSerializer()
|
|
||||||
submission = SubmissionCodeSerializer()
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Message
|
|
||||||
exclude = ["message"]
|
|
||||||
|
|
||||||
|
|
||||||
class CreateMessageSerializer(serializers.Serializer):
|
class CreateMessageSerializer(serializers.Serializer):
|
||||||
recipient = serializers.IntegerField()
|
recipient = serializers.IntegerField()
|
||||||
submission = serializers.CharField()
|
submission = serializers.CharField()
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ from utils.api import APIView
|
|||||||
from announcement.models import Announcement, Message
|
from announcement.models import Announcement, Message
|
||||||
from announcement.serializers import (AnnouncementSerializer,
|
from announcement.serializers import (AnnouncementSerializer,
|
||||||
AnnouncementListSerializer,
|
AnnouncementListSerializer,
|
||||||
CreateMessageSerializer, MessageListSerializer,
|
CreateMessageSerializer,
|
||||||
MessageSerializer)
|
MessageSerializer)
|
||||||
from utils.api.api import validate_serializer
|
from utils.api.api import validate_serializer
|
||||||
|
|
||||||
@@ -28,16 +28,8 @@ class AnnouncementAPI(APIView):
|
|||||||
class MessageAPI(APIView):
|
class MessageAPI(APIView):
|
||||||
@login_required
|
@login_required
|
||||||
def get(self, request):
|
def get(self, request):
|
||||||
message_id = request.GET.get("id")
|
messages = Message.objects.select_related("recipient","sender", "submission").filter(recipient=request.user)
|
||||||
if message_id:
|
return self.success(self.paginate_data(request, messages, MessageSerializer))
|
||||||
try:
|
|
||||||
message = Message.objects.filter(id=message_id, recipient=request.user)
|
|
||||||
return self.success(MessageSerializer(message).data)
|
|
||||||
except Message.DoesNotExist:
|
|
||||||
return self.error("Message does not exist")
|
|
||||||
else:
|
|
||||||
messages = Message.objects.select_related("recipient","sender", "submission").filter(recipient=request.user)
|
|
||||||
return self.success(self.paginate_data(request, messages, MessageListSerializer))
|
|
||||||
|
|
||||||
@validate_serializer(CreateMessageSerializer)
|
@validate_serializer(CreateMessageSerializer)
|
||||||
@super_admin_required
|
@super_admin_required
|
||||||
|
|||||||
@@ -31,13 +31,6 @@ class SubmissionSafeModelSerializer(serializers.ModelSerializer):
|
|||||||
model = Submission
|
model = Submission
|
||||||
exclude = ("info", "contest", "ip")
|
exclude = ("info", "contest", "ip")
|
||||||
|
|
||||||
class SubmissionCodeSerializer(serializers.Serializer):
|
|
||||||
problem = serializers.SlugRelatedField(read_only=True, slug_field="_id")
|
|
||||||
|
|
||||||
class Meta:
|
|
||||||
model = Submission
|
|
||||||
fields = ("id", "code", "problem", "result", "language")
|
|
||||||
|
|
||||||
|
|
||||||
class SubmissionListSerializer(serializers.ModelSerializer):
|
class SubmissionListSerializer(serializers.ModelSerializer):
|
||||||
problem = serializers.SlugRelatedField(read_only=True, slug_field="_id")
|
problem = serializers.SlugRelatedField(read_only=True, slug_field="_id")
|
||||||
|
|||||||
Reference in New Issue
Block a user