added some more changes

This commit is contained in:
2025-09-06 07:27:08 +02:00
parent ab1d541e2c
commit 2d73ae8d63
3 changed files with 16 additions and 9 deletions

Binary file not shown.

View File

@ -1,6 +1,5 @@
import pandas as pd import pandas as pd
import plotly.express as px from dash import Dash, dcc, html, dash_table
from dash import Dash, dcc, html
from dash.dependencies import Input, Output from dash.dependencies import Input, Output
from ..data.loader import DataSchema from ..data.loader import DataSchema
@ -9,7 +8,7 @@ from . import ids
def render(app: Dash, data: pd.DataFrame) -> html.Div: def render(app: Dash, data: pd.DataFrame) -> html.Div:
@app.callback( @app.callback(
Output(ids.BAR_CHART, "children"), Output(ids.DATA_TABLE, "children"),
[ [
Input(ids.YEAR_DROPDOWN, "value"), Input(ids.YEAR_DROPDOWN, "value"),
Input(ids.MONTH_DROPDOWN, "value"), Input(ids.MONTH_DROPDOWN, "value"),
@ -24,7 +23,8 @@ def render(app: Dash, data: pd.DataFrame) -> html.Div:
) )
if filtered_data.shape[0] == 0: if filtered_data.shape[0] == 0:
return html.Div("No data selected.", id=ids.DATA_TABLE) return html.Div("No data selected.")
def create_pivot_table() -> pd.DataFrame: def create_pivot_table() -> pd.DataFrame:
pt = filtered_data.pivot_table( pt = filtered_data.pivot_table(
values=DataSchema.AMOUNT, values=DataSchema.AMOUNT,
@ -35,6 +35,11 @@ def render(app: Dash, data: pd.DataFrame) -> html.Div:
) )
return pt.reset_index().sort_values(DataSchema.AMOUNT, ascending=False) return pt.reset_index().sort_values(DataSchema.AMOUNT, ascending=False)
return html.Div(dcc.Data_table(data=create_pivot_table(data), id=ids.DATA_TABLE) pt = create_pivot_table()
return html.Div(id=ids.DATA_TABLE) return dash_table.DataTable(
data=pt.to_dict("records"),
columns=[{"name": i, "id": i} for i in pt.columns],
)
return html.Div(id=ids.DATA_TABLE)

View File

@ -1,14 +1,15 @@
import pandas as pd import pandas as pd
from dash import Dash, html from dash import Dash, html
from src.components import ( from src.components import (
bar_chart, bar_chart,
category_dropdown,
month_dropdown,
data_table, data_table,
pie_chart,
year_dropdown, year_dropdown,
month_dropdown,
category_dropdown,
) )
def create_layout(app: Dash, data: pd.DataFrame) -> html.Div: def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
return html.Div( return html.Div(
className="app-div", className="app-div",
@ -24,6 +25,7 @@ def create_layout(app: Dash, data: pd.DataFrame) -> html.Div:
], ],
), ),
bar_chart.render(app, data), bar_chart.render(app, data),
pie_chart.render(app, data),
data_table.render(app, data), data_table.render(app, data),
], ],
) )