コード例 #1
0
ファイル: team.py プロジェクト: mattikus/get5-web
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)
コード例 #2
0
ファイル: team.py プロジェクト: mattikus/get5-web
def teams_public():
    return redirect(url_for('team.teams_user', userid=User.get_public_user().id))
コード例 #3
0
ファイル: match.py プロジェクト: mattikus/get5-web
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)