added dynamic ids

This commit is contained in:
Brian Bjarke Jensen
2024-02-24 21:50:53 +01:00
parent e82a03f298
commit 7b0fb5ef5d
+40 -23
View File
@@ -2,7 +2,9 @@ from dash import html, dcc
import dash_mantine_components as dmc import dash_mantine_components as dmc
from typing import List from typing import List
from src.model_experiential import ExperientialModelOutput from src.model_experiential import (
VisualSyntaxModelOutput
)
from src.model_interpersonal import ( from src.model_interpersonal import (
ContactModelOutput, ContactModelOutput,
AngleModelOutput, AngleModelOutput,
@@ -26,46 +28,53 @@ def generate_option_labels(model) -> List[str]:
] ]
return labels return labels
def generate_experiential_options_map(): def generate_visual_syntax_options_map():
"""Generate map of titles and options for experiential labels.""" """Generate map of titles and options for visual syntax labels."""
options_map = {} options_map = {}
# add experiential labels # add experiential labels
options_map["experiential".title()] = generate_option_labels(ExperientialModelOutput) options_map["visual syntax"] = VisualSyntaxModelOutput.list_fields()
return options_map return options_map
def generate_interpersonal_options_map(): def generate_interpersonal_options_map():
"""Generate map of titles and options for interpersonal labels.""" """Generate map of titles and options for interpersonal labels."""
options_map = {} options_map = {}
# add interpersonal labels # add interpersonal labels
options_map["contact".title()] = generate_option_labels(ContactModelOutput) options_map["contact"] = generate_option_labels(ContactModelOutput)
options_map["angle".title()] = generate_option_labels(AngleModelOutput) options_map["angle"] = generate_option_labels(AngleModelOutput)
options_map["point of view".title()] = generate_option_labels(PointOfViewModelOutput) options_map["point of view"] = generate_option_labels(PointOfViewModelOutput)
options_map["distance".title()] = generate_option_labels(DistanceModelOutput) options_map["distance"] = generate_option_labels(DistanceModelOutput)
options_map["modality lighting".title()] = generate_option_labels(ModalityLightingModelOutput) options_map["modality lighting"] = generate_option_labels(ModalityLightingModelOutput)
options_map["modality color".title()] = generate_option_labels(ModalityColorModelOutput) options_map["modality color"] = generate_option_labels(ModalityColorModelOutput)
options_map["modality depth".title()] = generate_option_labels(ModalityDepthModelOutput) options_map["modality depth"] = generate_option_labels(ModalityDepthModelOutput)
return options_map return options_map
def generate_textual_options_map(): def generate_textual_options_map():
"""Generate map of titles and options for textual labels.""" """Generate map of titles and options for textual labels."""
options_map = {} options_map = {}
# add textual labels # add textual labels
options_map["information value".title()] = generate_option_labels(InformationValueModelOutput) options_map["information value"] = generate_option_labels(InformationValueModelOutput)
options_map["framing".title()] = generate_option_labels(FramingModelOutput) options_map["framing"] = generate_option_labels(FramingModelOutput)
options_map["salience".title()] = generate_option_labels(SalienceModelOutput) options_map["salience"] = generate_option_labels(SalienceModelOutput)
return options_map return options_map
# prepare experiential container # prepare experiential container
experiential_map = generate_experiential_options_map() experiential_map = generate_visual_syntax_options_map()
experiential_container = dmc.Col( experiential_container = dmc.Col(
children=[ children=[
dmc.Container([ html.H4("experiential".title()),
html.H4(list(experiential_map.keys())[0]),
html.B("visual syntax".title()),
dcc.RadioItems(options=list(experiential_map.values())[0]),
])
], span=5 ], span=5
) )
for title, options in experiential_map.items():
id_dict = {"type": "annotation", "index": title.replace('_', '-')}
experiential_container.children.append(
dmc.Container([
html.B(title.title()),
dcc.RadioItems(
options=options,
id=id_dict,
),
])
)
# prepare interpersonal container # prepare interpersonal container
interpersonal_map = generate_interpersonal_options_map() interpersonal_map = generate_interpersonal_options_map()
interpersonal_container = dmc.Col( interpersonal_container = dmc.Col(
@@ -74,10 +83,14 @@ interpersonal_container = dmc.Col(
], span=3 ], span=3
) )
for title, options in interpersonal_map.items(): for title, options in interpersonal_map.items():
id_dict = {"type": "annotation", "index": title.replace('_', '-')}
interpersonal_container.children.append( interpersonal_container.children.append(
dmc.Container([ dmc.Container([
html.B(title), html.B(title.title()),
dcc.RadioItems(options) dcc.RadioItems(
options=options,
id=id_dict,
),
]) ])
) )
# prepare textual container # prepare textual container
@@ -88,10 +101,14 @@ textual_container = dmc.Col(
], span=4 ], span=4
) )
for title, options in textual_map.items(): for title, options in textual_map.items():
id_dict = {"type": "annotation", "index": title.replace('_', '-')}
textual_container.children.append( textual_container.children.append(
dmc.Container([ dmc.Container([
html.B(title), html.B(title),
dcc.RadioItems(options) dcc.RadioItems(
options=options,
id=id_dict,
),
]) ])
) )