Example #1
0
def contest(request, cid):
    """
    比赛系统首页
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    response.set_navlist([const.apps.CONTEST, [manager.contest.title]])

    if wejudge_session.is_logined():
        if wejudge_session.account.password == '1e77c00131d49d6518d7eba2f8ebe70ada7a1ac9d8e8fe7f3bd07f9d9ab635ca':
            return response.render_page(
                request, 'contest/init.tpl', {
                    "contest": manager.contest,
                    "page_name": "INDEX",
                    "hide_login": False,
                    "hide_breadcrumb": True
                })

    storage = WeJudgeStorage(system.WEJUDGE_STORAGE_ROOT.CONTEST_STORAGE,
                             str(manager.contest.id))
    if storage.exists("intro.html"):
        fp = storage.open_file("intro.html", 'r')
        index_view = fp.read()
        fp.close()
        t = Template(index_view)
        index_view = t.render(
            Context({
                "contest": manager.contest,
                "wejudge_session": manager.session
            }))
    else:
        index_view = "<h2>欢迎参加本次比赛</h2><div class='ui divider'></div><h4>比赛主办者很懒,居然连介绍都没有写... ┑( ̄Д  ̄)┍</h4>"
    #
    # from django.utils.timezone import now
    #
    # time_delta = 0
    # if manager.contest.start_time < now():
    #     try:
    #         time_delta = (manager.contest.end_time - now()).total_seconds()
    #     except:
    #         time_delta = 0
    #
    #     if time_delta >= 360000:
    #         time_delta = 0
    return response.render_page(
        request, 'contest/contest.tpl', {
            "contest": manager.contest,
            "index_view": index_view,
            "page_name": "INDEX",
            "hide_login": False,
            "hide_breadcrumb": True
        })
Example #2
0
def get_judge_status(request, cid):
    """
    获取比赛评测详情
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)
    result = manager.get_judge_status()

    return response.json(WeJudgeResult(result))
Example #3
0
def get_problems_list(request, cid):
    """
    获取比赛题目列表
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)
    result = manager.get_contest_problems()

    return response.json(WeJudgeResult(result))
Example #4
0
def add_contest_problem(request, cid):
    """
    添加题目引用
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.add_contest_problem()

    return response.json(WeJudgeResult(result))
Example #5
0
def get_ranklist(request, cid):
    """
    比赛排行信息获取
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.get_ranklist()

    return response.json(WeJudgeResult(result))
Example #6
0
def get_cross_check_list(request, cid):
    """
    获取实时查重信息
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.get_cross_check_list()

    return response.json(WeJudgeResult(result))
Example #7
0
def rankboard(request, cid):
    """
    比赛滚榜页面
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    return response.render_page(request, 'contest/board.tpl', {
        "contest": manager.contest,
    })
Example #8
0
def get_printer_queue(request, cid):
    """
    获取打印资料请求列表
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.get_printer_queue()

    return response.json(WeJudgeResult(result))
Example #9
0
def delete_printer_queue_item(request, cid):
    """
    删除打印请求
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.delete_printer_queue_item()

    return response.json(WeJudgeResult(result))
Example #10
0
def access_solution_list(request, cid):
    """
    (Access)获取当前的SolutionList
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.access_solution_list()

    return response.json(WeJudgeResult(result))
Example #11
0
def access_contest_accounts(request, cid):
    """
    (Access)获取比赛的账户列表
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.access_contest_accounts()

    return response.json(WeJudgeResult(result))
Example #12
0
def save_contest_settings(request, cid):
    """
    比赛设置信息保存
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.save_contest_settings()

    return response.json(WeJudgeResult(result))
Example #13
0
def refresh_contest_data(request, cid):
    """
    更新比赛服数据
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.refresh_contest_data()

    return response.json(WeJudgeResult(result))
Example #14
0
def delete_cross_check_record(request, cid):
    """
    删除查重信息
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.delete_cross_check_record()

    return response.json(WeJudgeResult(result))
Example #15
0
def read_cross_check_code(request, cid):
    """
    查看查重代码对比
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.read_cross_check_code()

    return response.json(WeJudgeResult(result))
Example #16
0
def xls_import_account(request, cid):
    """
    从xls导入账户信息
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.xls_import_account()

    return response.json(WeJudgeResult(result))
Example #17
0
def user_register(request, cid):
    """
    注册报名功能
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.user_register()

    return response.json(WeJudgeResult(result))
Example #18
0
def new_notice(request, cid):
    """
    设置FAQ为公开或者私密
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.new_notice()

    return response.json(WeJudgeResult(result))
Example #19
0
def toggle_faq(request, cid):
    """
    设置FAQ为公开或者私密
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.change_faq_visable()

    return response.json(WeJudgeResult(result))
Example #20
0
def reply_faq(request, cid):
    """
    回复FAQ
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.reply_faq()

    return response.json(WeJudgeResult(result))
Example #21
0
def save_problem_choosing(request, cid):
    """
    保存比赛选题
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.save_problem_choosing()

    return response.json(WeJudgeResult(result))
Example #22
0
def confirm_finally_rank(request, cid):
    """
    确认最终排名
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.confirm_finally_rank()

    return response.json(WeJudgeResult(result))
Example #23
0
def save_contest_problem_setting(request, cid, pid):
    """
    保存题目的设置信息
    :param request:
    :param cid:
    :param pid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)
    manager.get_problem(pid)

    result = manager.save_contest_problem_setting()

    return response.json(WeJudgeResult(result))
Example #24
0
def user_changepwd(request, cid):
    """
    用户更改密码
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    result = manager.user_changepwd()

    return HttpResponseRedirect(
        reverse("contest.contest", args=[
            manager.contest.id,
        ]))
Example #25
0
def printer_view(request, cid, pid):
    """
    生成打印预览
    :param request:
    :param cid:
    :param pid: page ID
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)

    return response.render_page(
        request, 'contest/printer.tpl', {
            "contest": manager.contest,
            "printer_item": manager.get_printer_queue_item(pid)
        })
Example #26
0
def contest_management(request, cid):
    """
    比赛管理页面
    :param request:
    :param cid:
    :return:
    """
    wejudge_session = WeJudgeContestSession(request)  # 创建会话
    response = WeJudgeResponse(wejudge_session)  # 创建响应

    manager = libs.ContestController(request, response, cid)
    manager.check_privilege(1)  # 检查管理权限

    response.set_navlist([const.apps.CONTEST, [manager.contest.title]])

    return response.render_page(request, 'contest/manager.tpl', {
        "contest": manager.contest,
        "page_name": "MANAGE",
    })