lektor_ng.admin.modules.dash

src/lektor_ng/admin/modules/dash.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
from typing import Any

from flask import Blueprint, current_app, render_template, request

bp = Blueprint("dash", __name__, url_prefix="/admin")


@bp.route("/", defaults={"page": ""})
@bp.route("/<any(edit, delete, preview, 'add-child', upload):page>", endpoint="app")
def app_view(**kwargs: Any) -> str:
    """Render the React admin GUI app."""
    # Note: client side app handles redirect from page='' to page='edit'
    return render_template(
        "dash.html",
        lektor_config={
            "admin_root": request.root_path,
            "site_root": request.environ["lektor.site_root"],
            "lang": current_app.config.get("lektor.ui_lang", "en"),
        },
    )