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