aboutsummaryrefslogtreecommitdiffstats
path: root/csit.infra.dash/app/cdash/coverage/layout.py
diff options
context:
space:
mode:
authorTibor Frank <tifrank@cisco.com>2024-03-12 09:03:05 +0000
committerTibor Frank <tifrank@cisco.com>2024-03-12 09:03:05 +0000
commit540b27dbf9befcf589f5f572e8aac909f1738b51 (patch)
tree09b2edf6f51a62ab58495883ce1aa94a622055f2 /csit.infra.dash/app/cdash/coverage/layout.py
parent0ca1dcc08772c39ea98fb304ce06ab794b65166c (diff)
C-Dash: Add tooltips
Change-Id: I00cf78e2e777fa96754f7b06aab02a8bf8682da5 Signed-off-by: Tibor Frank <tifrank@cisco.com>
Diffstat (limited to 'csit.infra.dash/app/cdash/coverage/layout.py')
-rw-r--r--csit.infra.dash/app/cdash/coverage/layout.py63
1 files changed, 54 insertions, 9 deletions
diff --git a/csit.infra.dash/app/cdash/coverage/layout.py b/csit.infra.dash/app/cdash/coverage/layout.py
index 8ebda5e127..b8fa0236a5 100644
--- a/csit.infra.dash/app/cdash/coverage/layout.py
+++ b/csit.infra.dash/app/cdash/coverage/layout.py
@@ -15,6 +15,7 @@
"""
+import logging
import pandas as pd
import dash_bootstrap_components as dbc
@@ -25,11 +26,13 @@ from dash import callback_context, no_update, ALL
from dash import Input, Output, State
from dash.exceptions import PreventUpdate
from ast import literal_eval
+from yaml import load, FullLoader, YAMLError
from ..utils.constants import Constants as C
from ..utils.control_panel import ControlPanel
from ..utils.trigger import Trigger
-from ..utils.utils import label, gen_new_url, generate_options, navbar_report
+from ..utils.utils import label, gen_new_url, generate_options, navbar_report, \
+ show_tooltip
from ..utils.url_processing import url_decode
from .tables import coverage_tables, select_coverage_data
@@ -61,7 +64,8 @@ class Layout:
self,
app: Flask,
data_coverage: pd.DataFrame,
- html_layout_file: str
+ html_layout_file: str,
+ tooltip_file: str
) -> None:
"""Initialization:
- save the input parameters,
@@ -71,14 +75,18 @@ class Layout:
:param app: Flask application running the dash application.
:param html_layout_file: Path and name of the file specifying the HTML
layout of the dash application.
+ :param tooltip_file: Path and name of the yaml file specifying the
+ tooltips.
:type app: Flask
:type html_layout_file: str
+ :type tooltip_file: str
"""
# Inputs
self._app = app
- self._html_layout_file = html_layout_file
self._data = data_coverage
+ self._html_layout_file = html_layout_file
+ self._tooltip_file = tooltip_file
# Get structure of tests:
tbs = dict()
@@ -131,6 +139,19 @@ class Layout:
f"Not possible to open the file {self._html_layout_file}\n{err}"
)
+ try:
+ with open(self._tooltip_file, "r") as file_read:
+ self._tooltips = load(file_read, Loader=FullLoader)
+ except IOError as err:
+ logging.warning(
+ f"Not possible to open the file {self._tooltip_file}\n{err}"
+ )
+ except YAMLError as err:
+ logging.warning(
+ f"An error occurred while parsing the specification file "
+ f"{self._tooltip_file}\n{err}"
+ )
+
# Callbacks:
if self._app is not None and hasattr(self, "callbacks"):
self.callbacks(self._app)
@@ -250,7 +271,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("CSIT Release"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-release",
+ "CSIT Release"
+ )),
dbc.Select(
id={"type": "ctrl-dd", "index": "rls"},
placeholder="Select a Release...",
@@ -272,7 +297,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("DUT"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut",
+ "DUT"
+ )),
dbc.Select(
id={"type": "ctrl-dd", "index": "dut"},
placeholder="Select a Device under Test..."
@@ -287,7 +316,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("DUT Version"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-dut-ver",
+ "DUT Version"
+ )),
dbc.Select(
id={"type": "ctrl-dd", "index": "dutver"},
placeholder=\
@@ -303,7 +336,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("Area"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-area",
+ "Area"
+ )),
dbc.Select(
id={"type": "ctrl-dd", "index": "area"},
placeholder="Select an Area..."
@@ -318,7 +355,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("Infra"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-infra",
+ "Infra"
+ )),
dbc.Select(
id={"type": "ctrl-dd", "index": "phy"},
placeholder=\
@@ -334,7 +375,11 @@ class Layout:
children=[
dbc.InputGroup(
[
- dbc.InputGroupText("Latency"),
+ dbc.InputGroupText(show_tooltip(
+ self._tooltips,
+ "help-show-latency",
+ "Latency"
+ )),
dbc.Checklist(
id="show-latency",
options=[{