mirror of
https://github.com/QingdaoU/OnlineJudge.git
synced 2024-09-22 00:43:20 +00:00
Merge branch 'for-contest' of https://git.coding.net/virusdefender/qduoj into for-contest-dev
This commit is contained in:
commit
56c38f21ac
@ -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):
|
||||||
|
@ -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:
|
||||||
|
@ -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",
|
||||||
|
@ -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
|
||||||
|
@ -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
1
runJudge.sh
Executable file
@ -0,0 +1 @@
|
|||||||
|
nohup celery -A judge.judger_controller worker -l DEBUG &
|
@ -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/",
|
||||||
|
@ -69,7 +69,7 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</nav>
|
</nav>
|
||||||
{% else %}
|
{% else %}
|
||||||
<p>当前没有合适的比赛</p>
|
<p>当前没有合适的比赛,你可以尝试到<a href="/groups/">小组列表</a>申请加入一些小组,以便参加小组内部的比赛</p>
|
||||||
{% endif %}
|
{% endif %}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -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>
|
||||||
|
@ -97,7 +97,7 @@
|
|||||||
<a href="/submissions/">提交</a>
|
<a href="/submissions/">提交</a>
|
||||||
<a href="/contests/">比赛</a>
|
<a href="/contests/">比赛</a>
|
||||||
<a href="/groups/">小组</a>
|
<a href="/groups/">小组</a>
|
||||||
<a href="/about/">关于</a>
|
<a href="#">关于</a>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
@ -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">
|
||||||
|
Loading…
Reference in New Issue
Block a user