示例#1
0
def player_info(player_id):
    player = Player.execute_select({'id': player_id})[0]
    participant = Participant.execute_select({'player_id': player.id},
                                             [('t.date_start', False)])
    return render_template('player_info.html',
                           player=player,
                           participant=participant)
示例#2
0
    def process_player(self, row, city_id, rank_id):
        last_name, first_name = row[self.slices[self.indices['full_name']]].split(',')
        last_name = last_name.strip()
        first_name = first_name.strip()
        rating = row[self.slices[self.indices['rating']]].strip()
        rating = float(rating) if rating else None

        players = Player.execute_select({'last_name': last_name, 'first_name': first_name})
        if len(players) == 1:
            return players[0].id

        players = [p for p in players if p.city.id == city_id]
        if len(players) == 1:
            return players[0].id

        players = [p for p in players if p.rank.id == rank_id]
        if len(players) == 1:
            return players[0].id

        player_data = {
            'last_name': last_name,
            'first_name': first_name,
            'rating': rating,
            'city_id': city_id,
            'rank_id': rank_id,
            'is_active': False,
        }
        return Player.execute_insert([player_data])[0]
示例#3
0
def edit_player(player_id):
    if request.method == 'POST':
        update_data = dict(request.form)
        update_data['is_active'] = 'is_active' in update_data.keys()
        try:
            Player.execute_update(player_id, **update_data)
            flash('Дані гравця оновлені', 'isa_success')
            return redirect(url_for('.players'))
        except mysql.connector.Error as err:
            flash(err.msg, 'isa_error')

        return redirect(url_for('.player_info', player_id=player_id))

    player = Player.execute_select({'id': player_id})[0]

    cities = City.select_attrs(['id', 'name'])
    ranks = Rank.select_attrs(['id', 'name'])
    national_ranks = NationalRank.select_attrs(['id', 'name'])

    form = '\n'.join([
        '<div class="container">',
        f'<form action="/players/{player_id}/edit" method="post">',
        render_text_input_row("last_name", "Прізвище", player.last_name),
        render_text_input_row("first_name", "Ім'я", player.first_name),
        render_select_row('city_id', "Місто", cities, player.city.id),
        render_number_input_row('rating', "Рейтинг", '100', '3000', '0.001',
                                player.rating),
        render_select_row('rank_id', "Ранг", ranks, player.rank.id),
        render_select_row('national_rank_id', "Розряд", national_ranks,
                          player.national_rank.id),
        render_text_input_row("pin", "EGF PIN", player.pin),
        render_checkbox_row('is_active', "Активний", player.is_active),
        render_submit(),
        '</form>',
        '</div>',
    ])

    return render_template('edit_player.html', player=player, form=form)
示例#4
0
def players():
    all_players = Player.execute_select()
    return render_template('player_list.html', players=all_players)
示例#5
0
def index():
    players = Player.execute_select()[:10]
    tournaments = Tournament.execute_select()[:10]
    return render_template('index.html',
                           players=players,
                           tournaments=tournaments)