Ajout d'un menu de navigation

This commit is contained in:
Colin Maudry
2025-04-21 18:09:10 +02:00
parent 75e09b0bc6
commit 60d204b061
6 changed files with 175 additions and 86 deletions
+9
View File
@@ -0,0 +1,9 @@
from dash import register_page, html, page_registry
title = "À propos"
register_page(
__name__, path="/a-propos", title=f"decp.info - {title}", name=title, order=3
)
layout = [html.H2(title)]
+95
View File
@@ -0,0 +1,95 @@
from dash import (
Dash,
html,
dcc,
callback,
Output,
Input,
dash_table,
page_container,
register_page,
)
from dotenv import load_dotenv
import os
import polars as pl
load_dotenv()
df = pl.read_parquet(os.getenv("DATA_FILE_PARQUET_PATH"))
title = "Tableau"
register_page(__name__, path="/", title=f"decp.info - {title}", name=title, order=1)
datatable = dash_table.DataTable(
cell_selectable=False,
id="table",
data=df.to_dicts(),
page_size=20,
page_current=0,
page_action="native",
filter_action="native",
filter_options={"case": "insensitive", "placeholder_text": "Filtrer..."},
columns=[
{"name": i, "id": i, "deletable": True, "selectable": False} for i in df.columns
],
selected_columns=[],
selected_rows=[],
sort_action="native",
sort_mode="multi",
export_format="xlsx",
export_columns="visible",
export_headers="ids",
style_cell_conditional=[
{
"if": {"column_id": "objet"},
"minWidth": "300px",
"textAlign": "left",
"overflow": "hidden",
"lineHeight": "14px",
"whiteSpace": "normal",
},
],
)
layout = [
html.Div(
html.Details(
children=[
html.Summary(html.H3("Utilisation")),
dcc.Markdown(
"""
**Filtres**
Vous pouvez appliquer un filtre pour chaque colonne en entrant du texte sous le nom de la colonne, puis en tapant sur `Entrée`.
- Champs textuels : la recherche est insensible à la casse (majuscules/minuscules).
- Champs numériques : possibilité d'ajouter < ou > devant le chiffre recherché pour chercher des valeurs inférieures ou supérieur.
**Télécharger le résultat**
Vous pouvez télécharger le résultat de vos filtres et tris en cliquant sur Télécharger au format Excel.
Les colonnes supprimées seront absentes du fichier téléchargé.
Si vous téléchargez un volume important de données, il se peut que vous attendiez quelques minutes avant le début du téléchargement.
"""
),
],
id="instructions",
),
id="header",
),
# html.Div(
# [
# "Recherche dans objet : ",
# dcc.Input(id="search", value="", type="text"),
# ]
# )]),
dcc.Loading(
overlay_style={"visibility": "visible", "filter": "blur(2px)"},
id="loading-1",
type="default",
children=datatable,
),
]
+9
View File
@@ -0,0 +1,9 @@
from dash import register_page, html
title = "Statistiques"
register_page(
__name__, path="/statistiques", title=f"decp.info - {title}", name=title, order=2
)
layout = [html.H2(title)]