update submission serializers

This commit is contained in:
2024-06-25 14:44:02 +00:00
parent 32ee17b566
commit 8e659f7931
3 changed files with 5 additions and 32 deletions

View File

@@ -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()

View File

@@ -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

View File

@@ -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")