mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-21 08:23:20 +00:00
add edit problem serializer
This commit is contained in:
parent
920eeb639c
commit
ffbab80132
@ -27,7 +27,7 @@ class Difficulty(object):
|
|||||||
HIGH = "High"
|
HIGH = "High"
|
||||||
|
|
||||||
|
|
||||||
class CreateProblemSerializer(serializers.Serializer):
|
class CreateOrEditProblemSerializer(serializers.Serializer):
|
||||||
title = serializers.CharField(max_length=128)
|
title = serializers.CharField(max_length=128)
|
||||||
description = serializers.CharField()
|
description = serializers.CharField()
|
||||||
input_description = serializers.CharField()
|
input_description = serializers.CharField()
|
||||||
@ -35,18 +35,26 @@ class CreateProblemSerializer(serializers.Serializer):
|
|||||||
samples = serializers.ListField(child=CreateSampleSerializer())
|
samples = serializers.ListField(child=CreateSampleSerializer())
|
||||||
test_case_id = serializers.CharField(max_length=32)
|
test_case_id = serializers.CharField(max_length=32)
|
||||||
test_case_score = serializers.ListField(child=CreateTestCaseScoreSerializer())
|
test_case_score = serializers.ListField(child=CreateTestCaseScoreSerializer())
|
||||||
hint = serializers.CharField(allow_blank=True)
|
|
||||||
time_limit = serializers.IntegerField(min_value=1, max_value=1000 * 60)
|
time_limit = serializers.IntegerField(min_value=1, max_value=1000 * 60)
|
||||||
memory_limit = serializers.IntegerField(min_value=1, max_value=1024)
|
memory_limit = serializers.IntegerField(min_value=1, max_value=1024)
|
||||||
languages = serializers.ListField(child=serializers.ChoiceField(choices=language_names))
|
languages = serializers.ListField(child=serializers.ChoiceField(choices=language_names))
|
||||||
rule_type = serializers.ChoiceField(choices=[ProblemRuleType.ACM, ProblemRuleType.OI])
|
rule_type = serializers.ChoiceField(choices=[ProblemRuleType.ACM, ProblemRuleType.OI])
|
||||||
spj = serializers.BooleanField()
|
spj = serializers.BooleanField()
|
||||||
spj_language = serializers.ChoiceField(choices=spj_language_names, allow_blank=True)
|
spj_language = serializers.ChoiceField(choices=spj_language_names, allow_blank=True, allow_null=True)
|
||||||
spj_code = serializers.CharField(allow_blank=True)
|
spj_code = serializers.CharField(allow_blank=True, allow_null=True)
|
||||||
visible = serializers.BooleanField()
|
visible = serializers.BooleanField()
|
||||||
difficulty = serializers.ChoiceField(choices=[Difficulty.LOW, Difficulty.MID, Difficulty.HIGH])
|
difficulty = serializers.ChoiceField(choices=[Difficulty.LOW, Difficulty.MID, Difficulty.HIGH])
|
||||||
tags = serializers.ListField(child=serializers.CharField(max_length=32))
|
tags = serializers.ListField(child=serializers.CharField(max_length=32))
|
||||||
source = serializers.CharField(max_length=256, allow_blank=True)
|
hint = serializers.CharField(allow_blank=True, allow_null=True)
|
||||||
|
source = serializers.CharField(max_length=256, allow_blank=True, allow_null=True)
|
||||||
|
|
||||||
|
|
||||||
|
class CreateProblemSerializer(CreateOrEditProblemSerializer):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class EditProblemSerializer(CreateOrEditProblemSerializer):
|
||||||
|
id = serializers.IntegerField()
|
||||||
|
|
||||||
|
|
||||||
class TagSerializer(serializers.ModelSerializer):
|
class TagSerializer(serializers.ModelSerializer):
|
||||||
|
@ -11,7 +11,7 @@ from utils.shortcuts import rand_str
|
|||||||
|
|
||||||
from ..models import Problem, ProblemRuleType, ProblemTag
|
from ..models import Problem, ProblemRuleType, ProblemTag
|
||||||
from ..serializers import (CreateProblemSerializer, ProblemSerializer,
|
from ..serializers import (CreateProblemSerializer, ProblemSerializer,
|
||||||
TestCaseUploadForm)
|
TestCaseUploadForm, EditProblemSerializer)
|
||||||
|
|
||||||
|
|
||||||
class TestCaseUploadAPI(CSRFExemptAPIView):
|
class TestCaseUploadAPI(CSRFExemptAPIView):
|
||||||
@ -159,3 +159,7 @@ class ProblemAPI(APIView):
|
|||||||
if request.user.is_admin_role():
|
if request.user.is_admin_role():
|
||||||
problems = problems.filter(created_by=request.user)
|
problems = problems.filter(created_by=request.user)
|
||||||
return self.success(self.paginate_data(request, problems, ProblemSerializer))
|
return self.success(self.paginate_data(request, problems, ProblemSerializer))
|
||||||
|
|
||||||
|
@validate_serializer(EditProblemSerializer)
|
||||||
|
def put(self, request):
|
||||||
|
return self.success()
|
||||||
|
Loading…
Reference in New Issue
Block a user