def set_filter_columns(self, search_filter, columns, use_having=False): """Set what columns should be filtered for the search_filter :param columns: Should be a list of column names or properties to be used in the query. If they are column names (strings), we will call getattr on the search_spec to get the property for the query construction. """ if not ISearchFilter.providedBy(search_filter): pass assert search_filter not in self._columns self._columns[search_filter] = (columns, use_having)
def set_filter_columns(self, search_filter, columns, use_having=False): """Set what columns should be filtered for the search_filter :param columns: Should be a list of column names or properties to be used in the query. If they are column names (strings), we will call getattr on the search_spec to get the property for the query construction. """ if not ISearchFilter.providedBy(search_filter): pass #raise TypeError("search_filter must implement ISearchFilter") assert not search_filter in self._columns self._columns[search_filter] = (columns, use_having)
def add_filter_query_callback(self, search_filter, callback, use_having=False): """ Adds a query callback for the filter search_filter :param search_filter: a search filter :param callback: a callable """ if not ISearchFilter.providedBy(search_filter): raise TypeError if not callable(callback): raise TypeError l = self._filter_query_callbacks.setdefault(search_filter, []) l.append((callback, use_having))