From b3c083f3338d1cf7f56147fffc48baa6fd1a0360 Mon Sep 17 00:00:00 2001 From: Celestino Rey Date: Tue, 14 May 2024 19:58:23 +0200 Subject: [PATCH] Modelo de tabla de reservas e instrucciones en readme --- Padel/padel/README.md | 21 +++++++++++- Padel/padel/__init__.py | 5 ++- Padel/padel/models.py | 8 ++++- Padel/padel/reservas.py | 11 ++++--- .../templates/reservas/reservahoras.html | 32 +++++++++++++++++++ Padel/requirements.txt | 14 ++++++++ 6 files changed, 84 insertions(+), 7 deletions(-) create mode 100644 Padel/padel/templates/reservas/reservahoras.html create mode 100644 Padel/requirements.txt diff --git a/Padel/padel/README.md b/Padel/padel/README.md index a732e42..4bda25a 100644 --- a/Padel/padel/README.md +++ b/Padel/padel/README.md @@ -8,4 +8,23 @@ https://www.digitalocean.com/community/tutorials/how-to-serve-flask-applications # crear un sitio con flask -https://dev.to/seattledataguy/building-your-first-website-with-flask-part-1-hello-world-and-beyond-53ik \ No newline at end of file +https://dev.to/seattledataguy/building-your-first-website-with-flask-part-1-hello-world-and-beyond-53ik + +# para crear la base de datos usando model.py + +1. en el entorno + export FLASK_APP=padel + flask shell + +2. en la shell de flask + >>> from padel import db, create_app, models + >>> db.create_all() + +# Para crear el fichero requirements.txt + + pip freeze > requirements.txt + +# Para dockerizar la app + + https://www.freecodecamp.org/news/how-to-dockerize-a-flask-app/ + diff --git a/Padel/padel/__init__.py b/Padel/padel/__init__.py index 670341f..633ac62 100644 --- a/Padel/padel/__init__.py +++ b/Padel/padel/__init__.py @@ -17,7 +17,6 @@ def create_app(): app = Flask(__name__) app.config.from_prefixed_env() - app.config['SECRET_KEY'] = 'secret-key-goes-here' app.config['SQLALCHEMY_DATABASE_URI'] = 'sqlite:///db.sqlite' @@ -48,5 +47,9 @@ def create_app(): print(f"Current Environment: {os.getenv('ENVIRONMENT')}") print(f"Using Database: {app.config.get('DATABASE')}") + my_env = os.getenv("ENVIA_EMAIL", 'False').lower() in ('true', '1', 't') + + print(f"Sending emails: ", my_env) + return app diff --git a/Padel/padel/models.py b/Padel/padel/models.py index 669d3d0..c43ba50 100644 --- a/Padel/padel/models.py +++ b/Padel/padel/models.py @@ -6,4 +6,10 @@ class User(UserMixin, db.Model): id = db.Column(db.Integer, primary_key=True) # primary keys are required by SQLAlchemy email = db.Column(db.String(100), unique=True) password = db.Column(db.String(100)) - name = db.Column(db.String(1000)) \ No newline at end of file + name = db.Column(db.String(1000)) + +class Reserva(db.Model): + id = db.Column(db.Integer, primary_key=True) # primary keys are required by SQLAlchemy + nombre = db.Column(db.String(50)) + fecha = db.Column(db.Date) + hora = db.Column(db.Time) diff --git a/Padel/padel/reservas.py b/Padel/padel/reservas.py index d77c81a..728af49 100644 --- a/Padel/padel/reservas.py +++ b/Padel/padel/reservas.py @@ -5,6 +5,7 @@ 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 +import os bp = Blueprint("reservas", __name__) @@ -76,12 +77,14 @@ def actualizar_reserva(id): ) db.commit() - msg = Message('Reserva de pista de padel confirmada', sender='celestino_rey@ymail.com', recipients=[current_user.email]) - msg.body = "Hola, " + current_user.name + " te confirmo que has reservado la pista de Devesa Park" + enviar_correos = os.getenv("ENVIA_EMAIL", 'False').lower() in ('true', '1', 't') - print("el mensaje será: ", msg.body, " y se enviará a ",current_user.email) + # print(f"Sending emails: ", my_env) - mail.send(msg) + if enviar_correos == True: + msg = Message('Reserva de pista de padel confirmada', sender='celestino_rey@ymail.com', recipients=[current_user.email]) + msg.body = "Hola, " + current_user.name + " te confirmo que has reservado la pista de Devesa Park" + mail.send(msg) return redirect(url_for('reservas.misreservas')) diff --git a/Padel/padel/templates/reservas/reservahoras.html b/Padel/padel/templates/reservas/reservahoras.html new file mode 100644 index 0000000..84e0a8f --- /dev/null +++ b/Padel/padel/templates/reservas/reservahoras.html @@ -0,0 +1,32 @@ +{% extends 'base.html' %} + +{% block header %} +

{% block title %}Hacer una nueva reserva{% endblock title %}

+{% endblock header %} + +{% block content %} +
+

El día seleccionado es {{ diaelegido }} {{ horashoy[0] }}

+
+ +
+{% for fila in horashoy %} + {% for columna in range(14) %} +

{{ fila["fecha"] }}

+ {% endfor %} +{% endfor %} +
+
+ + {% for row in range(1) %} + {% for col in range(14) %} +
+ + + +
+ {% endfor %} + {% endfor %} +
+{% endblock content %} + diff --git a/Padel/requirements.txt b/Padel/requirements.txt new file mode 100644 index 0000000..9a9af7a --- /dev/null +++ b/Padel/requirements.txt @@ -0,0 +1,14 @@ +blinker==1.8.2 +click==8.1.7 +Flask==3.0.3 +Flask-Login==0.6.3 +Flask-Mail==0.9.1 +Flask-SQLAlchemy==3.1.1 +greenlet==3.0.3 +itsdangerous==2.2.0 +Jinja2==3.1.4 +MarkupSafe==2.1.5 +python-dotenv==1.0.1 +SQLAlchemy==2.0.30 +typing_extensions==4.11.0 +Werkzeug==3.0.3