def inner_search(): q = Listing.basic_query() q.filter('featured =', True) q.order('-created') listings = q.fetch(self.limit) if encoded: listings = [lst.encode_builtin() for lst in listings] return listings
def inner_search(): listings, qs = [], self.qs for mb in qs.get('mb', [])[0:self.max_defs]: try: mb = int(mb) except (ValueError, ): continue q = Listing.basic_query() q.filter('min_bid =', mb) listings += q.fetch(self.limit) listings = dict((lst.key(), lst) for lst in listings).values() ## remove dupes listings.sort(key=lambda o:o.expires) ## TODO: verify this is desired if encoded: listings = [lst.encode_builtin() for lst in listings] return listings, '', False
def run(self, encoded=True): q = Listing.basic_query() qs = self.qs @cache(self.rqs, ttl=180) def inner_search(): for key, title in self.filter_items(): if qs.get(key, [''])[0] == 'on': q.filter('categories =', key) sort = qs.get('sort', ['created'])[0] title, order = self.orders.get(sort, self.orders['created']) if order: order(q) if 'c' in qs: q.with_cursor(qs['c'][0]) try: limit = min(self.limit, int(qs['limit'][0])) except (Exception, ), exc: limit = self.limit listings = q.fetch(limit) if encoded: listings = [lst.encode_builtin(feedback=False) for lst in listings] return listings, self.next_qs(q, qs), self.more(q)