def get_contestproblem(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] if "problem_id" in req.GET: problem_id = req.GET["problem_id"] tmp = contest_problem.objects.get(id = problem_id) problem = problemslist.objects.get(OJ = tmp.sojs, SID = tmp.pids) return render_to_response("contestproblem.html", {'username' : username, 'problem' : problem, 'Flag' : Flag, 'problem_id' : problem_id, 'contest_id' : contest_id, }, context_instance=RequestContext(req))
def get_contest_rank(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] mycontest = contest.objects.get(id = contest_id) ProblemsList = ContestTools.get_contest_problems_list(contest_id = contest_id) problem_id = ProblemsList[0].id StatusList = user_status.objects.filter(contestID = contest_id).order_by('id') rank_list = ContestRank.GeneratorRank(ProblemsList, StatusList, mycontest.begintime, mycontest.endtime) return render_to_response("contestrank.html", {'username' : username, 'Flag' : Flag, 'contest_id' : contest_id, 'problem_id':problem_id, 'rank_list':rank_list }, context_instance=RequestContext(req))
def get_contest_show(req): username, Flag = UserInit.init(req) if "id" in req.GET: contest_id = req.GET["id"] print contest_id ctest = contest.objects.get(id=contest_id) List = ContestTools.get_contest_problems_list(contest_id = contest_id) problem_id = List[0].id return render_to_response("contestshow.html", {'username' : username, 'MapList' : List, 'acontest' : ctest, 'Flag' : Flag, 'problem_id' :problem_id }, context_instance=RequestContext(req))
def get_contestproblem(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] if "problem_id" in req.GET: problem_id = req.GET["problem_id"] tmp = contest_problem.objects.get(id=problem_id) problem = problemslist.objects.get(OJ=tmp.sojs, SID=tmp.pids) return render_to_response("contestproblem.html", { 'username': username, 'problem': problem, 'Flag': Flag, 'problem_id': problem_id, 'contest_id': contest_id, }, context_instance=RequestContext(req))
def get_contest_show(req): username, Flag = UserInit.init(req) if "id" in req.GET: contest_id = req.GET["id"] print contest_id ctest = contest.objects.get(id=contest_id) List = ContestTools.get_contest_problems_list(contest_id=contest_id) problem_id = List[0].id return render_to_response("contestshow.html", { 'username': username, 'MapList': List, 'acontest': ctest, 'Flag': Flag, 'problem_id': problem_id }, context_instance=RequestContext(req))
def get_contest_list(req): username, Flag = UserInit.init(req) settershow = "" if req.method == "POST": setter = req.POST["setter"] settershow = setter print "Find", settershow contest_list = contest.objects.filter(IsReady=True) if "page" in req.GET: page = req.GET["page"] else: page = 1 title_show = "" setter_show = "" if req.method == "POST": title_show = req.POST["title"] setter_show = req.POST["setter"] else: if "title" in req.GET: title_show = req.GET["title"] if "setter" in req.GET: setter_show = req.GET["setter"] if title_show != "": contest_list = contest_list.filter(title=title_show) if setter_show != "": contest_list = contest_list.filter(owner=setter) contest_list = contest_list.order_by("-begintime") paper = PagesManager(name="problem", now=int(page), data=contest_list, segment=20) page = int(page) return render_to_response( "contestlist.html", { "username": username, "Flag": Flag, "settershow": settershow, "setter_show": setter_show, "title_show": title_show, "contest_list": contest_list, "paper": paper, }, context_instance=RequestContext(req), )
def get_contest_rank(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] mycontest = contest.objects.get(id=contest_id) ProblemsList = ContestTools.get_contest_problems_list( contest_id=contest_id) problem_id = ProblemsList[0].id StatusList = user_status.objects.filter( contestID=contest_id).order_by('id') rank_list = ContestRank.GeneratorRank(ProblemsList, StatusList, mycontest.begintime, mycontest.endtime) return render_to_response("contestrank.html", { 'username': username, 'Flag': Flag, 'contest_id': contest_id, 'problem_id': problem_id, 'rank_list': rank_list }, context_instance=RequestContext(req))
def get_contest_list(req): username, Flag = UserInit.init(req) settershow = "" if req.method == 'POST': setter = req.POST['setter'] settershow = setter print 'Find', settershow contest_list = contest.objects.filter(IsReady = True) if 'page' in req.GET: page = req.GET['page'] else: page = 1 title_show = "" setter_show = "" if req.method == 'POST': title_show = req.POST['title'] setter_show = req.POST['setter'] else: if 'title' in req.GET: title_show = req.GET['title'] if 'setter' in req.GET: setter_show = req.GET['setter'] if title_show != "": contest_list = contest_list.filter(title = title_show) if setter_show != "": contest_list = contest_list.filter(owner = setter) contest_list = contest_list.order_by('-begintime') paper = PagesManager(name = 'problem', now = int(page), data = contest_list, segment = 20) page = int(page) return render_to_response("contestlist.html", {'username' : username, 'Flag' : Flag, 'settershow' : settershow, 'setter_show' : setter_show, 'title_show' : title_show, 'contest_list' : contest_list, 'paper' : paper, }, context_instance = RequestContext(req))
def editcontest(req): username, Flag = UserInit.init(req) if username == None or username =="": return HttpResponseRedirect('/login') #处理没有登录 if 'id' in req.GET: contest_id = req.GET['id'] Data, find = loadcontest(username, contest_id) if not find: return HttpResponseRedirect('/contestlist') else: return HttpResponseRedirect('/contestlist') #装载信息 warning = "" show = False #提示信息 OJList = DataManager.SuportOJList() #OJ列表 start = Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') <= datetime.now().strftime('%Y-%m-%d %H:%M:%S %f') if not start: tmp = Editor.TimeSet(req, Data) beginTime = tmp['beginTime'] hour = tmp['hour'] minute = tmp['minute'] if tmp['show']: show = True warning = tmp['warning'] #需要选择是否能够修改开始 #开始时间设置 tmp = Editor.LenSet(req, Data) d_day = tmp['d_day'] d_hour = tmp['d_hour'] d_minute = tmp['d_minute'] if tmp['show']: show = True warning = tmp['warning'] #比赛持续时间 tmp = Editor.InfoSet(req, Data) if tmp['show']: show = True warning = tmp['warning'] #信息维护 if not start: tmp = Editor.ProblemsSet(req, Data) if tmp['show']: show = True warning = tmp['warning'] #添加题目 if req.method == 'POST': if 'submit' in req.POST and not show: if Data.title is None or Data.title == "": show = True warning = "Please input the contest' title !" elif (not start) and len(Data.list.all()) == 0: show = True warning = "Please add the problems !" elif (not start) and Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') < datetime.now().strftime('%Y-%m-%d %H:%M:%S %f'): #print 'Set', Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') #print 'Now', datetime.now().strftime('%Y-%m-%d %H:%M:%S %f') show = True warning = "The begin time must be later than now !" else: Data.save() TempStore.edit_contest(contest_id) start = not start print 'start =', start if start: return render_to_response('editcontest.html', {'username' : username, 'Flag' : Flag, 'OJList' : OJList, 'warning' : warning, 'show' : show, 'problems_list' : Data.list.all(), 'data' : Data, 'beginTime' : beginTime, 'hour' : hour, 'minute' : minute, 'd_day' : d_day, 'd_hour' : d_hour, 'd_minute' : d_minute, 'start' : start, 'contestid' : contest_id, }, context_instance = RequestContext(req)) print 'start =', start return render_to_response('editcontest.html', {'username' : username, 'Flag' : Flag, 'OJList' : OJList, 'warning' : warning, 'show' : show, 'data' : Data, 'd_day' : d_day, 'd_hour' : d_hour, 'd_minute' : d_minute, 'start' : start, 'contestid' : contest_id, }, context_instance = RequestContext(req))
def addcontest(req): username, Flag = UserInit.init(req) if username == None or username =="": return HttpResponseRedirect('/login') #处理没有登录 Data = loaddata(username) #装载信息 warning = "" show = False #提示信息 OJList = DataManager.SuportOJList() #OJ列表 tmp = Editor.TimeSet(req, Data) beginTime = tmp['beginTime'] hour = tmp['hour'] minute = tmp['minute'] if tmp['show']: show = True warning = tmp['warning'] #开始时间设置 tmp = Editor.LenSet(req, Data) d_day = tmp['d_day'] d_hour = tmp['d_hour'] d_minute = tmp['d_minute'] if tmp['show']: show = True warning = tmp['warning'] #比赛持续时间 tmp = Editor.InfoSet(req, Data) if tmp['show']: show = True warning = tmp['warning'] #信息维护 tmp = Editor.ProblemsSet(req, Data) if tmp['show']: show = True warning = tmp['warning'] #添加题目 if req.method == 'POST': if 'submit' in req.POST and not show: if Data.title is None or Data.title == "": show = True warning = "Please input the contest' title !" elif len(Data.list.all()) == 0: show = True warning = "Please add the problems !" elif Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') < datetime.now().strftime('%Y-%m-%d %H:%M:%S %f'): #print 'Set', Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') #print 'Now', datetime.now().strftime('%Y-%m-%d %H:%M:%S %f') show = True warning = "The begin time must be later than now !" else: Data.save() TempStore.createcontest(username) return render_to_response('addcontest.html', {'username' : username, 'Flag' : Flag, 'OJList' : OJList, 'warning' : warning, 'show' : show, 'problems_list' : Data.list.all(), 'data' : Data, 'beginTime' : beginTime, 'hour' : hour, 'minute' : minute, 'd_day' : d_day, 'd_hour' : d_hour, 'd_minute' : d_minute, }, context_instance = RequestContext(req))
def get_contest_status(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] status_list = user_status.objects.filter(contestID=contest_id) List = ContestTools.get_contest_problems_list(contest_id = contest_id) problem_id = List[0].id oj_show = ['all'] oj_show += DataManager.SuportOJList() result_show = DataManager.ResultList() language_show = ['all'] language_show += DataManager.LanguageList() user_show = "", if req.POST: print 'POST' if cmp(req.POST["oj"],"all") != 0: status_list=status_list.filter(OJ=req.POST["oj"]).order_by('-id') find=oj_show.index(req.POST["oj"]) first=oj_show[0] oj_show[0]=req.POST["oj"] oj_show[find]=first if cmp(req.POST["language"],"all") != 0: status_list=status_list.filter(language=req.POST["language"]).order_by('-id') find=language_show.index(req.POST["language"]) first=language_show[0] language_show[0]=req.POST["language"] language_show[find]=first if cmp(req.POST["result"],"all") != 0: status_list=status_list.filter(result=req.POST["result"]).order_by('-id') find=result_show.index(req.POST["result"]) first=result_show[0] result_show[0]=req.POST["result"] result_show[find]=first if cmp(req.POST["user"],"") != 0: status_list=status_list.filter(username=req.POST["user"]).order_by('-id') print 'Get =', req.POST['user'] user_show=req.POST["user"] else: GET = req.GET if ('oj' not in GET) or cmp(GET["oj"],"all") == 0: status_list=status_list.order_by('-id') tmp = 'all' else: status_list=status_list.objects.filter(OJ=GET["oj"]).order_by('-id') tmp = GET['oj'] find=oj_show.index(tmp) first=oj_show[0] oj_show[0]=tmp oj_show[find]=first tmp = 'all' if ('language' in GET) and cmp(GET["language"],"all") != 0: status_list=status_list.filter(language=GET["language"]).order_by('-id') tmp = GET["language"] find = language_show.index(tmp) first = language_show[0] language_show[0] = tmp language_show[find] = first tmp = 'all' if ('result' in GET) and cmp(GET["result"],"all") != 0: status_list=status_list.filter(result=GET["result"]).order_by('-id') tmp = GET['result'] find=result_show.index(tmp) first=result_show[0] result_show[0]=tmp result_show[find] = first if ('user' in GET) and cmp(GET["user"],"") != 0: status_list=status_list.filter(username=GET["user"]).order_by('-id') user_show = GET["user"] if req.POST: if cmp(req.POST["ProID"],"") != 0: ProID_show = req.POST["ProID"] status_list = status_list.filter(problemID = ProID_show) else: if ('ProID' in req.GET): ProID_show = req.GET["ProID"] status_list = status_list.filter(problemID = ProID_show) return render_to_response("conteststatus.html", {'username' : username, 'Flag' : Flag, 'contest_id' : contest_id, 'status_list' : status_list, 'problem_id' : problem_id, 'oj_show' : oj_show, 'result_show' : result_show, 'language_show' : language_show, 'user_show' : user_show, }, context_instance=RequestContext(req))
def get_contest_status(req): username, Flag = UserInit.init(req) if "contest_id" in req.GET: contest_id = req.GET["contest_id"] status_list = user_status.objects.filter(contestID=contest_id) List = ContestTools.get_contest_problems_list(contest_id=contest_id) problem_id = List[0].id oj_show = ['all'] oj_show += DataManager.SuportOJList() result_show = DataManager.ResultList() language_show = ['all'] language_show += DataManager.LanguageList() user_show = "", if req.POST: print 'POST' if cmp(req.POST["oj"], "all") != 0: status_list = status_list.filter(OJ=req.POST["oj"]).order_by('-id') find = oj_show.index(req.POST["oj"]) first = oj_show[0] oj_show[0] = req.POST["oj"] oj_show[find] = first if cmp(req.POST["language"], "all") != 0: status_list = status_list.filter( language=req.POST["language"]).order_by('-id') find = language_show.index(req.POST["language"]) first = language_show[0] language_show[0] = req.POST["language"] language_show[find] = first if cmp(req.POST["result"], "all") != 0: status_list = status_list.filter( result=req.POST["result"]).order_by('-id') find = result_show.index(req.POST["result"]) first = result_show[0] result_show[0] = req.POST["result"] result_show[find] = first if cmp(req.POST["user"], "") != 0: status_list = status_list.filter( username=req.POST["user"]).order_by('-id') print 'Get =', req.POST['user'] user_show = req.POST["user"] else: GET = req.GET if ('oj' not in GET) or cmp(GET["oj"], "all") == 0: status_list = status_list.order_by('-id') tmp = 'all' else: status_list = status_list.objects.filter( OJ=GET["oj"]).order_by('-id') tmp = GET['oj'] find = oj_show.index(tmp) first = oj_show[0] oj_show[0] = tmp oj_show[find] = first tmp = 'all' if ('language' in GET) and cmp(GET["language"], "all") != 0: status_list = status_list.filter( language=GET["language"]).order_by('-id') tmp = GET["language"] find = language_show.index(tmp) first = language_show[0] language_show[0] = tmp language_show[find] = first tmp = 'all' if ('result' in GET) and cmp(GET["result"], "all") != 0: status_list = status_list.filter( result=GET["result"]).order_by('-id') tmp = GET['result'] find = result_show.index(tmp) first = result_show[0] result_show[0] = tmp result_show[find] = first if ('user' in GET) and cmp(GET["user"], "") != 0: status_list = status_list.filter( username=GET["user"]).order_by('-id') user_show = GET["user"] if req.POST: if cmp(req.POST["ProID"], "") != 0: ProID_show = req.POST["ProID"] status_list = status_list.filter(problemID=ProID_show) else: if ('ProID' in req.GET): ProID_show = req.GET["ProID"] status_list = status_list.filter(problemID=ProID_show) return render_to_response("conteststatus.html", { 'username': username, 'Flag': Flag, 'contest_id': contest_id, 'status_list': status_list, 'problem_id': problem_id, 'oj_show': oj_show, 'result_show': result_show, 'language_show': language_show, 'user_show': user_show, }, context_instance=RequestContext(req))
def editcontest(req): username, Flag = UserInit.init(req) if username == None or username == "": return HttpResponseRedirect("/login") # 处理没有登录 if "id" in req.GET: contest_id = req.GET["id"] Data, find = loadcontest(username, contest_id) if not find: return HttpResponseRedirect("/contestlist") else: return HttpResponseRedirect("/contestlist") # 装载信息 warning = "" show = False # 提示信息 OJList = DataManager.SuportOJList() # OJ列表 start = Data.begintime.strftime("%Y-%m-%d %H:%M:%S %f") <= datetime.now().strftime("%Y-%m-%d %H:%M:%S %f") if not start: tmp = Editor.TimeSet(req, Data) beginTime = tmp["beginTime"] hour = tmp["hour"] minute = tmp["minute"] if tmp["show"]: show = True warning = tmp["warning"] # 需要选择是否能够修改开始 # 开始时间设置 tmp = Editor.LenSet(req, Data) d_day = tmp["d_day"] d_hour = tmp["d_hour"] d_minute = tmp["d_minute"] if tmp["show"]: show = True warning = tmp["warning"] # 比赛持续时间 tmp = Editor.InfoSet(req, Data) if tmp["show"]: show = True warning = tmp["warning"] # 信息维护 if not start: tmp = Editor.ProblemsSet(req, Data) if tmp["show"]: show = True warning = tmp["warning"] # 添加题目 if req.method == "POST": if "submit" in req.POST and not show: if Data.title is None or Data.title == "": show = True warning = "Please input the contest' title !" elif (not start) and len(Data.list.all()) == 0: show = True warning = "Please add the problems !" elif (not start) and Data.begintime.strftime("%Y-%m-%d %H:%M:%S %f") < datetime.now().strftime( "%Y-%m-%d %H:%M:%S %f" ): # print 'Set', Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') # print 'Now', datetime.now().strftime('%Y-%m-%d %H:%M:%S %f') show = True warning = "The begin time must be later than now !" else: Data.save() TempStore.edit_contest(contest_id) start = not start print "start =", start if start: return render_to_response( "editcontest.html", { "username": username, "Flag": Flag, "OJList": OJList, "warning": warning, "show": show, "problems_list": Data.list.all(), "data": Data, "beginTime": beginTime, "hour": hour, "minute": minute, "d_day": d_day, "d_hour": d_hour, "d_minute": d_minute, "start": start, "contestid": contest_id, }, context_instance=RequestContext(req), ) print "start =", start return render_to_response( "editcontest.html", { "username": username, "Flag": Flag, "OJList": OJList, "warning": warning, "show": show, "data": Data, "d_day": d_day, "d_hour": d_hour, "d_minute": d_minute, "start": start, "contestid": contest_id, }, context_instance=RequestContext(req), )
def addcontest(req): username, Flag = UserInit.init(req) if username == None or username == "": return HttpResponseRedirect("/login") # 处理没有登录 Data = loaddata(username) # 装载信息 warning = "" show = False # 提示信息 OJList = DataManager.SuportOJList() # OJ列表 tmp = Editor.TimeSet(req, Data) beginTime = tmp["beginTime"] hour = tmp["hour"] minute = tmp["minute"] if tmp["show"]: show = True warning = tmp["warning"] # 开始时间设置 tmp = Editor.LenSet(req, Data) d_day = tmp["d_day"] d_hour = tmp["d_hour"] d_minute = tmp["d_minute"] if tmp["show"]: show = True warning = tmp["warning"] # 比赛持续时间 tmp = Editor.InfoSet(req, Data) if tmp["show"]: show = True warning = tmp["warning"] # 信息维护 tmp = Editor.ProblemsSet(req, Data) if tmp["show"]: show = True warning = tmp["warning"] # 添加题目 if req.method == "POST": if "submit" in req.POST and not show: if Data.title is None or Data.title == "": show = True warning = "Please input the contest' title !" elif len(Data.list.all()) == 0: show = True warning = "Please add the problems !" elif Data.begintime.strftime("%Y-%m-%d %H:%M:%S %f") < datetime.now().strftime("%Y-%m-%d %H:%M:%S %f"): # print 'Set', Data.begintime.strftime('%Y-%m-%d %H:%M:%S %f') # print 'Now', datetime.now().strftime('%Y-%m-%d %H:%M:%S %f') show = True warning = "The begin time must be later than now !" else: Data.save() TempStore.createcontest(username) return render_to_response( "addcontest.html", { "username": username, "Flag": Flag, "OJList": OJList, "warning": warning, "show": show, "problems_list": Data.list.all(), "data": Data, "beginTime": beginTime, "hour": hour, "minute": minute, "d_day": d_day, "d_hour": d_hour, "d_minute": d_minute, }, context_instance=RequestContext(req), )