增加测试用例版本号,用于judger重新编译spj程序

This commit is contained in:
virusdefender
2016-04-06 13:49:37 +08:00
parent 7414c80ee6
commit 3d396cc8e4
5 changed files with 61 additions and 3 deletions

View File

@@ -0,0 +1,20 @@
# -*- coding: utf-8 -*-
# Generated by Django 1.9.1 on 2016-04-06 04:20
from __future__ import unicode_literals
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('contest', '0015_auto_20160404_1641'),
]
operations = [
migrations.AddField(
model_name='contestproblem',
name='spj_version',
field=models.CharField(blank=True, max_length=32, null=True),
),
]

View File

@@ -1,7 +1,8 @@
# coding=utf-8
import json
import os
import datetime
import redis
import hashlib
from django.shortcuts import render
from django.db import IntegrityError
@@ -176,6 +177,11 @@ class ContestAdminAPIView(APIView):
class ContestProblemAdminAPIView(APIView):
def _spj_version(self, code):
if code is None:
return None
return hashlib.md5(code.encode("utf-8")).hexdigest()
def post(self, request):
"""
比赛题目发布json api接口
@@ -205,6 +211,7 @@ class ContestProblemAdminAPIView(APIView):
spj=data["spj"],
spj_language=data["spj_language"],
spj_code=data["spj_code"],
spj_version=self._spj_version(data["spj_code"]),
created_by=request.user,
hint=data["hint"],
contest=contest,
@@ -228,6 +235,7 @@ class ContestProblemAdminAPIView(APIView):
contest_problem = ContestProblem.objects.get(id=data["id"])
except ContestProblem.DoesNotExist:
return error_response(u"该比赛题目不存在!")
contest = Contest.objects.get(id=contest_problem.contest_id)
if request.user.admin_type != SUPER_ADMIN and contest.created_by != request.user:
return error_response(u"比赛不存在")
@@ -241,6 +249,7 @@ class ContestProblemAdminAPIView(APIView):
contest_problem.spj = data["spj"]
contest_problem.spj_language = data["spj_language"]
contest_problem.spj_code = data["spj_code"]
contest_problem.spj_version = self._spj_version(data["spj_code"])
contest_problem.samples = json.dumps(data["samples"])
contest_problem.hint = data["hint"]
contest_problem.visible = data["visible"]