# -*- 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)