C-Dash: Add hyperlinks to job/builds
[csit.git] / csit.infra.dash / app / cdash / report / graphs.py
index 870f16a..cff5bb6 100644 (file)
@@ -20,7 +20,7 @@ import pandas as pd
 from copy import deepcopy
 
 from ..utils.constants import Constants as C
-from ..utils.utils import get_color
+from ..utils.utils import get_color, get_hdrh_latencies
 
 
 def select_iterative_data(data: pd.DataFrame, itm:dict) -> pd.DataFrame:
@@ -80,7 +80,7 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict,
     :param data: Data frame with iterative data.
     :param sel: Selected tests.
     :param layout: Layout of plot.ly graph.
-    :param normalize: If True, the data is normalized to CPU frquency
+    :param normalize: If True, the data is normalized to CPU frequency
         Constants.NORM_FREQUENCY.
     :param data: pandas.DataFrame
     :param sel: dict
@@ -128,6 +128,9 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict,
             y_tput_max = max(max(y_data), y_tput_max)
 
         nr_of_samples = len(y_data)
+        c_data = list()
+        for _, row in itm_data.iterrows():
+            c_data.append(f"{row['job']}/{row['build']}")
         tput_kwargs = dict(
             y=y_data,
             name=(
@@ -139,13 +142,20 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict,
             hoverinfo=u"y+name",
             boxpoints="all",
             jitter=0.3,
-            marker=dict(color=get_color(idx))
+            marker=dict(color=get_color(idx)),
+            customdata=c_data
         )
         tput_traces.append(go.Box(**tput_kwargs))
         show_tput = True
 
         if ttype == "pdr":
-            y_lat_row = itm_data[C.VALUE_ITER["pdr-lat"]].to_list()
+            customdata = list()
+            for _, row in itm_data.iterrows():
+                customdata.append(
+                    get_hdrh_latencies(row, f"{row['job']}/{row['build']}")
+                )
+
+            y_lat_row = itm_data[C.VALUE_ITER["latency"]].to_list()
             y_lat = [(y / norm_factor) for y in y_lat_row]
             if y_lat:
                 try:
@@ -164,7 +174,8 @@ def graph_iterative(data: pd.DataFrame, sel:dict, layout: dict,
                 hoverinfo="all",
                 boxpoints="all",
                 jitter=0.3,
-                marker=dict(color=get_color(idx))
+                marker=dict(color=get_color(idx)),
+                customdata=customdata
             )
             x_lat.append(idx + 1)
             lat_traces.append(go.Box(**lat_kwargs))