From 721f499d0b0cf639d7da779eeca02e0c900589fe Mon Sep 17 00:00:00 2001 From: brandenberger <laurencebrandenberger@gmail.com> Date: Wed, 18 Mar 2020 11:56:09 +0100 Subject: [PATCH] update dashboard. --- src/python/dashboard/app.py | 15 +++++++----- src/python/dashboard/callbacks.py | 39 +++++++++++++++++++++---------- 2 files changed, 36 insertions(+), 18 deletions(-) diff --git a/src/python/dashboard/app.py b/src/python/dashboard/app.py index 48d812ea..de8ef0ab 100644 --- a/src/python/dashboard/app.py +++ b/src/python/dashboard/app.py @@ -19,7 +19,7 @@ app = dash.Dash(__name__, external_stylesheets=external_stylesheets) app.layout = html.Div([ # storage - dcc.Store(id='session', storage_type='session'), + dcc.Store(id='session', storage_type='memory'), # html.Div([ # html.Button(id="start-button",n_clicks=0, children='Start') # ],id="start-page"), @@ -37,13 +37,16 @@ app.layout = html.Div([ html.Div([ html.Div([ html.H3("Validation"), - html.Div([html.Pre("File ID:",className="label"), - html.Pre("11000103",className="value",id="file-id"), - html.Pre("Year:",className="label"), - html.Pre("1995",className="value",id="year"),],className="meta-container"), + html.Div([html.Pre("Year:",className="label"), + html.Pre("",className="value",id="year"), + html.Pre("File ID:",className="label"), + html.Pre("",className="value",id="file-id"), + html.Pre("Page ID:",className="label"), + html.Pre("",className="value",id="page-id"), + ],className="meta-container"), html.Div([ - html.Button(id="skip-button",n_clicks=0, children='Skip',style={"marginRight":"1rem"}), + html.Button(id="skip-button",n_clicks=0, children='Skip',style={"marginRight":"1rem","display":"none"}), html.Button(id='commit-button', n_clicks=0, children='Commit',style={"backgroundColor":"rgba(0,126,255,.08)","color":"#007eff"}) ]) ]), diff --git a/src/python/dashboard/callbacks.py b/src/python/dashboard/callbacks.py index b9504101..a8d7e3a6 100644 --- a/src/python/dashboard/callbacks.py +++ b/src/python/dashboard/callbacks.py @@ -35,7 +35,6 @@ def boxes_to_list(bboxes): return box_list def setup(app): - @app.callback( Output("canvas","categories"), @@ -47,20 +46,38 @@ def setup(app): return [cat] return cat - - @app.callback( Output("session","data"), - [Input("skip-button","n_clicks")] + [Input("skip-button","n_clicks")], + [State("session","data")] ) - def skip(n_clicks): - if n_clicks is None: - raise PreventUpdate + def skip(n_clicks,past_data): + if n_clicks is None or n_clicks<1: + return past_data print("Next page...") image,labelled_bboxes,metaData = exhaustive_labelling.load_nextPageToLabel() - return json.dumps({"image":image_to_byte(image),"boxes":boxes_to_list(labelled_bboxes),"meta":serialize_obj(metaData)}) + @app.callback( + Output("file-id","children"), + [Input("session","data")] + ) + def update_file_id(data): + return json.loads(data).get("meta",{}).get("file_id","") + + @app.callback( + Output("page-id","children"), + [Input("session","data")] + ) + def update_page_id(data): + return json.loads(data).get("meta",{}).get("page_id","") + + @app.callback( + Output("year","children"), + [Input("session","data")] + ) + def update_year(data): + return json.loads(data).get("meta",{}).get("year","") @app.callback( Output("skip-button","n_clicks"), @@ -71,19 +88,17 @@ def setup(app): State("skip-button","n_clicks")] ) def commit(n_clicks,cutoff,session,data,n_clicks_state): - print("Commiting...") + if (n_clicks<1 or n_clicks is None): + return n_clicks_state + 1 meta = json.loads(session)["meta"] - m_entry = [] for entry in data: - if entry["pred"]>cutoff: entry["prob"] = 1 else: entry["prob"] = 0 del entry["pred"] m_entry.append(entry) - print("entry",m_entry) if len(m_entry): exhaustive_labelling.save_labelledPage(m_entry,meta) -- GitLab