Beispiel #1
0
def tournament_info(tournament_id):
    tournament = Tournament.execute_select({'id': tournament_id})[0]
    pairings = Pairing.execute_select({'tp.tournament_id': tournament_id})

    aggregated_pairings = defaultdict(list)

    for pairing in pairings:
        aggregated_pairings[pairing.player].append(pairing.get_result())

    rounds = max([len(games) for games in aggregated_pairings.values()])

    return render_template('tournament_info.html',
                           tournament=tournament,
                           pairings=aggregated_pairings,
                           rounds=rounds)
Beispiel #2
0
def tournaments():
    tournament_list = Tournament.execute_select()
    table_data = []
    for idx, tournament in enumerate(tournament_list, start=1):
        tr_data = [
            render_link(
                url_for('.tournament_info', tournament_id=tournament.id), idx),
            render_link(
                url_for('.tournament_info', tournament_id=tournament.id),
                tournament.name)
        ]
        tr_data.extend(
            tournament.get_attrs('city.name', 'date_start', 'date_end', 'pin',
                                 'is_ranked'))
        table_data.append(tr_data)

    column_names = [
        '№ з/п', 'Назва', 'Місто', 'Дата початку', 'Дата завершення', 'PIN',
        'Рейтинговий'
    ]
    table = render_table(column_names, table_data)
    return render_template('tournament_list.html', table=table)
Beispiel #3
0
def edit_tournament(tournament_id):
    edit_url = url_for('.edit_tournament', tournament_id=tournament_id)

    if request.method == 'POST':
        update_data = dict(request.form)
        update_data['is_ranked'] = 'is_ranked' in update_data.keys()
        update_data['date_start'] = request.form.getlist('date_start')[0]
        update_data['date_end'] = request.form.getlist('date_end')[0]
        try:
            Tournament.execute_update(tournament_id, update_data)
            flash('Дані турніру оновлені', 'isa_success')
            return redirect(
                url_for('.tournament_info', tournament_id=tournament_id))

        except mysql.connector.Error as err:
            flash(err.msg, 'isa_error')
            return redirect(edit_url)

    tournament = Tournament.execute_select({'id': tournament_id})[0]
    cities = City.select_attrs(['id', 'name'])

    form = '\n'.join([
        '<div class="container">',
        f'<form action="{edit_url}" method="post">',
        render_text_input_row("name", "Назва", tournament.name),
        render_select_row('city_id', "Місто", cities, tournament.city.id),
        render_date_row('date_start', 'Дата початку', tournament.date_start),
        render_date_row('date_end', 'Дата закінчення', tournament.date_end),
        render_text_input_row("pin", "EGF PIN", tournament.pin),
        render_checkbox_row('is_ranked', "Рейтинговий", tournament.is_ranked),
        render_submit(),
        '</form>',
        '</div>',
    ])

    return render_template('edit_tournament.html',
                           tournament=tournament,
                           form=form)
Beispiel #4
0
def index():
    players = Player.execute_select()[:10]
    tournaments = Tournament.execute_select()[:10]
    return render_template('index.html',
                           players=players,
                           tournaments=tournaments)