Пример #1
0
    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
Пример #2
0
    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