diff --git a/src/web/layout/labels.py b/src/web/layout/labels.py index 800b498..510b70f 100644 --- a/src/web/layout/labels.py +++ b/src/web/layout/labels.py @@ -4,35 +4,24 @@ import dash_mantine_components as dmc from dash import dcc from dash import html -from src.model_experiential import VisualSyntaxModelOutput -from src.model_interpersonal import AngleModelOutput -from src.model_interpersonal import ContactModelOutput -from src.model_interpersonal import DistanceModelOutput -from src.model_interpersonal import ModalityColorModelOutput -from src.model_interpersonal import ModalityDepthModelOutput -from src.model_interpersonal import ModalityLightingModelOutput -from src.model_interpersonal import PointOfViewModelOutput -from src.model_textual import FramingModelOutput -from src.model_textual import InformationValueModelOutput -from src.model_textual import SalienceModelOutput - - -def generate_option_labels(model) -> list[str]: - """Generate presentable list of attributes from an OutputModel.""" - labels = [ - label.replace('_', ' ').title() - for label in model.list_fields() - ] - return labels +from core.dto import AngleData +from core.dto import ContactData +from core.dto import DistanceData +from core.dto import FramingData +from core.dto import InformationValueData +from core.dto import ModalityColorData +from core.dto import ModalityDepthData +from core.dto import ModalityLightingData +from core.dto import PointOfViewData +from core.dto import SalienceData +from core.dto import VisualSyntaxData def generate_visual_syntax_options_map(): """Generate map of titles and options for visual syntax labels.""" options_map = {} # add experiential labels - options_map['visual syntax'] = generate_option_labels( - VisualSyntaxModelOutput, - ) + options_map['visual syntax'] = VisualSyntaxData.list_fields() return options_map @@ -40,21 +29,13 @@ def generate_interpersonal_options_map(): """Generate map of titles and options for interpersonal labels.""" options_map = {} # add interpersonal labels - 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, - ) + options_map['contact'] = ContactData.list_fields() + options_map['angle'] = AngleData.list_fields() + options_map['point of view'] = PointOfViewData.list_fields() + options_map['distance'] = DistanceData.list_fields() + options_map['modality lighting'] = ModalityLightingData.list_fields() + options_map['modality color'] = ModalityColorData.list_fields() + options_map['modality depth'] = ModalityDepthData.list_fields() return options_map @@ -62,11 +43,9 @@ def generate_textual_options_map(): """Generate map of titles and options for textual labels.""" options_map = {} # add textual labels - options_map['information value'] = generate_option_labels( - InformationValueModelOutput, - ) - options_map['framing'] = generate_option_labels(FramingModelOutput) - options_map['salience'] = generate_option_labels(SalienceModelOutput) + options_map['information value'] = InformationValueData.list_fields() + options_map['framing'] = FramingData.list_fields() + options_map['salience'] = SalienceData.list_fields() return options_map @@ -83,7 +62,7 @@ for title, options in experiential_map.items(): dmc.Container([ html.B(title.title()), dcc.RadioItems( - options=options, + options=[text.replace('_', ' ') for text in options], id=id_dict, ), ]), @@ -101,7 +80,7 @@ for title, options in interpersonal_map.items(): dmc.Container([ html.B(title.title()), dcc.RadioItems( - options=options, + options=[text.replace('_', ' ') for text in options], id=id_dict, ), ]), @@ -119,7 +98,7 @@ for title, options in textual_map.items(): dmc.Container([ html.B(title.title()), dcc.RadioItems( - options=options, + options=[text.replace('_', ' ') for text in options], id=id_dict, ), ]),