def team_edit(teamid): team = Team.query.get_or_404(teamid) if not team.can_edit(g.user): return 'Not your team', 400 public_team = (team.user_id == User.get_public_user().id) form = TeamForm( request.form, name=team.name, country_flag=team.flag, logo=team.logo, auth1=team.auths[0], auth2=team.auths[1], auth3=team.auths[2], auth4=team.auths[3], auth5=team.auths[4], auth6=team.auths[5], auth7=team.auths[6], public_team=public_team) if request.method == 'GET': return render_template('team_create.html', user=g.user, form=form, edit=True, is_admin=g.user.admin) elif request.method == 'POST': if request.method == 'POST': if form.validate(): data = form.data team.set_data(data['name'], data['country_flag'], data['logo'], form.get_auth_list()) db.session.commit() return redirect('/teams/{}'.format(team.user_id)) else: flash_errors(form) return render_template('team_create.html', user=g.user, form=form, edit=True)
def teams_public(): return redirect(url_for('team.teams_user', userid=User.get_public_user().id))
def match_create(): if not g.user: return redirect('/login') form = MatchForm(request.form) form.add_teams(g.user) form.add_teams(User.get_public_user()) form.add_servers(g.user) if request.method == 'POST': num_matches = g.user.matches.count() max_matches = config_setting('USER_MAX_MATCHES', 0) if max_matches >= 0 and num_matches >= max_matches and not g.user.admin: flash('You already have the maximum number of matches ({}) created'.format(num_matches)) if form.validate(): mock = config_setting('TESTING', False) server = GameServer.query.get_or_404(form.data['server_id']) match_on_server = g.user.matches.filter_by( server_id=server.id, end_time=None, cancelled=False).first() if g.user.id != server.user_id: server_avaliable = False message = 'This is not your server!' elif match_on_server is not None: server_avaliable = False message = 'Match {} is already using this server'.format( match_on_server.id) elif mock: server_avaliable = True message = 'Success' else: server_avaliable, message = util.check_server_avaliability( server) if server_avaliable: skip_veto = 'preset' in form.data['series_type'] try: max_maps = int(form.data['series_type'][2]) except ValueError: max_maps = 1 match = Match.create( g.user, form.data['team1_id'], form.data['team2_id'], max_maps, skip_veto, form.data['match_title'], form.data['veto_mappool'], form.data['server_id']) server.in_use = True db.session.commit() app.logger.info('User {} created match {}, assigned to server {}', g.user.id, match.id, server.id) if mock or match.send_to_server(): return redirect('/mymatches') else: flash('Failed to load match configs on server') else: flash(message) else: get5.flash_errors(form) return render_template('match_create.html', form=form, user=g.user, teams=g.user.teams)