def initialise(self, node_token): node_data = node_token.get_node_data() table = node_data.get('table', '') table = table.encode('ascii') # This seems to be needed but I'm not sure why # but without it the listings are incorrect. # TODO investigate a little self.table = table rtable = r[table] self.extra_data = {'table':table} title_field = rtable.title_field fields = [] for field in rtable.ordered_fields: if field.category <> "field": continue extra_info = {} if field.description: extra_info['description'] = field.description if field.type == "Text" and field.length > 500: fields.append(textarea(field.name, css = "large", **extra_info)) else: fields.append(input(field.name, **extra_info)) main = form(*fields, table = table, form_type = 'input', volatile = True) # add this to the available forms self._available_forms['main'] = main
def __init__(self, node_name = None): super(AutoForm, self).__init__(node_name) rtable = r[self.table] self.extra_data = {'table':self.table} title_field = rtable.title_field fields = [] for field in rtable.ordered_fields: if field.category <> "field": continue extra_info = {} if field.description: extra_info['description'] = field.description if field.type == "Text" and field.length > 500: fields.append(textarea(field.name, css = "large", **extra_info)) else: fields.append(input(field.name, **extra_info)) main = form(*fields, table = self.table, volatile = True) # add this to the available forms self._available_forms['main'] = main self._non_result_forms['main'] = main