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 })
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))
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))
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))
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))
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))
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, })
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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))
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, ]))
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) })
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", })