digiwild / app /checkbox_physical.py
vancauwe's picture
feat: config and ui for physical changes
59d7f29
raw
history blame
1.68 kB
import gradio as gr
from config_utils import get_custom_config_dropdowns
from dropdowns_conditions import retrieve_config_options
#---------------------------------------------------------
def get_options_description(value):
dropdown_config = get_custom_config_dropdowns("/assets/config/config_checkbox_physical.json")
# get options
options = retrieve_config_options("Common", dropdown_config)
options_for_value = retrieve_config_options(value, dropdown_config)
options.extend(options_for_value)
# get descriptions
descriptions = []
for key, sub_dict in dropdown_config.items():
if key==value or key=="Common":
for _, option_dict in sub_dict.items():
for description_tag, description in option_dict.items():
if "Description"==description_tag:
descriptions.append(description)
return options, descriptions
#---------------------------------------------------------
def checkbox(body_part, section):
options, descriptions = get_options_description(body_part)
descriptions_info = "".join([f"\t{option}: {description}\n" for option, description in zip(options, descriptions)])
checkbox = gr.CheckboxGroup(options,
label=f"Physical changes observed on {body_part}:",
visible=True,
interactive=True,
elem_id=section)
text = gr.Textbox(descriptions_info,
label = "Info",
interactive=False,
visible=True,
elem_id=section)
return checkbox, text