diff --git a/group/serializers.py b/group/serializers.py index 065baf98..402ea5b9 100644 --- a/group/serializers.py +++ b/group/serializers.py @@ -21,7 +21,7 @@ class EditGroupSerializer(serializers.Serializer): class CreateJoinGroupRequestSerializer(serializers.Serializer): group_id = serializers.IntegerField() - message = serializers.CharField(max_length=30) + message = serializers.CharField(max_length=30, required=False) class JoinGroupRequestSerializer(serializers.ModelSerializer): diff --git a/group/views.py b/group/views.py index d75aa98f..2929706c 100644 --- a/group/views.py +++ b/group/views.py @@ -183,6 +183,8 @@ class JoinGroupAPIView(APIView): else: return error_response(u"你已经是小组成员了") elif group.join_group_setting == 1: + if not data["message"]: + return error_response(u"message : 该字段是必填项。") try: JoinGroupRequest.objects.get(user=request.user, group=group, status=False) return error_response(u"你已经提交过申请了,请等待审核") @@ -295,6 +297,7 @@ def group_page(request, group_id): return error_page(request, u"小组不存在") return render(request, "oj/group/group.html", {"group": group}) + @login_required def application_list_page(request, group_id): try: @@ -305,6 +308,7 @@ def application_list_page(request, group_id): return render(request, "oj/group/my_application_list.html", {"group": group, "applications": applications}) + @login_required def application_page(request, request_id): try: @@ -312,4 +316,4 @@ def application_page(request, request_id): except JoinGroupRequest.DoesNotExist: return error_page(request, u"申请不存在") return render(request, "oj/group/my_application.html", - {"application": application}) \ No newline at end of file + {"application": application}) diff --git a/judge/judger/client.py b/judge/judger/client.py index fc7d0b90..4b0ec026 100644 --- a/judge/judger/client.py +++ b/judge/judger/client.py @@ -170,4 +170,4 @@ class JudgeClient(object): # http://stackoverflow.com/questions/25382455/python-notimplementederror-pool-objects-cannot-be-passed-between-processes self_dict = self.__dict__.copy() del self_dict['_pool'] - return self_dict \ No newline at end of file + return self_dict diff --git a/judge/judger/settings.py b/judge/judger/settings.py index 1f15b96b..5f8d7cea 100644 --- a/judge/judger/settings.py +++ b/judge/judger/settings.py @@ -17,7 +17,7 @@ judger_workspace = "/var/judger/" # 这个是在docker 中访问数据库 ip 不一定和web服务器还有celery的一样 submission_db = { - "host": "192.168.42.1", + "host": "10.172.22.50",#"192.168.42.1", "port": 3306, "db": "oj_submission", "user": "root", diff --git a/judge/judger_controller/celery.py b/judge/judger_controller/celery.py index 18cf8867..4c64ab04 100644 --- a/judge/judger_controller/celery.py +++ b/judge/judger_controller/celery.py @@ -1,7 +1,9 @@ # coding=utf-8 from __future__ import absolute_import -from celery import Celery +from celery import Celery, platforms from .settings import redis_config app = Celery("judge", broker='redis://%s:%s/%s' % (redis_config["host"], redis_config["port"], redis_config["db"]), - include=["judge.judger_controller.tasks"]) \ No newline at end of file + include=["judge.judger_controller.tasks"]) + +platforms.C_FORCE_ROOT =True diff --git a/judge/judger_controller/settings.py b/judge/judger_controller/settings.py index aff08b18..e8a7558e 100644 --- a/judge/judger_controller/settings.py +++ b/judge/judger_controller/settings.py @@ -1,7 +1,7 @@ # coding=utf-8 # 这个redis 是 celery 使用的,包括存储队列信息还有部分统计信息 redis_config = { - "host": "121.42.32.129", + "host": "127.0.0.1", "port": 6379, "db": 0 } @@ -9,14 +9,15 @@ redis_config = { # 判题的 docker 容器的配置参数 docker_config = { - "image_name": "3da0e526934e", + + "image_name": " 819d3da18dc1", "docker_path": "docker", "shell": True } # 测试用例的路径,是主机上的实际路径 -test_case_dir = "/var/mnt/source/test_case/" +test_case_dir = "/root/test_case/" # 源代码路径,也就是 manage.py 所在的实际路径 source_code_dir = "/var/mnt/source/OnlineJudge/" @@ -28,4 +29,4 @@ submission_db = { "db": "oj_submission", "user": "root", "password": "root" -} \ No newline at end of file +} diff --git a/runJudge.sh b/runJudge.sh new file mode 100755 index 00000000..ba25da83 --- /dev/null +++ b/runJudge.sh @@ -0,0 +1 @@ +nohup celery -A judge.judger_controller worker -l DEBUG & diff --git a/static/src/js/app/oj/group/group.js b/static/src/js/app/oj/group/group.js index 918b6612..c36448ec 100644 --- a/static/src/js/app/oj/group/group.js +++ b/static/src/js/app/oj/group/group.js @@ -1,9 +1,14 @@ require(["jquery", "csrfToken", "bsAlert"], function ($, csrfTokenHeader, bsAlert) { $("#sendApplication").click(function (){ - var message = $("#applyMessage").val(); - console.log(message); + var message; + if ($("#applyMessage").length) { + message = $("#applyMessage").val(); + if (!message) + bsAlert("提交失败,请填写申请信息!"); + return false; + } + var groupId = window.location.pathname.split("/")[2]; - console.log(groupId); data = {group_id: groupId,message:message} $.ajax({ url: "/api/group_join/", diff --git a/template/src/oj/contest/contest_list.html b/template/src/oj/contest/contest_list.html index 68d939b7..25b8eae9 100644 --- a/template/src/oj/contest/contest_list.html +++ b/template/src/oj/contest/contest_list.html @@ -69,7 +69,7 @@ {% else %} -

当前没有合适的比赛

+

当前没有合适的比赛,你可以尝试到小组列表申请加入一些小组,以便参加小组内部的比赛

{% endif %} diff --git a/template/src/oj/group/group.html b/template/src/oj/group/group.html index 1686a4cb..4fe3a00c 100644 --- a/template/src/oj/group/group.html +++ b/template/src/oj/group/group.html @@ -4,8 +4,11 @@

{{ group.name }}

@@ -30,7 +33,11 @@
{% endif %}
- +
diff --git a/template/src/oj/index.html b/template/src/oj/index.html index 181fa31f..80aaa0d3 100644 --- a/template/src/oj/index.html +++ b/template/src/oj/index.html @@ -97,7 +97,7 @@ 提交   比赛   小组   - 关于 + 关于 diff --git a/template/src/oj_base.html b/template/src/oj_base.html index ba001e12..56ba614c 100644 --- a/template/src/oj_base.html +++ b/template/src/oj_base.html @@ -46,7 +46,7 @@
  • 提交
  • 比赛
  • 小组
  • -
  • 关于
  • +
  • 关于
  • {% if request.user.is_authenticated %}