Example #1
0
    def form(self):
        """
        Create a form and validate input based on a request.
        """
        if self._form:
            return self._form
        fields = []

        if any(v.freetext for v in self.variables):
            fields.append(Field(name=FREETEXT_SEARCH_NAME, label='Search', required=False))

        for variable in self.bound_variables:
            if variable.gui is not None and variable.gui.show:
                # pass gui__* parameters to the GUI component
                assert variable.name is not MISSING
                assert variable.attr is not MISSING
                params = merged(variable.gui, name=variable.name, attr=variable.attr)
                fields.append(params.pop('class')(**params))

        form = Form(
            request=self.request,
            fields=fields,
            endpoint_dispatch_prefix='__'.join([self.endpoint_dispatch_prefix, 'gui']),
            **self.gui_kwargs)
        form.tri_query = self
        form.tri_query_advanced_value = request_data(self.request).get(ADVANCED_QUERY_PARAM, '')
        self._form = form
        return form
Example #2
0
    def form(self, request):
        """
        Create a form and validate input based on a request.
        """
        fields = []

        if any(v.freetext for v in self.variables):
            fields.append(Field(name=FREETEXT_SEARCH_NAME, label='Search', required=False))

        for variable in self.variables:
            if variable.gui.show:
                # pass gui__* parameters to the GUI component
                params = merged(variable.gui, name=variable.name)
                fields.append(params.pop('class')(**params))

        form = Form(request=request, fields=fields, **self.gui_kwargs)
        form.request = request
        form.tri_query = self
        form.tri_query_advanced_value = request_data(request).get(ADVANCED_QUERY_PARAM, '')
        return form