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)