X-Git-Url: http://git.veekun.com/zzz-floof.git/blobdiff_plain/b3558ab49ac069f88ee1f1dc39e8127b2519409a..55270a42bf0699bd78b95a945fddd73a165507ee:/floof/controllers/search.py diff --git a/floof/controllers/search.py b/floof/controllers/search.py index 75926e7..abedd16 100644 --- a/floof/controllers/search.py +++ b/floof/controllers/search.py @@ -13,23 +13,16 @@ import elixir class SearchController(BaseController): def index(self): - # Return a rendered template - #return render('/search.mako') - # or, return a response - return 'Hello World' - - def results(self): - """ Search, implemented the stupid way! """ - query = request.params.get('query','') + """Search, implemented the stupid way!""" + query = request.params.get('query', '') tags = query.split() - + tagtexts = TagText.query.filter(TagText.text.in_(tags)) - tagtext_ids = map(lambda x:x.id, tagtexts) + tagtext_ids = [_.id for _ in tagtexts] + + # Fetch art that has all the tags + c.artwork = Art.query.join(Tag) \ + .filter(Tag.tagtext_id.in_(tagtext_ids)) \ + .all() - # TODO: this is wrong. Please fix it so it returns art that has all the tags. - art_tag_pairs = elixir.session.query(Art,Tag).filter(Art.id == Tag.art_id).\ - filter(Tag.tagtext_id.in_(tagtext_ids)).all() - - # just the art please. - c.artwork = map(lambda x: x[0], art_tag_pairs) return render('/index.mako') \ No newline at end of file