from flask import Blueprint, render_template, request, redirect, url_for from datetime import date, timedelta from padel.basededatos import get_db from flask_login import login_required, current_user bp = Blueprint("reservas", __name__) @bp.route("/misreservas") @login_required def misreservas(): db = get_db() hoy = date.today() manana = hoy + timedelta(days=1) pasado = hoy + timedelta(days=2) reservas = db.execute( # "SELECT id, nombre, fecha, hora FROM reservas WHERE fecha>=? AND fecha<=? ORDER BY fecha DESC", (hoy,pasado) "SELECT id, nombre, fecha, hora FROM reservas WHERE nombre=? ORDER BY fecha DESC", (current_user.name,) ).fetchall() return render_template("reservas/misreservas.html", reservas=reservas, name=current_user.name) @bp.route("/inserta/", methods=['GET', 'POST']) @login_required def inserta(diaelegido): if request.method == "POST": fecha = diaelegido hora = request.form["hora"] db = get_db() db.execute( "INSERT INTO reservas (nombre, fecha, hora) VALUES (?, ?, ?)", (current_user.name, fecha, hora), ) db.commit() return redirect(url_for("reservas.misreservas")) @bp.route("/reservar/") @login_required def reservar(diaelegido): db = get_db() hoy = date.today() manana = hoy + timedelta(days=1) pasado = hoy + timedelta(days=2) reservas = db.execute( "SELECT id, nombre, fecha, hora FROM reservas WHERE fecha=? ORDER BY fecha DESC", (diaelegido,) ).fetchall() for fila in reservas: print("Fecha ", fila["fecha"] , ". Hora: ", fila["hora"]) return render_template("reservas/reservar.html", diaelegido=diaelegido, name=current_user.name, reservas=reservas) # Ruta para eliminar una reserva @bp.route('/eliminar_reserva/', methods=['POST']) @login_required def eliminar_reserva(id): db = get_db() db.execute( "DELETE FROM reservas WHERE id=?", (id,) ) db.commit() return redirect(url_for('reservas.misreservas')) @bp.route('/actualizar_reserva/', methods=['POST']) @login_required def actualizar_reserva(id): db = get_db() db.execute( "UPDATE reservas SET nombre=? WHERE id=?", (current_user.name, id,) ) db.commit() return redirect(url_for('reservas.misreservas')) @bp.route("/eligedia", methods=['GET', 'POST']) @login_required def eligedia(): hoy = date.today() manana = hoy + timedelta(days=1) pasado = hoy + timedelta(days=2) print("Hoy es: ", hoy) print("Mañana será: ", manana) print("Pasado será: ", pasado) if request.method == "POST": diaelegido = request.form['dias'] print("Día elegido:", diaelegido) db = get_db() horashoy = db.execute( "SELECT * FROM reservas WHERE fecha=?", (diaelegido,) ).fetchall() db.commit() if not horashoy: print("No hay horas para hoy") db = get_db() for hora in range(8,18): print("hora: %2d", hora) db.execute( "INSERT INTO reservas (nombre, fecha, hora) VALUES (?, ?, ?)", ("-", diaelegido, "%02d:00" % hora,), ) db.commit() horashoy = db.execute( "SELECT * FROM horas WHERE fecha=?", (diaelegido,) ).fetchall() db.commit() print("eligedia: horashoy: ", horashoy) return redirect(url_for("reservas.reservar",diaelegido=diaelegido)) return render_template("reservas/eligedia.html",hoy=hoy,manana=manana,pasado=pasado)