X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=csit.infra.dash%2Fapp%2Fcdash%2Fcoverage%2Flayout.py;h=8ebda5e127fbc442103a97e4c1a6a2b7c87bd21c;hb=7d3054dede4f630e9b20ac0e69f029bea93bdf5f;hp=8c115233686cdd93975ce686cbe6dad01725eb2b;hpb=55f72749a29e303c3a1049349b82baf258079e29;p=csit.git diff --git a/csit.infra.dash/app/cdash/coverage/layout.py b/csit.infra.dash/app/cdash/coverage/layout.py index 8c11523368..8ebda5e127 100644 --- a/csit.infra.dash/app/cdash/coverage/layout.py +++ b/csit.infra.dash/app/cdash/coverage/layout.py @@ -1,4 +1,4 @@ -# Copyright (c) 2023 Cisco and/or its affiliates. +# Copyright (c) 2024 Cisco and/or its affiliates. # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at: @@ -29,7 +29,7 @@ from ast import literal_eval 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 +from ..utils.utils import label, gen_new_url, generate_options, navbar_report from ..utils.url_processing import url_decode from .tables import coverage_tables, select_coverage_data @@ -113,10 +113,10 @@ class Layout: tbs[rls][dut] = dict() if tbs[rls][dut].get(d_ver, None) is None: tbs[rls][dut][d_ver] = dict() - if tbs[rls][dut][d_ver].get(infra, None) is None: - tbs[rls][dut][d_ver][infra] = list() - if area not in tbs[rls][dut][d_ver][infra]: - tbs[rls][dut][d_ver][infra].append(area) + if tbs[rls][dut][d_ver].get(area, None) is None: + tbs[rls][dut][d_ver][area] = list() + if infra not in tbs[rls][dut][d_ver][area]: + tbs[rls][dut][d_ver][area].append(infra) self._spec_tbs = tbs @@ -161,9 +161,7 @@ class Layout: dbc.Row( id="row-navbar", class_name="g-0", - children=[ - self._add_navbar() - ] + children=[navbar_report((False, False, True, False)), ] ), dbc.Row( id="row-main", @@ -203,43 +201,6 @@ class Layout: ] ) - def _add_navbar(self): - """Add nav element with navigation panel. It is placed on the top. - - :returns: Navigation bar. - :rtype: dbc.NavbarSimple - """ - return dbc.NavbarSimple( - id="navbarsimple-main", - children=[ - dbc.NavItem(dbc.NavLink( - C.REPORT_TITLE, - external_link=True, - href="/report" - )), - dbc.NavItem(dbc.NavLink( - "Comparisons", - external_link=True, - href="/comparisons" - )), - dbc.NavItem(dbc.NavLink( - "Coverage Data", - active=True, - external_link=True, - href="/coverage" - )), - dbc.NavItem(dbc.NavLink( - "Documentation", - id="btn-documentation", - )) - ], - brand=C.BRAND, - brand_href="/", - brand_external_link=True, - class_name="p-2", - fluid=True - ) - def _add_ctrl_col(self) -> dbc.Col: """Add column with controls. It is placed on the left side. @@ -342,11 +303,10 @@ class Layout: children=[ dbc.InputGroup( [ - dbc.InputGroupText("Infra"), + dbc.InputGroupText("Area"), dbc.Select( - id={"type": "ctrl-dd", "index": "phy"}, - placeholder=\ - "Select a Physical Test Bed Topology..." + id={"type": "ctrl-dd", "index": "area"}, + placeholder="Select an Area..." ) ], size="sm" @@ -358,10 +318,11 @@ class Layout: children=[ dbc.InputGroup( [ - dbc.InputGroupText("Area"), + dbc.InputGroupText("Infra"), dbc.Select( - id={"type": "ctrl-dd", "index": "area"}, - placeholder="Select an Area..." + id={"type": "ctrl-dd", "index": "phy"}, + placeholder=\ + "Select a Physical Test Bed Topology..." ) ], size="sm" @@ -552,21 +513,20 @@ class Layout: [selected["dut"]].keys() ), "dutver-dis": False, + "area-val": selected["area"], + "area-opt": [ + {"label": label(v), "value": v} \ + for v in sorted(self._spec_tbs[selected["rls"]]\ + [selected["dut"]]\ + [selected["dutver"]].keys()) + ], + "area-dis": False, "phy-val": selected["phy"], "phy-opt": generate_options( self._spec_tbs[selected["rls"]][selected["dut"]]\ - [selected["dutver"]].keys() + [selected["dutver"]][selected["area"]] ), "phy-dis": False, - "area-val": selected["area"], - "area-opt": [ - {"label": label(v), "value": v} for v in sorted( - self._spec_tbs[selected["rls"]]\ - [selected["dut"]][selected["dutver"]]\ - [selected["phy"]] - ) - ], - "area-dis": False, "show-latency": show_latency }) on_draw = True @@ -623,42 +583,42 @@ class Layout: try: rls = ctrl_panel.get("rls-val") dut = ctrl_panel.get("dut-val") - dutver = self._spec_tbs[rls][dut][trigger.value] - options = generate_options(dutver.keys()) + ver = self._spec_tbs[rls][dut][trigger.value] + options = [ + {"label": label(v), "value": v} for v in sorted(ver) + ] disabled = False except KeyError: options = list() disabled = True ctrl_panel.set({ "dutver-val": trigger.value, - "phy-val": str(), - "phy-opt": options, - "phy-dis": disabled, "area-val": str(), - "area-opt": list(), - "area-dis": True + "area-opt": options, + "area-dis": disabled, + "phy-val": str(), + "phy-opt": list(), + "phy-dis": True }) - elif trigger.idx == "phy": + elif trigger.idx == "area": try: rls = ctrl_panel.get("rls-val") dut = ctrl_panel.get("dut-val") - dutver = ctrl_panel.get("dutver-val") - phy = self._spec_tbs[rls][dut][dutver][trigger.value] - options = [ - {"label": label(v), "value": v} for v in sorted(phy) - ] + ver = ctrl_panel.get("dutver-val") + options = generate_options( + self._spec_tbs[rls][dut][ver][trigger.value]) disabled = False except KeyError: options = list() disabled = True ctrl_panel.set({ - "phy-val": trigger.value, - "area-val": str(), - "area-opt": options, - "area-dis": disabled + "area-val": trigger.value, + "phy-val": str(), + "phy-opt": options, + "phy-dis": disabled }) - elif trigger.idx == "area": - ctrl_panel.set({"area-val": trigger.value}) + elif trigger.idx == "phy": + ctrl_panel.set({"phy-val": trigger.value}) selected = { "rls": ctrl_panel.get("rls-val"), "dut": ctrl_panel.get("dut-val"),