diff --git a/Padel/padel/paginas.py b/Padel/padel/paginas.py index 8807412..bad1c56 100644 --- a/Padel/padel/paginas.py +++ b/Padel/padel/paginas.py @@ -17,8 +17,6 @@ app.config['MAIL_PASSWORD'] = 'kbryvwxkockqckss' app.config['MAIL_USE_TLS'] = False app.config['MAIL_USE_SSL'] = True mail = Mail(app) -#mail.init_app(app) - @bp.route("/") def inicio(): diff --git a/Padel/padel/reservas.py b/Padel/padel/reservas.py index ccb6b71..cf383ff 100644 --- a/Padel/padel/reservas.py +++ b/Padel/padel/reservas.py @@ -1,44 +1,41 @@ -from flask import Blueprint, render_template, request, redirect, url_for +from flask import Flask, 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 +from flask_mail import Mail, Message bp = Blueprint("reservas", __name__) +# Parámetros para el envío de correos + +app = Flask(__name__) +app.config['MAIL_SERVER']= 'smtp.mail.yahoo.com' +app.config['MAIL_PORT'] = 465 +app.config['MAIL_USERNAME'] = 'celestino_rey@ymail.com' +app.config['MAIL_PASSWORD'] = 'kbryvwxkockqckss' +app.config['MAIL_USE_TLS'] = False +app.config['MAIL_USE_SSL'] = True +mail = Mail(app) + +# Ruta para mostrar las reservas del usuario. + @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")) - +# ruta para mostrar la tabla del día en concreto con todas las horas +# las horas no usadas aparecen con el botón "Reservar" y las horas reservadas por el usuario +# aparecen con el botón "Eliminar" @bp.route("/reservar/") @login_required @@ -46,20 +43,14 @@ 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): @@ -72,6 +63,8 @@ def eliminar_reserva(id): return redirect(url_for('reservas.misreservas')) +# ruta para actualizar la reserva. Actualiza porque en la bd están todas las horas de un día +# y lo que se hace es simplemente colocar el nombre del usuario en la hora elegida @bp.route('/actualizar_reserva/', methods=['POST']) @login_required @@ -82,9 +75,26 @@ def actualizar_reserva(id): "UPDATE reservas SET nombre=? WHERE id=?", (current_user.name, id,) ) db.commit() + + print("Buscando correo del usuario '",current_user.name.strip() + ,"'") + usuario = db.execute( + "SELECT email FROM usuarios WHERE nombre=?", (current_user.name,) + ) + + for fila in usuario: + print("Correo del usuario: ",fila["email"]) + + msg = Message('Reserva de pista de padel confirmada', sender='celestino_rey@ymail.com', recipients=['king.bernard.b@gmail.com']) + msg.body = "Hola, te confirmo que has reservado la pista de Devesa Park" + mail.send(msg) + return redirect(url_for('reservas.misreservas')) +# Ruta para elegir el día en el que se va a efectuar la reserva +# Se ofrece el día actual y los dos siguientes. +# si el día que se elige no está en la base de datos, se crean los registros de todas las horas para ese día. @bp.route("/eligedia", methods=['GET', 'POST']) @login_required @@ -92,11 +102,21 @@ def eligedia(): hoy = date.today() manana = hoy + timedelta(days=1) pasado = hoy + timedelta(days=2) + ayer = hoy - timedelta(days=1) + print("Ayer fue: ", ayer) print("Hoy es: ", hoy) print("Mañana será: ", manana) print("Pasado será: ", pasado) + # borra los registros del día anterior al de hoy + + db = get_db() + db.execute( + "DELETE FROM reservas WHERE fecha=?", (ayer,) + ) + db.commit() + if request.method == "POST": diaelegido = request.form['dias'] @@ -128,7 +148,6 @@ def eligedia(): 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)