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
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