def team_modify(): if request.method == "POST": team_name = request.form["team_name"].strip() team_elig = "team_eligibility" in request.form affiliation = request.form["affiliation"].strip() name_changed = (team_name!=g.team.name) affi_changed = (affiliation!=g.team.affiliation) elig_changed = (team_elig!=g.team.eligible) if not name_changed and not affi_changed and not elig_changed: flash("nothing changed!") return redirect(url_for('team_dashboard')) if name_changed: try: if (Team.get(Team.name == team_name)): flash("The team name has been used.") return redirect(url_for('team_dashboard')) except Team.DoesNotExist: pass if len(team_name) > 50 or not team_name: flash("wrong team name format!") return redirect(url_for('team_dashboard')) if affi_changed: if not affiliation or len(affiliation) > 100: affiliation = "No affiliation" g.team.name = team_name g.team.affiliation = affiliation g.team.eligible = team_elig g.team.save() app.logger.info(g.user.username+" modify team.") flash("change successfully.") return redirect(url_for('team_dashboard'))
def team_register(): if request.method == "GET": return redirect(url_for('team_dashboard')) else: team_name = request.form["team_name"].strip() team_elig = "team_eligibility" in request.form affiliation = request.form["affiliation"].strip() try: if (Team.get(Team.name == team_name)): flash("The team name has been used.") return redirect(url_for('team_dashboard')) except Team.DoesNotExist: pass if len(team_name) > 50 or not team_name: flash("wrong team name format!") return redirect(url_for('team_dashboard')) if not affiliation or len(affiliation) > 100: affiliation = "No affiliation" team_leader = User.get(User.id == g.user.id) team = Team.create(name=team_name, eligible=team_elig, affiliation=affiliation, team_leader=team_leader) TeamMember.create(team=team,member=team_leader,member_confirmed=False) if not app.debug: UserAccess.create(user=g.user, ip=misc.get_ip(), time=datetime.now()) session["team_id"] = team.id app.logger.info(g.user.username+" register a team.") flash("The request has send to admin.") return redirect(url_for('team_dashboard'))
def admin_score_adjust(tid): value = int(request.form["value"]) reason = request.form["reason"] team = Team.get(Team.id == tid) ScoreAdjustment.create(team=team, value=value, reason=reason) flash("Score adjusted.") return redirect(url_for(".admin_show_team", tid=tid))
def scoreboard_variables(): var = dict(config=config) var["user_teamed"] = False #user_teamed用户属于某个队伍 var["user_requested"] = False #user_requested用户申请加入某个队伍 var["team_requested"] = False #team_requested用户申请创建某个队伍 if "user_id" in session: var["logged_in"] = True var["user"] = g.user try: if (TeamMember.get(TeamMember.member == g.user.id).member_confirmed): var["user_teamed"] = True except: var["user_teamed"] = False try: if (not TeamMember.get(TeamMember.member == g.user.id).member_confirmed): var["user_requested"] = True except: var["user_requested"] = False try: if (not Team.get(Team.team_leader == g.user.id).team_confirmed): var["team_requested"] = True except: var["team_requested"] = False else: var["logged_in"] = False var["notifications"] = [] if "team_id" in session: g.team = Team.get(Team.id == session["team_id"]) var["team"] = g.team if (g.user.id == g.team.team_leader.id): var["user_leader"] = True #用户是队长 else: var["user_leader"] = False var["notifications"] = Notification.select().where(Notification.team == g.team) else: var["notifications"] = [] return var
def teamconfirm(): if utils.misc.get_ip() in config.confirm_ip: team_name = request.form["team_name"].strip() team_key = request.form["team_key"].strip() try: team = Team.get(Team.name == team_name) except Team.DoesNotExist: return "invalid", 403 if team.key == team_key: return "ok", 200 else: return "invalid", 403 else: return "unauthorized", 401
def login(): if request.method == "GET": return render_template("login.html") elif request.method == "POST": team_key = request.form["team_key"] try: team = Team.get(Team.key == team_key) TeamAccess.create(team=team, ip=misc.get_ip(), time=datetime.now()) session["team_id"] = team.id flash("Login successful.") return redirect(url_for('dashboard')) except Team.DoesNotExist: flash("Couldn't find your team. Check your team key.", "error") return render_template("login.html")
def team_join(): if request.method == "POST": team_name = request.form["team_name"].strip() try: team=Team.get(Team.name == team_name) if not team.team_confirmed: flash("The team has not be agreed by admin.Please wait,or join another team!") return redirect(url_for('team_dashboard')) else: TeamMember.create(team=team.id, member=g.user.id) app.logger.info(g.user.username+" want to join "+team_name) flash("The request has sent to leader!") return redirect(url_for('team_dashboard')) except Team.DoesNotExist: flash("team name do not exist!") return redirect(url_for('team_dashboard'))
def make_info_available(): if "user_id" in session: g.user = User.get(User.id == session["user_id"]) if "team_id" in session: g.team = Team.get(Team.id == session["team_id"]) g.team_restricts = g.team.restricts.split(",")
def make_info_available(): if "team_id" in session: g.team = Team.get(Team.id == session["team_id"]) g.team_restricts = g.team.restricts.split(",")
def admin_show_team(tid): team = Team.get(Team.id == tid) return render_template("admin/team.html", team=team)
def admin_toggle_eligibility_lock(tid): team = Team.get(Team.id == tid) team.eligibility_locked = not team.eligibility_locked team.save() flash("Eligibility lock set to {}".format(team.eligibility_locked)) return redirect(url_for(".admin_show_team", tid=tid))