Exemple #1
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)