implement saved searches(filters)
[shapado:piglops-shapado.git] / app / models / search.rb
1 class Search
2   include Mongoid::Document
3   include MongoidExt::Slugizer
4
5   identity :type => String
6
7   field :name, :type => String
8   field :query, :type => String
9   field :_conditions, :type => String
10
11   slug_key :name
12
13   referenced_in :group
14   referenced_in :user
15
16   validates_presence_of :name
17   validates_presence_of :query
18   validates_presence_of :user
19   validates_uniqueness_of :slug, :scope => [:user_id, :group_id]
20
21   before_save :update_conditions
22
23   def conditions
24     Object.module_eval(self[:_conditions])
25   end
26
27   protected
28   def update_conditions
29     parsed_query, conds = Question.filter_conditions(self.query, {})
30     puts ">>>>>>>>>> #{conds.inspect}"
31
32     self[:_conditions] = conds.inspect
33   end
34 end