Skip to content

Commit 66baa45

Browse files
committed
deployable version
1 parent 2c05a60 commit 66baa45

File tree

2 files changed

+89
-54
lines changed

2 files changed

+89
-54
lines changed

apps/dash-manufacture-spc-dashboard/app.py

Lines changed: 86 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import os
22
import pathlib
3-
43
import dash
5-
import dash_core_components as dcc
6-
import dash_html_components as html
7-
from dash.dependencies import Input, Output, State
8-
import dash_table
4+
# import dash_core_components as dcc
5+
# import dash_html_components as html
6+
# from dash.dependencies import Input, Output, State
7+
from dash import dash_table, Input, Output, State, html, dcc, callback
98
import plotly.graph_objs as go
109
import dash_daq as daq
11-
10+
import dash_mantine_components as dmc
1211
import pandas as pd
1312

1413
app = dash.Dash(
@@ -185,38 +184,60 @@ def build_tab_1():
185184
html.Div(id="value-setter-panel"),
186185
html.Br(),
187186
html.Div(
188-
id="button-div",
189187
children=[
190-
html.Button("Update", id="value-setter-set-btn"),
191-
html.Button(
192-
"View current setup",
193-
id="value-setter-view-btn",
194-
n_clicks=0,
188+
html.Div(
189+
id="button-div",
190+
children=[
191+
html.Div(
192+
children=[
193+
dmc.HoverCard(
194+
withArrow=True,
195+
width=200,
196+
style={"width": "100%"},
197+
shadow="md",
198+
children=[
199+
dmc.HoverCardTarget(
200+
html.Button("Update", id="value-setter-set-btn", disabled=True),
201+
),
202+
dmc.HoverCardDropdown(
203+
dmc.Text(
204+
"DISABLED: Change control limits in dashboard", size="sm", color='black'
205+
)
206+
),
207+
]
208+
)
209+
],
210+
),
211+
html.Button(
212+
"View current setup",
213+
id="value-setter-view-btn",
214+
n_clicks=0,
215+
),
216+
]
195217
),
196218
],
197-
),
198-
html.Div(
199-
id="value-setter-view-output", className="output-datatable"
200-
),
201-
],
202219
),
220+
html.Div(
221+
id="value-setter-view-output", className="output-datatable"
222+
),
223+
]),
203224
],
204225
),
205226
]
206227

207228

208-
ud_usl_input = daq.NumericInput(
209-
id="ud_usl_input", className="setting-input", size=200, max=9999999
210-
)
211-
ud_lsl_input = daq.NumericInput(
212-
id="ud_lsl_input", className="setting-input", size=200, max=9999999
213-
)
214-
ud_ucl_input = daq.NumericInput(
215-
id="ud_ucl_input", className="setting-input", size=200, max=9999999
216-
)
217-
ud_lcl_input = daq.NumericInput(
218-
id="ud_lcl_input", className="setting-input", size=200, max=9999999
219-
)
229+
# ud_usl_input = daq.NumericInput(
230+
# id="ud_usl_input", className="setting-input", size=200, max=9999999
231+
# )
232+
# ud_lsl_input = daq.NumericInput(
233+
# id="ud_lsl_input", className="setting-input", size=200, max=9999999
234+
# )
235+
# ud_ucl_input = daq.NumericInput(
236+
# id="ud_ucl_input", className="setting-input", size=200, max=9999999
237+
# )
238+
# ud_lcl_input = daq.NumericInput(
239+
# id="ud_lcl_input", className="setting-input", size=200, max=9999999
240+
# )
220241

221242

222243
def build_value_setter_line(line_num, label, value, col3):
@@ -953,20 +974,21 @@ def update_gauge(interval):
953974

954975

955976
# ===== Callbacks to update values based on store data and dropdown selection =====
956-
@app.callback(
957-
output=[
977+
@callback(
978+
# @app.callback(
979+
# output=[
958980
Output("value-setter-panel", "children"),
959-
Output("ud_usl_input", "value"),
960-
Output("ud_lsl_input", "value"),
961-
Output("ud_ucl_input", "value"),
962-
Output("ud_lcl_input", "value"),
963-
],
981+
# Output("ud_usl_input", "value"),
982+
# Output("ud_lsl_input", "value"),
983+
# Output("ud_ucl_input", "value"),
984+
# Output("ud_lcl_input", "value"),
985+
# ],
964986
inputs=[Input("metric-select-dropdown", "value")],
965987
state=[State("value-setter-store", "data")],
966988
)
967989
def build_value_setter_panel(dd_select, state_value):
968990
return (
969-
[
991+
# [
970992
build_value_setter_line(
971993
"value-setter-panel-header",
972994
"Specs",
@@ -977,31 +999,31 @@ def build_value_setter_panel(dd_select, state_value):
977999
"value-setter-panel-usl",
9781000
"Upper Specification limit",
9791001
state_dict[dd_select]["usl"],
980-
ud_usl_input,
1002+
daq.NumericInput(id="ud_usl_input", className="setting-input", size=200, max=9999999)
9811003
),
9821004
build_value_setter_line(
9831005
"value-setter-panel-lsl",
9841006
"Lower Specification limit",
9851007
state_dict[dd_select]["lsl"],
986-
ud_lsl_input,
1008+
daq.NumericInput(id="ud_lsl_input", className="setting-input", size=200, max=9999999)
9871009
),
9881010
build_value_setter_line(
9891011
"value-setter-panel-ucl",
9901012
"Upper Control limit",
9911013
state_dict[dd_select]["ucl"],
992-
ud_ucl_input,
1014+
daq.NumericInput(id="ud_ucl_input", className="setting-input", size=200, max=9999999)
9931015
),
9941016
build_value_setter_line(
9951017
"value-setter-panel-lcl",
9961018
"Lower Control limit",
9971019
state_dict[dd_select]["lcl"],
998-
ud_lcl_input,
1020+
daq.NumericInput(id="ud_lcl_input", className="setting-input", size=200, max=9999999),
9991021
),
1000-
],
1001-
state_value[dd_select]["usl"],
1002-
state_value[dd_select]["lsl"],
1003-
state_value[dd_select]["ucl"],
1004-
state_value[dd_select]["lcl"],
1022+
# ],
1023+
# state_value[dd_select]["usl"],
1024+
# state_value[dd_select]["lsl"],
1025+
# state_value[dd_select]["ucl"],
1026+
# state_value[dd_select]["lcl"],
10051027
)
10061028

10071029

@@ -1012,13 +1034,25 @@ def build_value_setter_panel(dd_select, state_value):
10121034
state=[
10131035
State("metric-select-dropdown", "value"),
10141036
State("value-setter-store", "data"),
1015-
State("ud_usl_input", "value"),
1016-
State("ud_lsl_input", "value"),
1017-
State("ud_ucl_input", "value"),
1018-
State("ud_lcl_input", "value"),
1037+
# State("ud_usl_input", "value"),
1038+
# State("ud_lsl_input", "value"),
1039+
# State("ud_ucl_input", "value"),
1040+
# State("ud_lcl_input", "value"),
10191041
],
10201042
)
1021-
def set_value_setter_store(set_btn, param, data, usl, lsl, ucl, lcl):
1043+
def set_value_setter_store(set_btn, param, data):
1044+
usl = daq.NumericInput(
1045+
id="ud_usl_input", className="setting-input", size=200, max=9999999
1046+
)
1047+
lsl = daq.NumericInput(
1048+
id="ud_lsl_input", className="setting-input", size=200, max=9999999
1049+
)
1050+
ucl = daq.NumericInput(
1051+
id="ud_ucl_input", className="setting-input", size=200, max=9999999
1052+
)
1053+
lcl = daq.NumericInput(
1054+
id="ud_lcl_input", className="setting-input", size=200, max=9999999
1055+
)
10221056
if set_btn is None:
10231057
return data
10241058
else:
@@ -1082,7 +1116,7 @@ def show_current_specs(n_clicks, dd_select, store_data):
10821116
{"selector": "table", "rule": "--accent: #1e2130;"},
10831117
{"selector": "tr", "rule": "background-color: transparent"},
10841118
],
1085-
data=new_df.to_dict("rows"),
1119+
data=new_df.to_dict(orient="records"),
10861120
columns=[{"id": c, "name": c} for c in ["Specs", "Current Setup"]],
10871121
)
10881122

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
1-
dash==1.0.2
2-
dash-daq==0.1.7
1+
dash>=1.0.2
2+
dash-daq>=0.1.7
33
gunicorn>=19.9.0
44
numpy>=1.16.2
55
pandas>=0.24.2
6+
dash-mantine-components==0.12.1

0 commit comments

Comments
 (0)