UTI: Move constatns to a separate file
[csit.git] / resources / tools / dash / app / pal / report / report.py
index d22a0b6..c6008ca 100644 (file)
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-"""Instantiate the Report Dash application.
+"""Instantiate the Report Dash applocation.
 """
-
 import dash
-from dash import dcc
-from dash import html
-from dash import dash_table
-import numpy as np
-import pandas as pd
 
-from .data import create_dataframe
-from .layout import html_layout
+from ..utils.constants import Constants as C
+from .layout import Layout
 
 
-def init_report(server):
+def init_report(server, releases):
     """Create a Plotly Dash dashboard.
 
     :param server: Flask server.
@@ -36,41 +30,19 @@ def init_report(server):
 
     dash_app = dash.Dash(
         server=server,
-        routes_pathname_prefix=u"/report/",
-        external_stylesheets=[
-            u"/static/dist/css/styles.css",
-            u"https://fonts.googleapis.com/css?family=Lato",
-        ],
+        routes_pathname_prefix=C.REPORT_ROUTES_PATHNAME_PREFIX,
+        external_stylesheets=C.EXTERNAL_STYLESHEETS
     )
 
-    # Load DataFrame
-    df = create_dataframe()
-
-    # Custom HTML layout
-    dash_app.index_string = html_layout
-
-    # Create Layout
-    dash_app.layout = html.Div(
-        children=[
-            create_data_table(df),
-        ],
-        id=u"dash-container",
+    layout = Layout(
+        app=dash_app,
+        releases=releases,
+        html_layout_file=C.REPORT_HTML_LAYOUT_FILE,
+        graph_layout_file=C.REPORT_GRAPH_LAYOUT_FILE,
+        data_spec_file=C.DATA_SPEC_FILE,
+        tooltip_file=C.TOOLTIP_FILE,
     )
-    return dash_app.server
-
+    dash_app.index_string = layout.html_layout
+    dash_app.layout = layout.add_content()
 
-def create_data_table(df):
-    """Create Dash datatable from Pandas DataFrame.
-
-    DEMO
-    """
-
-    table = dash_table.DataTable(
-        id=u"database-table",
-        columns=[{u"name": i, u"id": i} for i in df.columns],
-        data=df.to_dict(u"records"),
-        sort_action=u"native",
-        sort_mode=u"native",
-        page_size=5,
-    )
-    return table
+    return dash_app.server