Example #1
0
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)
Example #2
0
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)
Example #3
0
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)
Example #4
0
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)
Example #5
0
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)
Example #6
0
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)
Example #7
0
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)
Example #8
0
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)
Example #9
0
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')