fix create a comment
This commit is contained in:
@@ -4,9 +4,6 @@ from utils.api import serializers
|
|||||||
|
|
||||||
class CreateCommentSerializer(serializers.Serializer):
|
class CreateCommentSerializer(serializers.Serializer):
|
||||||
problem_id = serializers.IntegerField()
|
problem_id = serializers.IntegerField()
|
||||||
submission_id = serializers.CharField(max_length=32, allow_null=True)
|
|
||||||
problem_solved = serializers.BooleanField()
|
|
||||||
language = serializers.CharField(max_length=10, allow_null=True)
|
|
||||||
description_rating = serializers.IntegerField()
|
description_rating = serializers.IntegerField()
|
||||||
difficulty_rating = serializers.IntegerField()
|
difficulty_rating = serializers.IntegerField()
|
||||||
comprehensive_rating = serializers.IntegerField()
|
comprehensive_rating = serializers.IntegerField()
|
||||||
|
|||||||
@@ -18,27 +18,32 @@ class CommentAPI(APIView):
|
|||||||
except Problem.DoesNotExist:
|
except Problem.DoesNotExist:
|
||||||
self.error("problem is not exists")
|
self.error("problem is not exists")
|
||||||
|
|
||||||
|
language = None
|
||||||
submission = None
|
submission = None
|
||||||
if data.problem_solved and data.submission_id:
|
problem_solved = False
|
||||||
try:
|
|
||||||
data.submission_id
|
|
||||||
submission = Submission.objects.select_related("problem").get(
|
|
||||||
id=data.submission_id,
|
|
||||||
problem_id=data.problem_id,
|
|
||||||
result=JudgeStatus.ACCEPTED,
|
|
||||||
)
|
|
||||||
except Submission.DoesNotExist:
|
|
||||||
self.error("submission is not exists or not accepted")
|
|
||||||
|
|
||||||
if not data.problem_solved:
|
submission = (
|
||||||
data.language = None
|
Submission.objects.select_related("problem")
|
||||||
|
.filter(
|
||||||
|
user_id=request.user.id,
|
||||||
|
problem_id=data.problem_id,
|
||||||
|
result=JudgeStatus.ACCEPTED,
|
||||||
|
)
|
||||||
|
.first()
|
||||||
|
)
|
||||||
|
|
||||||
|
if submission:
|
||||||
|
problem_solved = True
|
||||||
|
language = submission.language
|
||||||
|
if language == "Python3":
|
||||||
|
language = "Python"
|
||||||
|
|
||||||
Comment.objects.create(
|
Comment.objects.create(
|
||||||
user=request.user,
|
user=request.user,
|
||||||
problem=problem,
|
problem=problem,
|
||||||
submission=submission,
|
submission=submission,
|
||||||
problem_solved=data.problem_solved,
|
problem_solved=problem_solved,
|
||||||
language=data.language,
|
language=language,
|
||||||
description_rating=data.description_rating,
|
description_rating=data.description_rating,
|
||||||
difficulty_rating=data.difficulty_rating,
|
difficulty_rating=data.difficulty_rating,
|
||||||
comprehensive_rating=data.comprehensive_rating,
|
comprehensive_rating=data.comprehensive_rating,
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ from ..serializers import (
|
|||||||
ProblemListSerializer,
|
ProblemListSerializer,
|
||||||
)
|
)
|
||||||
from contest.models import ContestRuleType
|
from contest.models import ContestRuleType
|
||||||
from submission.models import JudgeStatus
|
|
||||||
|
|
||||||
|
|
||||||
class ProblemTagAPI(APIView):
|
class ProblemTagAPI(APIView):
|
||||||
|
|||||||
Reference in New Issue
Block a user