def __call__(self, field: TreeField, **kwargs: Any) -> TreeMultiSelect: data: list[int] = [] if field.data: data = ast.literal_eval(field.data) \ if isinstance(field.data, str) else field.data return super().__call__(field, **kwargs) + render_template( 'forms/tree_multi_select.html', field=field, root=g.types[int(field.id)], selection=sorted([g.types[id_].name for id_ in data]), data=Type.get_tree_data(int(field.id), data))
def __call__(self, field: TreeField, **kwargs: Any) -> TreeSelect: selection = '' selected_ids = [] if field.data: field.data = field.data[0] \ if isinstance(field.data, list) else field.data selection = g.types[int(field.data)].name selected_ids.append(g.types[int(field.data)].id) return super().__call__(field, **kwargs) + render_template( 'forms/tree_select.html', field=field, selection=selection, data=Type.get_tree_data(int(field.id), selected_ids))