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