Implement /admin using flask-admin. Overall cleanup

This commit is contained in:
Patrick Jentsch
2024-12-16 15:37:19 +01:00
parent c405061574
commit d4cd313940
25 changed files with 84 additions and 632 deletions

View File

@ -3,6 +3,7 @@ from config import Config
from docker import DockerClient
from flask import Flask
from flask.logging import default_handler
from flask_admin import Admin
from flask_apscheduler import APScheduler
from flask_assets import Environment
from flask_login import LoginManager
@ -15,10 +16,12 @@ from flask_sqlalchemy import SQLAlchemy
from flask_hashids import Hashids
from logging import Formatter, StreamHandler
from werkzeug.middleware.proxy_fix import ProxyFix
from .extensions.nopaque_flask_admin_views import AdminIndexView, ModelView
docker_client = DockerClient.from_env()
admin = Admin()
apifairy = APIFairy()
assets = Environment()
db = SQLAlchemy()
@ -74,6 +77,7 @@ def create_app(config: Config = Config) -> Flask:
from .models import AnonymousUser, User
admin.init_app(app, index_view=AdminIndexView())
apifairy.init_app(app)
assets.init_app(app)
db.init_app(app)
@ -92,9 +96,6 @@ def create_app(config: Config = Config) -> Flask:
# endregion Extensions
# region Blueprints
from .blueprints.admin import bp as admin_blueprint
app.register_blueprint(admin_blueprint, url_prefix='/admin')
from .blueprints.api import bp as api_blueprint
app.register_blueprint(api_blueprint, url_prefix='/api')
@ -127,6 +128,10 @@ def create_app(config: Config = Config) -> Flask:
from .blueprints.workshops import bp as workshops_blueprint
app.register_blueprint(workshops_blueprint, url_prefix='/workshops')
from .models import _models
for model in _models:
admin.add_view(ModelView(model, db.session, category='Database'))
# endregion Blueprints
# region SocketIO Namespaces