add problem template field
This commit is contained in:
22
problem/migrations/0003_problem_template.py
Normal file
22
problem/migrations/0003_problem_template.py
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# -*- coding: utf-8 -*-
|
||||||
|
# Generated by Django 1.9.12 on 2017-02-05 08:02
|
||||||
|
from __future__ import unicode_literals
|
||||||
|
|
||||||
|
from django.db import migrations
|
||||||
|
import jsonfield.fields
|
||||||
|
|
||||||
|
|
||||||
|
class Migration(migrations.Migration):
|
||||||
|
|
||||||
|
dependencies = [
|
||||||
|
('problem', '0002_auto_20170202_0826'),
|
||||||
|
]
|
||||||
|
|
||||||
|
operations = [
|
||||||
|
migrations.AddField(
|
||||||
|
model_name='problem',
|
||||||
|
name='template',
|
||||||
|
field=jsonfield.fields.JSONField(default={}),
|
||||||
|
preserve_default=False,
|
||||||
|
),
|
||||||
|
]
|
||||||
@@ -29,6 +29,7 @@ class AbstractProblem(models.Model):
|
|||||||
test_case_score = JSONField()
|
test_case_score = JSONField()
|
||||||
hint = RichTextField(blank=True, null=True)
|
hint = RichTextField(blank=True, null=True)
|
||||||
languages = JSONField()
|
languages = JSONField()
|
||||||
|
template = JSONField()
|
||||||
create_time = models.DateTimeField(auto_now_add=True)
|
create_time = models.DateTimeField(auto_now_add=True)
|
||||||
# we can not use auto_now here
|
# we can not use auto_now here
|
||||||
last_update_time = models.DateTimeField(blank=True, null=True)
|
last_update_time = models.DateTimeField(blank=True, null=True)
|
||||||
|
|||||||
@@ -22,6 +22,10 @@ class CreateTestCaseScoreSerializer(serializers.Serializer):
|
|||||||
score = serializers.IntegerField(min_value=0)
|
score = serializers.IntegerField(min_value=0)
|
||||||
|
|
||||||
|
|
||||||
|
class CreateProblemCodeTemplateSerializer(serializers.Serializer):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
class Difficulty(object):
|
class Difficulty(object):
|
||||||
LOW = "Low"
|
LOW = "Low"
|
||||||
MID = "Mid"
|
MID = "Mid"
|
||||||
@@ -38,7 +42,8 @@ class CreateOrEditProblemSerializer(serializers.Serializer):
|
|||||||
test_case_score = serializers.ListField(child=CreateTestCaseScoreSerializer(), allow_empty=False)
|
test_case_score = serializers.ListField(child=CreateTestCaseScoreSerializer(), allow_empty=False)
|
||||||
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), allow_empty=False)
|
languages = serializers.MultipleChoiceField(choices=language_names)
|
||||||
|
template = serializers.DictField(child=serializers.CharField(min_length=1))
|
||||||
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, allow_null=True)
|
spj_language = serializers.ChoiceField(choices=spj_language_names, allow_blank=True, allow_null=True)
|
||||||
@@ -67,6 +72,7 @@ class ProblemSerializer(serializers.ModelSerializer):
|
|||||||
samples = serializers.JSONField()
|
samples = serializers.JSONField()
|
||||||
test_case_score = serializers.JSONField()
|
test_case_score = serializers.JSONField()
|
||||||
languages = serializers.JSONField()
|
languages = serializers.JSONField()
|
||||||
|
template = serializers.JSONField()
|
||||||
tags = serializers.SlugRelatedField(many=True, slug_field="name", read_only=True)
|
tags = serializers.SlugRelatedField(many=True, slug_field="name", read_only=True)
|
||||||
create_time = DateTimeTZField()
|
create_time = DateTimeTZField()
|
||||||
last_update_time = DateTimeTZField()
|
last_update_time = DateTimeTZField()
|
||||||
|
|||||||
Reference in New Issue
Block a user