Browse Source

Modelo de tabla de reservas e instrucciones en readme

politica
Celestino Rey 1 year ago
parent
commit
b3c083f333
6 changed files with 84 additions and 7 deletions
  1. +20
    -1
      Padel/padel/README.md
  2. +4
    -1
      Padel/padel/__init__.py
  3. +7
    -1
      Padel/padel/models.py
  4. +7
    -4
      Padel/padel/reservas.py
  5. +32
    -0
      Padel/padel/templates/reservas/reservahoras.html
  6. +14
    -0
      Padel/requirements.txt

+ 20
- 1
Padel/padel/README.md View File

@ -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
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/

+ 4
- 1
Padel/padel/__init__.py View File

@ -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

+ 7
- 1
Padel/padel/models.py View File

@ -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))
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)

+ 7
- 4
Padel/padel/reservas.py View File

@ -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'))


+ 32
- 0
Padel/padel/templates/reservas/reservahoras.html View File

@ -0,0 +1,32 @@
{% extends 'base.html' %}
{% block header %}
<h2>{% block title %}Hacer una nueva reserva{% endblock title %}</h2>
{% endblock header %}
{% block content %}
<div>
<p>El día seleccionado es {{ diaelegido }} {{ horashoy[0] }}</p>
</div>
<div>
{% for fila in horashoy %}
{% for columna in range(14) %}
<p>{{ fila["fecha"] }}</p>
{% endfor %}
{% endfor %}
</div>
<div class="contenedor">
{% for row in range(1) %}
{% for col in range(14) %}
<form class=horarios action="/reservahoras" method="POST">
<input type="hidden" name="row" value="{{ row }}">
<input type="hidden" name="col" value="{{ col }}">
<button type="submit" class="cuadrado"></button>
</form>
{% endfor %}
{% endfor %}
</div>
{% endblock content %}

+ 14
- 0
Padel/requirements.txt View File

@ -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

Loading…
Cancel
Save