def Get(id): record = db.Read_Record(id) if record == None: flash(r'### 提交记录R%d没找着! \n 可能是因为编号不对.' % id, 'error') return redirect('/status') if record[12]: end_time = datetime.datetime.strptime( db.Read_Contest(record[12])[4], '%Y-%m-%d %H:%M:%S') now_time = datetime.datetime.now() if now_time < end_time: if request.cookies['username'] != record[ 11] and not modules.Current_User_Privilege(3): flash(r'这是比赛时的提交, 您无权查看', 'error') return modules.Page_Back() elif not db.Read_Problem( record[1])[9] and not modules.Current_User_Privilege( 2) and record[11] != modules.Current_User(): flash(r'该题目尚未公开, 您无权查看', 'error') return modules.Page_Back() result = json.loads(record[7]) subtasks = result['subtasks'] contest = db.Read_Contest(record[12]) if record[12] else None return render_template('record.html', record=record, subtasks=subtasks, contest=contest)
def Run(): page = int(request.args['page']) if 'page' in request.args else 1 problemlist = db.Read_Problemlist() can_view_hidden = modules.Current_User_Privilege(2) problem_show, total_page = modules.Page_Split( problemlist, page, problem_per_page, lambda problem: problem[9] or can_view_hidden) submitted_status = {} if modules.Is_Loggedin(): def Better(new, before): if new[4] != before[4]: return new[4] > before[4] if new[5] != before[5]: return new[5] > before[5] if new[8] != before[8]: return new[8] < before[8] if new[9] != before[9]: return new[9] < before[9] if new[0] != before[0]: return new[0] > before[0] return False submissions = db.Read_Submissions( {'username': request.cookies['username']}, 'id ASC') for submission in submissions: problem_id = submission[1] if problem_id not in submitted_status or Better( submission, submitted_status[problem_id]): submitted_status[problem_id] = submission return render_template('problemlist.html', problemlist=problem_show, submitted_status=submitted_status, current_page=page, total_page=total_page)
def Run(record_id): if request.method == 'GET': return Get(record_id) else: if not modules.Current_User_Privilege(2): flash(r'无此权限', 'error') return modules.Page_Back() return newsubmit.Rejudge(record_id)
def Run(): if not modules.Current_User_Privilege(2): flash(r'无此权限', 'error') return modules.Page_Back() if request.method == 'GET': return render_template("problemadd.html") else: return Submit(request.form)
def Run(): if not modules.Current_User_Privilege(3): flash(r'无此权限', 'error') return modules.Page_Back() if request.method == 'GET': current_date = datetime.datetime.now().strftime(date_format) return render_template("contestadd.html", current_date=current_date) else: return Contestadd(request.form)
def Run(origin_id): if not modules.Current_User_Privilege(2): flash(r'无此权限', 'error') return modules.Page_Back() problem = db.Read_Problem(origin_id) if problem == None: flash(r'### 题目 P%d 没找着! \n 可能是因为编号不对.' % origin_id, 'error') return modules.Page_Back() if request.method == 'GET': return render_template("problemedit.html", problem=problem) else: return Change(origin_id, request.form)
def Run(problem_id): problem = db.Read_Problem(problem_id) if problem == None: flash(r'### 题目 P%d 没找着! \n 可能是因为编号不对.' % problem_id, 'error') return modules.Page_Back() if not problem[9] and not modules.Current_User_Privilege(2): flash(r'无此权限', 'error') return modules.Page_Back() if request.method == 'GET': return render_template('problem.html', problem=problem) else: return newsubmit.Submit(problem_id, request.form)
def Run(username): if username != request.cookies.get( 'username') and not modules.Current_User_Privilege( 'is_user_manager'): flash(r'没有权限', 'error') return modules.Page_Back() userdata = db.Read_User_Byname(username) if userdata == None: flash(r'用户 %s 不存在' % username, 'error') return modules.Page_Back() if request.method == 'GET': return render_template('useredit.html', user=userdata) else: Useredit(username, request.form) flash('修改成功', 'ok') return redirect('/user/%s' % username)
def Run(problem_id): if not modules.Current_User_Privilege(2): flash(r'无此权限','error') return modules.Page_Back() db.Execute("DELETE FROM problems WHERE id=%s",problem_id) return redirect('/problemlist')