def get_form(self): if self.form: return self.form schema = self.table.class_handler.record_properties return [ get_default_widget(datatype)(name) for name, datatype in schema.items() ]
def search_widgets(self): widgets = [] schema = self.search_cls.class_schema for name in self.search_fields: datatype = schema[name] title = getattr(datatype, 'title', name) widget = get_default_widget(datatype)(name, title=title) widgets.append(widget) return widgets
def get_widget(self, name, datatype): title = getattr(datatype, 'title', name) widget = getattr(datatype, 'widget', None) if widget is None: widget = get_default_widget(datatype) # Keep datatype attributes on widget if None kw = {'title': title} for attr_name in attr_keys: attr_value = getattr(datatype, attr_name, None) if attr_value is not None and attr_value != '': kw[attr_name] = attr_value return widget(name, **kw)