def testBaseMakeQueryWithBrains(self): querybuilder = BaseQueryBuilder(self.portal, self.request) results = querybuilder._makequery(query=self.query, brains=True, sort_on="created") self.assertEqual(len(results), self.total_num_docs) self.assertEqual(results[0].getURL(), 'http://nohost/plone/testfolder-01/testpage-01-01') self.assertEqual(results[1].getURL(), 'http://nohost/plone/testfolder-01/testpage-01-02') self.assertEqual(results[2].getURL(), 'http://nohost/plone/testfolder-01/testpage-01-03')
def queryCatalog(self, limit): """ """ querybuilder = QueryBuilder(self, self.request) if not hasattr(self.data, 'sort_on'): self.data.sort_on = 'effective' if not hasattr(self.data, 'sort_order'): self.data.sort_order = False if not hasattr(self.data, 'sort_folderorder'): self.data.sort_folderorder = False sort_order = 'descending' if self.data.sort_order else 'ascending' sort_on = self.data.sort_on if self.data.sort_folderorder: sort_on = 'getObjPositionInParent' query = list(self.data.query) if ICollection.providedBy(self.context): query += self.context.query and self.context.query or [] parent = aq_parent(aq_inner(self.context)) if ICollection.providedBy(parent): query += parent.query and parent.query or [] return querybuilder(query=query, sort_on=sort_on, sort_order=sort_order, limit=limit)
def results(self, batch=True, b_start=0, b_size=None, inherit=False, extra=[]): querybuilder = QueryBuilder(self, self.REQUEST) sort_order = 'reverse' if self.sort_reversed else 'ascending' if not b_size: b_size = self.item_count query = isinstance(self.query, list) and deepcopy(self.query) or [] if inherit: parent = aq_parent(self) if ICollection.providedBy(parent): query += parent.query and deepcopy(parent.query) or [] inparent = aq_parent(self) if ICollection.providedBy(inparent): query += inparent.query and deepcopy(inparent.query) or [] query = query + extra res = querybuilder(query=query, batch=batch, b_start=b_start, b_size=b_size, sort_on=self.sort_on, sort_order=sort_order, limit=self.limit) return res
def SearchResults(self): """Search results""" site = getSite() options = dict(original_context=site) querybuilder = QueryBuilder(site, self.request) listing = querybuilder(query=self.value) return getMultiAdapter((listing, self.request), name='display_query_results')(**options)
def results(self, batch=True, b_start=0, b_size=None): querybuilder = QueryBuilder(self, self.REQUEST) sort_order = 'reverse' if self.sort_reversed else 'ascending' if not b_size: b_size = self.item_count return querybuilder(query=self.query, batch=batch, b_start=b_start, b_size=b_size, sort_on=self.sort_on, sort_order=sort_order, limit=self.limit)
def results(self, collection, batch=True, b_start=0, b_size=None, sort_on=None, limit=None, brains=False): # XXX This code is from plone.app.contenttypes.content.py, we need this # here until my pull request is merged. # https://github.com/plone/plone.app.contenttypes/pull/87 querybuilder = QueryBuilder(collection, self.request) sort_order = 'reverse' if collection.sort_reversed else 'ascending' if not b_size: b_size = collection.item_count if not sort_on: sort_on = collection.sort_on if not limit: limit = collection.limit return querybuilder( query=collection.query, batch=batch, b_start=b_start, b_size=b_size, sort_on=sort_on, sort_order=sort_order, limit=limit, brains=brains )
def results(self, batch=True, b_start=0, b_size=None, sort_on=None, limit=None): querybuilder = QueryBuilder(self, self.REQUEST) kw_args = { 'query': self.query, 'batch': batch, 'b_start': b_start, 'sort_order': 'reverse' if self.sort_reversed else 'ascending' } if not b_size and self.item_count: kw_args['b_size'] = self.item_count if not sort_on and self.sort_on: kw_args['sort_on'] = self.sort_on if not limit and self.limit: kw_args['limit'] = self.limit return querybuilder(**kw_args)
def get(self, instance, **kwargs): """Get the query dict from the request or from the object""" raw = kwargs.get('raw', None) value = self.getRaw(instance) if raw == True: # We actually wanted the raw value, should have called getRaw return value querybuilder = QueryBuilder(instance, getSite().REQUEST) sort_on = kwargs.get('sort_on', instance.getSort_on()) sort_order = 'reverse' if instance.getSort_reversed() else 'ascending' limit = kwargs.get('limit', instance.getLimit()) return querybuilder(query=value, batch=kwargs.get('batch', False), b_start=kwargs.get('b_start', 0), b_size=kwargs.get('b_size', 30), sort_on=sort_on, sort_order=sort_order, limit=limit, brains=kwargs.get('brains', False), custom_query=kwargs.get('custom_query', {}))