1
1
import os
2
2
import pathlib
3
-
4
3
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
9
8
import plotly .graph_objs as go
10
9
import dash_daq as daq
11
-
10
+ import dash_mantine_components as dmc
12
11
import pandas as pd
13
12
14
13
app = dash .Dash (
@@ -185,38 +184,60 @@ def build_tab_1():
185
184
html .Div (id = "value-setter-panel" ),
186
185
html .Br (),
187
186
html .Div (
188
- id = "button-div" ,
189
187
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
+ ]
195
217
),
196
218
],
197
- ),
198
- html .Div (
199
- id = "value-setter-view-output" , className = "output-datatable"
200
- ),
201
- ],
202
219
),
220
+ html .Div (
221
+ id = "value-setter-view-output" , className = "output-datatable"
222
+ ),
223
+ ]),
203
224
],
204
225
),
205
226
]
206
227
207
228
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
+ # )
220
241
221
242
222
243
def build_value_setter_line (line_num , label , value , col3 ):
@@ -953,20 +974,21 @@ def update_gauge(interval):
953
974
954
975
955
976
# ===== Callbacks to update values based on store data and dropdown selection =====
956
- @app .callback (
957
- output = [
977
+ @callback (
978
+ # @app.callback(
979
+ # output=[
958
980
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
+ # ],
964
986
inputs = [Input ("metric-select-dropdown" , "value" )],
965
987
state = [State ("value-setter-store" , "data" )],
966
988
)
967
989
def build_value_setter_panel (dd_select , state_value ):
968
990
return (
969
- [
991
+ # [
970
992
build_value_setter_line (
971
993
"value-setter-panel-header" ,
972
994
"Specs" ,
@@ -977,31 +999,31 @@ def build_value_setter_panel(dd_select, state_value):
977
999
"value-setter-panel-usl" ,
978
1000
"Upper Specification limit" ,
979
1001
state_dict [dd_select ]["usl" ],
980
- ud_usl_input ,
1002
+ daq . NumericInput ( id = " ud_usl_input" , className = "setting-input" , size = 200 , max = 9999999 )
981
1003
),
982
1004
build_value_setter_line (
983
1005
"value-setter-panel-lsl" ,
984
1006
"Lower Specification limit" ,
985
1007
state_dict [dd_select ]["lsl" ],
986
- ud_lsl_input ,
1008
+ daq . NumericInput ( id = " ud_lsl_input" , className = "setting-input" , size = 200 , max = 9999999 )
987
1009
),
988
1010
build_value_setter_line (
989
1011
"value-setter-panel-ucl" ,
990
1012
"Upper Control limit" ,
991
1013
state_dict [dd_select ]["ucl" ],
992
- ud_ucl_input ,
1014
+ daq . NumericInput ( id = " ud_ucl_input" , className = "setting-input" , size = 200 , max = 9999999 )
993
1015
),
994
1016
build_value_setter_line (
995
1017
"value-setter-panel-lcl" ,
996
1018
"Lower Control limit" ,
997
1019
state_dict [dd_select ]["lcl" ],
998
- ud_lcl_input ,
1020
+ daq . NumericInput ( id = " ud_lcl_input" , className = "setting-input" , size = 200 , max = 9999999 ) ,
999
1021
),
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"],
1005
1027
)
1006
1028
1007
1029
@@ -1012,13 +1034,25 @@ def build_value_setter_panel(dd_select, state_value):
1012
1034
state = [
1013
1035
State ("metric-select-dropdown" , "value" ),
1014
1036
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"),
1019
1041
],
1020
1042
)
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
+ )
1022
1056
if set_btn is None :
1023
1057
return data
1024
1058
else :
@@ -1082,7 +1116,7 @@ def show_current_specs(n_clicks, dd_select, store_data):
1082
1116
{"selector" : "table" , "rule" : "--accent: #1e2130;" },
1083
1117
{"selector" : "tr" , "rule" : "background-color: transparent" },
1084
1118
],
1085
- data = new_df .to_dict ("rows " ),
1119
+ data = new_df .to_dict (orient = "records " ),
1086
1120
columns = [{"id" : c , "name" : c } for c in ["Specs" , "Current Setup" ]],
1087
1121
)
1088
1122
0 commit comments