Cleanip init.py, utils.py and decorators.py

This commit is contained in:
2025-04-17 13:59:42 +02:00
parent 3b0bc856e9
commit 235072af97
5 changed files with 22 additions and 8 deletions

4
app.py
View File

@@ -1,11 +1,9 @@
from application import app
from flask import redirect, url_for
from flask_login import login_required # type: ignore
# home route
# home route, place holder in case we want a home page
@app.route("/")
@login_required
def index():
return redirect(url_for("dash.index"))

View File

@@ -20,9 +20,6 @@ db.init_app(app)
migrate = Migrate(app, db)
# bp import
from application.auth.views import auth_blueprint
from application.dash.views import dash_blueprint
# Login manager
from application.auth.models import User
@@ -32,6 +29,7 @@ login_manager.init_app(app) # type: ignore
login_manager.login_view = "auth.login" # type: ignore
# Gets all the user data
@login_manager.user_loader # type: ignore
def load_user(user_id): # type: ignore
return User.query.get(int(user_id)) # type: ignore
@@ -39,5 +37,14 @@ def load_user(user_id): # type: ignore
# Blueprint magic
# bp import
# Would like to do this at the top of the file,
# but can't easily figure out how to do this.
# I think everything that the views depend on have to be moved
# into a seperate .py and imported.
from application.auth.views import auth_blueprint
from application.dash.views import dash_blueprint
# Register blueprints
app.register_blueprint(dash_blueprint, url_prefix="/dash")
app.register_blueprint(auth_blueprint, url_prefix="/auth")

View File

@@ -4,6 +4,9 @@ from functools import wraps
from flask import redirect, url_for
# Decorator that checks if the current user is logged in and an admin
# Could be shortened by adding the login_required decorator
# and removing the logic here
def admin_required(f: Callable[..., Any]) -> Callable[..., Any]:
@wraps(f)
def decorated_function(*args: ..., **kwargs: ...):

View File

@@ -1,17 +1,23 @@
from werkzeug.utils import secure_filename
import os
from werkzeug.utils import secure_filename
from application import app
from flask_login import current_user # type: ignore
# save image to static folder
def saveImage(image: ...):
filename = secure_filename(image.filename)
# Path should be /application/static/[user_id]/[filename]
save_path = os.path.join(
app.config["UPLOAD_FOLDER"], # type: ignore
str(current_user.id),
filename,
)
# Create path is it doesn't exist
os.makedirs(os.path.dirname(save_path), exist_ok=True)
# Save the image
image.save(save_path) # type: ignore
filename2 = str(current_user.id) + "/" + filename
# Return the filename that is stored in database.
# Only done to keep a single default image, this should be done differently
filename2 = str(current_user.id) + "/" + filename # [user_id]/[filename]
return filename2

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB