3 from pylons
import request
, response
, session
, tmpl_context
as c
, h
4 from pylons
.controllers
.util
import abort
, redirect_to
6 from floof
.lib
.base
import BaseController
, render
8 log
= logging
.getLogger(__name__
)
10 from floof
.model
.art
import Art
, Tag
, TagText
11 from floof
.model
.search
import SavedSearch
14 class SearchController(BaseController
):
17 if request
.params
.get('button') == 'Save':
20 c
.query
= request
.params
.get('query', '')
21 tags
= c
.query
.split()
23 tagtexts
= TagText
.query
.filter(TagText
.text
.in_(tags
))
24 tagtext_ids
= [_
.id for _
in tagtexts
]
26 # Fetch art that has all the tags
27 c
.artwork
= Art
.query
.join(Tag
) \
28 .filter(Tag
.tagtext_id
.in_(tagtext_ids
)) \
31 return render('/index.mako')
33 # TODO: login required
35 c
.query
= request
.params
.get('query', '')
36 saved_search
= SavedSearch(author
=c
.user
, string
=c
.query
)
37 elixir
.session
.commit()
38 redirect_to(action
="list")
39 # TODO: do something better than this.
42 # TODO: login required
44 c
.searches
= c
.user
.searches
45 return render('/searches.mako')
47 # TODO: login required
48 def display(self
, id):
49 c
.search
= h
.get_object_or_404(SavedSearch
, id=id)
50 # TODO: create a gallery widget
52 redirect_to(controller
="users", action
="view", name
=c
.user
.name
)