Files
infoscreen/dashboard/app.py

46 lines
1.3 KiB
Python

# dashboard/app.py
import sys
sys.path.append('/workspace')
from dash import Dash, html, dcc, page_container, Output, Input, State, callback
from flask import Flask
import dash_bootstrap_components as dbc
import dash_mantine_components as dmc
from components.header import Header
# from components.sidebar import Sidebar
import callbacks.ui_callbacks # wichtig!
import dashboard.callbacks.overview_callbacks # <-- Das registriert die Callbacks
import dashboard.callbacks.appointments_callbacks
import dashboard.callbacks.appointment_modal_callbacks
from config import SECRET_KEY, ENV
server = Flask(__name__)
server.secret_key = SECRET_KEY
app = Dash(
__name__,
server=server,
use_pages=True,
external_stylesheets=[dbc.themes.BOOTSTRAP],
suppress_callback_exceptions=True,
serve_locally=True
)
app.layout = dmc.MantineProvider([
Header(),
html.Div([
html.Div(id="sidebar"), # KEINE className="sidebar" hier!
html.Div(page_container, className="page-content"),
dcc.Store(id="sidebar-state", data={"collapsed": False}),
], style={"display": "flex"}),
])
if __name__ == "__main__":
app.run(
host="0.0.0.0",
port=8050,
debug=(ENV=="development"),
ssl_context=("/workspace/certs/dev.crt", "/workspace/certs/dev.key")
)