Center dashboard page#

Will only be reachable for authenticated users.

from myFasthtml import *
import libs.utils as utils

<<dashboard>>

Main dashboard#

def top_menu(role):
    return Nav(
            Ul(
                Li(A("Admin", href="/admin_page")) if role == "admin" else None,
                Li(A("Dashboard", href="/dashboard")),
                Li(A("Contact", href="/unfinished")),
                Li(A("About", href="/unfinished")),
            ),
            Button("Logout", hx_post="/logout"),
    )

# @rt('/dashboard')
def dashboard(session, users, planners):
    sessemail = session['auth']
    u = users[sessemail]
    user_planners = planners("user_email = ?", (u.email,))
    user_centers = [(p.center_name) for p in user_planners] 
    select = Select(
        Option("Select a center", value="", selected=True),
        *[Option(name, value=name) for name in user_centers],
        name="center",
        id="planning-db-select",
        required=True
    )

    form = Form(
        select,
        Button("MODIFY", type="submit", onclick="document.getElementById('myForm').action='/planning_page'"),
        Button("STATUS", type="submit", onclick="document.getElementById('myForm').action='/status_page'"),
        action="/default_route",
        id="myForm",
        method="get",
    )


    """
    form = Form(
        select,
        Button("MODIFY", type="submit"),
        action="/planning_page",
        method ="get",
    )
    """
    return Main(
        top_menu(session['role']),
        Div(Div(utils.display_markdown("dashboard-t")),
            P(f"You are logged in as '{u.email}' with role '{u.role_name}'"),
            P(""),
            P(A("CONSULT", href="/consult_page")),
            Div(
                P("Choose one of the centers you can modify:"),
                form
            ) if len(user_centers) >= 1 else None,
            cls="container"
        ),
        cls="container",
    )

#