UTI: Move common functions to utils.
[csit.git] / resources / tools / dash / app / pal / news / layout.py
index 2f66ce5..6743b5a 100644 (file)
@@ -27,7 +27,9 @@ from yaml import load, FullLoader, YAMLError
 from copy import deepcopy
 
 from ..data.data import Data
-from ..data.utils import classify_anomalies
+from ..utils.constants import Constants as C
+from ..utils.utils import classify_anomalies, show_tooltip
+from ..data.data import Data
 from .tables import table_news
 
 
@@ -35,12 +37,6 @@ class Layout:
     """The layout of the dash app and the callbacks.
     """
 
-    # The default job displayed when the page is loaded first time.
-    DEFAULT_JOB = "csit-vpp-perf-mrr-daily-master-2n-icx"
-
-    # Time period for regressions and progressions.
-    TIME_PERIOD = 21  # [days]
-
     def __init__(self, app: Flask, html_layout_file: str, data_spec_file: str,
         tooltip_file: str) -> None:
         """Initialization:
@@ -73,7 +69,7 @@ class Layout:
         data_stats, data_mrr, data_ndrpdr = Data(
             data_spec_file=self._data_spec_file,
             debug=True
-        ).read_stats(days=self.TIME_PERIOD)
+        ).read_stats(days=C.NEWS_TIME_PERIOD)
 
         df_tst_info = pd.concat([data_mrr, data_ndrpdr], ignore_index=True)
 
@@ -95,7 +91,7 @@ class Layout:
             job_info["tbed"].append("-".join(lst_job[-2:]))
         self.df_job_info = pd.DataFrame.from_dict(job_info)
 
-        self._default = self._set_job_params(self.DEFAULT_JOB)
+        self._default = self._set_job_params(C.NEWS_DEFAULT_JOB)
 
         # Pre-process the data:
 
@@ -393,43 +389,6 @@ class Layout:
                 lst_job[1], lst_job[3], lst_job[4]))
         }
 
-    def _show_tooltip(self, id: str, title: str,
-            clipboard_id: str=None) -> list:
-        """Generate list of elements to display a text (e.g. a title) with a
-        tooltip and optionaly with Copy&Paste icon and the clipboard
-        functionality enabled.
-
-        :param id: Tooltip ID.
-        :param title: A text for which the tooltip will be displayed.
-        :param clipboard_id: If defined, a Copy&Paste icon is displayed and the
-            clipboard functionality is enabled.
-        :type id: str
-        :type title: str
-        :type clipboard_id: str
-        :returns: List of elements to display a text with a tooltip and
-            optionaly with Copy&Paste icon.
-        :rtype: list
-        """
-
-        return [
-            dcc.Clipboard(target_id=clipboard_id, title="Copy URL") \
-                if clipboard_id else str(),
-            f"{title} ",
-            dbc.Badge(
-                id=id,
-                children="?",
-                pill=True,
-                color="white",
-                text_color="info",
-                class_name="border ms-1",
-            ),
-            dbc.Tooltip(
-                children=self._tooltips.get(id, str()),
-                target=id,
-                placement="auto"
-            )
-        ]
-
     def add_content(self):
         """Top level method which generated the web page.
 
@@ -556,7 +515,7 @@ class Layout:
                             children=[
                                 dbc.Label(
                                     class_name="p-0",
-                                    children=self._show_tooltip(
+                                    children=show_tooltip(self._tooltips,
                                         "help-dut", "Device under Test")
                                 ),
                                 dbc.Row(
@@ -574,7 +533,7 @@ class Layout:
                             children=[
                                 dbc.Label(
                                     class_name="p-0",
-                                    children=self._show_tooltip(
+                                    children=show_tooltip(self._tooltips,
                                         "help-ttype", "Test Type"),
                                 ),
                                 dbc.RadioItems(
@@ -590,7 +549,7 @@ class Layout:
                             children=[
                                 dbc.Label(
                                     class_name="p-0",
-                                    children=self._show_tooltip(
+                                    children=show_tooltip(self._tooltips,
                                         "help-cadence", "Cadence"),
                                 ),
                                 dbc.RadioItems(
@@ -606,7 +565,7 @@ class Layout:
                             children=[
                                 dbc.Label(
                                     class_name="p-0",
-                                    children=self._show_tooltip(
+                                    children=show_tooltip(self._tooltips,
                                         "help-tbed", "Test Bed"),
                                 ),
                                 dbc.Select(