X-Git-Url: https://gerrit.fd.io/r/gitweb?a=blobdiff_plain;f=csit.infra.dash%2Fapp%2Fcdash%2Futils%2Futils.py;h=424456088daed0f73a67f72c04d98be56cb26f96;hb=f226df6bcb9af9b40a39ba8d03762ef4dffcc47a;hp=461821d28b5f4f8966acbcc7c55b6853edb1d38c;hpb=430c577e8e8a737cb46e67cbe802e038b8ffd25a;p=csit.git diff --git a/csit.infra.dash/app/cdash/utils/utils.py b/csit.infra.dash/app/cdash/utils/utils.py index 461821d28b..424456088d 100644 --- a/csit.infra.dash/app/cdash/utils/utils.py +++ b/csit.infra.dash/app/cdash/utils/utils.py @@ -1,4 +1,4 @@ -# Copyright (c) 2022 Cisco and/or its affiliates. +# Copyright (c) 2023 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: @@ -346,29 +346,48 @@ def set_job_params(df: pd.DataFrame, job: str) -> dict: } -def get_list_group_items(tests: list) -> list: - """Generate list of ListGroupItems with checkboxes with selected tests. - - :param tests: List of tests to be displayed in the ListGroup. - :type tests: list - :returns: List of ListGroupItems with checkboxes with selected tests. +def get_list_group_items( + items: list, + type: str, + colorize: bool=True, + add_index: bool=False + ) -> list: + """Generate list of ListGroupItems with checkboxes with selected items. + + :param items: List of items to be displayed in the ListGroup. + :param type: The type part of an element ID. + :param colorize: If True, the color of labels is set, otherwise the default + color is used. + :param add_index: Add index to the list items. + :type items: list + :type type: str + :type colorize: bool + :type add_index: bool + :returns: List of ListGroupItems with checkboxes with selected items. :rtype: list """ - return [ - dbc.ListGroupItem( - children=[ - dbc.Checkbox( - id={"type": "sel-cl", "index": i}, - label=l["id"], - value=False, - label_class_name="m-0 p-0", - label_style={ - "font-size": ".875em", - "color": get_color(i) - }, - input_class_name="border-danger bg-danger" - ) - ], - class_name="p-0" - ) for i, l in enumerate(tests) - ] + + children = list() + for i, l in enumerate(items): + idx = f"{i + 1}. " if add_index else str() + label = f"{idx}{l['id']}" if isinstance(l, dict) else f"{idx}{l}" + children.append( + dbc.ListGroupItem( + children=[ + dbc.Checkbox( + id={"type": type, "index": i}, + label=label, + value=False, + label_class_name="m-0 p-0", + label_style={ + "font-size": ".875em", + "color": get_color(i) if colorize else "#55595c" + }, + class_name="info" + ) + ], + class_name="p-0" + ) + ) + + return children