Files
boehmitools-training/plugins/trainingstracker/backend.py
T
2026-09-01 16:27:43 +02:00

34 lines
1.2 KiB
Python

# -*- coding: utf-8 -*-
"""Plugin-Adapter fuer die schlanke mobile Trainingsansicht."""
from __future__ import annotations
import os
from pathlib import Path
from a2wsgi import WSGIMiddleware
from core.loader import load_module
def create_app(ctx):
"""Haengt die Flask-App unter /plugins/trainingstracker ein."""
tracker_data_dir = Path(ctx.data_dir)
plans_dir = tracker_data_dir.parent / "trainingsplan" / "plans"
previous_data = os.environ.get("TRAININGSTRACKER_DATA_DIR")
previous_plans = os.environ.get("TRAININGSTRACKER_PLANS_DIR")
os.environ["TRAININGSTRACKER_DATA_DIR"] = str(tracker_data_dir)
os.environ["TRAININGSTRACKER_PLANS_DIR"] = str(plans_dir)
try:
module = load_module(ctx.path("app.py"), f"btp_{ctx.id}_app")
finally:
if previous_data is None:
os.environ.pop("TRAININGSTRACKER_DATA_DIR", None)
else:
os.environ["TRAININGSTRACKER_DATA_DIR"] = previous_data
if previous_plans is None:
os.environ.pop("TRAININGSTRACKER_PLANS_DIR", None)
else:
os.environ["TRAININGSTRACKER_PLANS_DIR"] = previous_plans
return WSGIMiddleware(module.app)