def team_edit(): params = utils.flat_multi(request.form) _user = user.get_user().first() _team = get_team(tid=_user.tid).first() if _user.uid != _team.owner: raise WebException("You must be the captain of your team to edit information!") with app.app_context(): update = {} if params.get("new_teamname") is not None: if get_team(teamname_lower=utils.escape_teamname(params["new_teamname"])).first() is not None: raise WebException("This team name is taken!") update["teamname"] = params["new_teamname"] update["teamname_lower"] = utils.escape_teamname(params["new_teamname"]) if params.get("new_school") is not None: update["school"] = params["new_school"] _team.update_info(update) return { "success": 1 }
def team_info(): logged_in = user.is_logged_in() my_team = -1 in_team = False owner = False _user = None teamdata = { } search = { } teamname = utils.flat_multi(request.args).get("teamname") if teamname: search.update({ "teamname_lower": utils.escape_teamname(teamname) }) if logged_in: _user = user.get_user().first() if user.in_team(_user): my_team = _user.tid if "teamname_lower" not in search: search.update({ "tid": _user.tid }) in_team = True if bool(search) != False: team = get_team(**search).first() teamdata = get_team_info(**search) if logged_in: in_team = teamdata["tid"] == _user.tid owner = teamdata["captain"] == _user.uid teamdata["in_team"] = in_team teamdata["my_team"] = my_team if in_team: teamdata["is_owner"] = owner if owner: teamdata["pending_invitations"] = team.get_pending_invitations() teamdata["invitation_requests"] = team.get_invitation_requests() else: if logged_in: teamdata["invited"] = team.get_pending_invitations(toid=_user.uid) is not None teamdata["requested"] = team.get_invitation_requests(frid=_user.uid) is not None teamdata["activity"] = team.get_activity() else: if logged_in: teamdata["invitations"] = _user.get_invitations() teamdata["my_team"] = my_team teamdata["tid"] = -1 teamdata["activity"] = [] else: # Non-logged-in user viewing /team page raise WebException() return { "success": 1, "team": teamdata }
def __init__(self, teamname, school, owner, observer): self.teamname = teamname self.teamname_lower = utils.escape_teamname(teamname) self.school = school self.owner = owner self.observer = observer
with app.app_context(): if _user.uid == _team.owner: _team.remove_all_members() else: _team.remove_member(_user.uid) db.session.add(Activity(_user.uid, 2, tid=_team.tid, pid=-1)) db.session.delete(_team) db.session.commit() db.session.close() return { "success": 1 } ################## # TEAM FUNCTIONS # ################## __check_teamname = lambda teamname: get_team(teamname_lower=utils.escape_teamname(teamname)).first() is None TeamSchema = Schema({ Required("teamname"): check( ([str, Length(min=4, max=32)], "Your teamname should be between 4 and 32 characters long."), ([__check_teamname], "This teamname is taken. Please choose a different one.") ), Required("school"): check( ([str, Length(min=4, max=40)], "Your school name should be between 4 and 40 characters long. Use abbreviations if necessary."), ), }, extra=True) def get_team_info(tid=None, teamname=None, teamname_lower=None, owner=None): team = get_team(tid=tid, teamname=teamname, teamname_lower=teamname_lower, owner=owner).first() if team is None: raise WebException("Team not found.")