Merge branch 'for-contest' of https://git.coding.net/virusdefender/qduoj into for-contest-dev

This commit is contained in:
hohoTT 2015-09-04 20:01:41 +08:00
commit 56c38f21ac
12 changed files with 39 additions and 19 deletions

View File

@ -21,7 +21,7 @@ class EditGroupSerializer(serializers.Serializer):
class CreateJoinGroupRequestSerializer(serializers.Serializer): class CreateJoinGroupRequestSerializer(serializers.Serializer):
group_id = serializers.IntegerField() group_id = serializers.IntegerField()
message = serializers.CharField(max_length=30) message = serializers.CharField(max_length=30, required=False)
class JoinGroupRequestSerializer(serializers.ModelSerializer): class JoinGroupRequestSerializer(serializers.ModelSerializer):

View File

@ -183,6 +183,8 @@ class JoinGroupAPIView(APIView):
else: else:
return error_response(u"你已经是小组成员了") return error_response(u"你已经是小组成员了")
elif group.join_group_setting == 1: elif group.join_group_setting == 1:
if not data["message"]:
return error_response(u"message : 该字段是必填项。")
try: try:
JoinGroupRequest.objects.get(user=request.user, group=group, status=False) JoinGroupRequest.objects.get(user=request.user, group=group, status=False)
return error_response(u"你已经提交过申请了,请等待审核") return error_response(u"你已经提交过申请了,请等待审核")
@ -295,6 +297,7 @@ def group_page(request, group_id):
return error_page(request, u"小组不存在") return error_page(request, u"小组不存在")
return render(request, "oj/group/group.html", {"group": group}) return render(request, "oj/group/group.html", {"group": group})
@login_required @login_required
def application_list_page(request, group_id): def application_list_page(request, group_id):
try: try:
@ -305,6 +308,7 @@ def application_list_page(request, group_id):
return render(request, "oj/group/my_application_list.html", return render(request, "oj/group/my_application_list.html",
{"group": group, "applications": applications}) {"group": group, "applications": applications})
@login_required @login_required
def application_page(request, request_id): def application_page(request, request_id):
try: try:

View File

@ -17,7 +17,7 @@ judger_workspace = "/var/judger/"
# 这个是在docker 中访问数据库 ip 不一定和web服务器还有celery的一样 # 这个是在docker 中访问数据库 ip 不一定和web服务器还有celery的一样
submission_db = { submission_db = {
"host": "192.168.42.1", "host": "10.172.22.50",#"192.168.42.1",
"port": 3306, "port": 3306,
"db": "oj_submission", "db": "oj_submission",
"user": "root", "user": "root",

View File

@ -1,7 +1,9 @@
# coding=utf-8 # coding=utf-8
from __future__ import absolute_import from __future__ import absolute_import
from celery import Celery from celery import Celery, platforms
from .settings import redis_config from .settings import redis_config
app = Celery("judge", broker='redis://%s:%s/%s' % (redis_config["host"], redis_config["port"], redis_config["db"]), app = Celery("judge", broker='redis://%s:%s/%s' % (redis_config["host"], redis_config["port"], redis_config["db"]),
include=["judge.judger_controller.tasks"]) include=["judge.judger_controller.tasks"])
platforms.C_FORCE_ROOT =True

View File

@ -1,7 +1,7 @@
# coding=utf-8 # coding=utf-8
# 这个redis 是 celery 使用的,包括存储队列信息还有部分统计信息 # 这个redis 是 celery 使用的,包括存储队列信息还有部分统计信息
redis_config = { redis_config = {
"host": "121.42.32.129", "host": "127.0.0.1",
"port": 6379, "port": 6379,
"db": 0 "db": 0
} }
@ -9,14 +9,15 @@ redis_config = {
# 判题的 docker 容器的配置参数 # 判题的 docker 容器的配置参数
docker_config = { docker_config = {
"image_name": "3da0e526934e",
"image_name": " 819d3da18dc1",
"docker_path": "docker", "docker_path": "docker",
"shell": True "shell": True
} }
# 测试用例的路径,是主机上的实际路径 # 测试用例的路径,是主机上的实际路径
test_case_dir = "/var/mnt/source/test_case/" test_case_dir = "/root/test_case/"
# 源代码路径,也就是 manage.py 所在的实际路径 # 源代码路径,也就是 manage.py 所在的实际路径
source_code_dir = "/var/mnt/source/OnlineJudge/" source_code_dir = "/var/mnt/source/OnlineJudge/"

1
runJudge.sh Executable file
View File

@ -0,0 +1 @@
nohup celery -A judge.judger_controller worker -l DEBUG &

View File

@ -1,9 +1,14 @@
require(["jquery", "csrfToken", "bsAlert"], function ($, csrfTokenHeader, bsAlert) { require(["jquery", "csrfToken", "bsAlert"], function ($, csrfTokenHeader, bsAlert) {
$("#sendApplication").click(function (){ $("#sendApplication").click(function (){
var message = $("#applyMessage").val(); var message;
console.log(message); if ($("#applyMessage").length) {
message = $("#applyMessage").val();
if (!message)
bsAlert("提交失败,请填写申请信息!");
return false;
}
var groupId = window.location.pathname.split("/")[2]; var groupId = window.location.pathname.split("/")[2];
console.log(groupId);
data = {group_id: groupId,message:message} data = {group_id: groupId,message:message}
$.ajax({ $.ajax({
url: "/api/group_join/", url: "/api/group_join/",

View File

@ -69,7 +69,7 @@
</ul> </ul>
</nav> </nav>
{% else %} {% else %}
<p>当前没有合适的比赛</p> <p>当前没有合适的比赛,你可以尝试到<a href="/groups/">小组列表</a>申请加入一些小组,以便参加小组内部的比赛</p>
{% endif %} {% endif %}
</div> </div>
</div> </div>

View File

@ -4,8 +4,11 @@
<div class="container main"> <div class="container main">
<ul class="nav nav-tabs nav-tabs-google"> <ul class="nav nav-tabs nav-tabs-google">
<li role="presentation" class="active"> <li role="presentation" class="active">
<a href="/group/{{ group.id }}/">详细信息</a></li> <a href="/group/{{ group.id }}/">详细信息</a>
</li>
{% if group.join_group_setting %}
<li role="presentation"><a href="/group/{{ group.id }}/applications/">我的申请</a></li> <li role="presentation"><a href="/group/{{ group.id }}/applications/">我的申请</a></li>
{% endif %}
</ul> </ul>
<h2 class="text-center">{{ group.name }}</h2> <h2 class="text-center">{{ group.name }}</h2>
@ -30,7 +33,11 @@
</div> </div>
{% endif %} {% endif %}
<div class="form-group"> <div class="form-group">
<button class="btn btn-primary" id="sendApplication">申请加入</button> <button class="btn btn-primary" id="sendApplication">
{% if group.join_group_setting %}
申请
{% endif %}
加入</button>
</div> </div>
</div> </div>
</div> </div>

View File

@ -97,7 +97,7 @@
<a href="/submissions/">提交</a>&nbsp;&nbsp; <a href="/submissions/">提交</a>&nbsp;&nbsp;
<a href="/contests/">比赛</a>&nbsp;&nbsp; <a href="/contests/">比赛</a>&nbsp;&nbsp;
<a href="/groups/">小组</a>&nbsp;&nbsp; <a href="/groups/">小组</a>&nbsp;&nbsp;
<a href="/about/">关于</a> <a href="#">关于</a>
</div> </div>

View File

@ -46,7 +46,7 @@
<li><a href="/submissions/">提交</a></li> <li><a href="/submissions/">提交</a></li>
<li><a href="/contests/">比赛</a></li> <li><a href="/contests/">比赛</a></li>
<li><a href="/groups/">小组</a></li> <li><a href="/groups/">小组</a></li>
<li><a href="/about/">关于</a></li> <li><a href="#">关于</a></li>
</ul> </ul>
{% if request.user.is_authenticated %} {% if request.user.is_authenticated %}
<ul class="nav navbar-nav navbar-right"> <ul class="nav navbar-nav navbar-right">