# 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.
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