Commit 2bc409497443d2d3f53fe054923a8ed18a80ccd4

Authored by Gust
Committed by Luciano Prestes
1 parent 402aba1a

Refactor search filters, add search extension

Signed-off-by: Luciano Prestes <lucianopcbr@gmail.com>
Signed-off-by: Gustavo Jaruga <darksshades@gmail.com>
Signed-off-by: Parley Martins <parley@outlook.com>
Signed-off-by: Arthur Del Esposte <arthurmde@gmail.com>
lib/ext/search_controller.rb 0 → 100644
... ... @@ -0,0 +1,47 @@
  1 +require_dependency 'search_controller'
  2 +
  3 +class SearchController
  4 +
  5 + def communities
  6 + if params[:type] == "Software"
  7 + softwares = SoftwareInfo.search(params[:name])
  8 + communities = []
  9 + softwares.each do |s|
  10 + communities << s.community
  11 + end
  12 + results = communities
  13 + results = results.paginate(:per_page => 24, :page => params[:page])
  14 + @searches[@asset] = {:results => results}
  15 + @search = results
  16 + puts "-"*80, @searches
  17 + puts "-"*80, @search
  18 + elsif params[:type] == "Institution"
  19 + institutions = Institution.search_institution(params[:intitution_name])
  20 + puts "="*80, institutions
  21 + communities = []
  22 + institutions.each do |s|
  23 + communities << s.community
  24 + end
  25 + results = communities
  26 + puts "_"*80, results
  27 + results = results.paginate(:per_page => 24, :page => params[:page])
  28 + puts "-="*80, results
  29 + @searches[@asset] = {:results => results}
  30 + @search = results
  31 + puts "="*80, @searches
  32 + puts "="*80, @search
  33 + else
  34 + unfiltered_list = visible_profiles(Community).select{ |com| com.name =~ /#{params[:query]}/}
  35 + list_without_software_and_institution = []
  36 + unfiltered_list.each do |p|
  37 + if p.class == Community and !p.software? and !p.institution?
  38 + list_without_software_and_institution << p
  39 + end
  40 + end
  41 + results = list_without_software_and_institution
  42 + results = results.paginate(:per_page => 24, :page => params[:page])
  43 + @searches[@asset] = {:results => results}
  44 + @search = results
  45 + end
  46 + end
  47 +end
0 48 \ No newline at end of file
... ...
lib/mpog_software_plugin.rb
... ... @@ -93,82 +93,6 @@ class MpogSoftwarePlugin &lt; Noosfero::Plugin
93 93 }]
94 94 end
95 95  
96   - def search_controller_filters
97   - community_block = proc do
98   - results = []
99   - if params[:type] == "Software"
100   - softwares = SoftwareInfo.search(params[:name])
101   - communities = []
102   - softwares.each do |s|
103   - communities << s.community
104   - end
105   - results = communities
106   - results = results.paginate(:per_page => 24, :page => params[:page])
107   - @searches[@asset] = {:results => results}
108   - @search = results
109   - render :action => :communities
110   - elsif params[:type] == "Institution"
111   - institutions = Institution.search_institution(params[:intitution_name])
112   - communities = []
113   - institutions.each do |s|
114   - communities << s.community
115   - end
116   - results = communities
117   - results = results.paginate(:per_page => 24, :page => params[:page])
118   - @searches[@asset] = {:results => results}
119   - @search = results
120   - render :action => :communities
121   - #FIXME: Careful while merginging, this else must be the default action
122   - else
123   - unfiltered_list = visible_profiles(Community).select{ |com| com.name =~ /#{params[:query]}/}
124   - list_without_software_and_institution = []
125   - unfiltered_list.each do |p|
126   - if p.class == Community and !p.software? and !p.institution?
127   - list_without_software_and_institution << p
128   - end
129   - end
130   -
131   - results = list_without_software_and_institution
132   -
133   - results = results.paginate(:per_page => 24, :page => params[:page])
134   - @searches[@asset] = {:results => results}
135   - @search = results
136   - render :action => :communities
137   - end
138   -
139   - end
140   -
141   - people_block = proc do
142   - results = []
143   -
144   - results = environment.people.search(name = params[:name],
145   - state = params[:state],
146   - city = params[:city],
147   - email = params[:email]
148   - )
149   -
150   - results = results.paginate(:per_page => 24, :page => params[:page])
151   - @searches[@asset] = {:results => results}
152   - @search = results
153   -
154   - render :action => :people
155   - end
156   -
157   -
158   - [{
159   - :type => "before_filter",
160   - :method_name => "search_person_filters",
161   - :options => { :only=>:people },
162   - :block => people_block
163   - },
164   - {
165   - :type => "before_filter",
166   - :method_name => "search_software_filters",
167   - :options => { :only=>:communities },
168   - :block => community_block
169   - }]
170   - end
171   -
172 96 def profile_tabs
173 97 if context.profile.person?
174 98 { :title => _("Secundary Information"),
... ...
views/search/search_community_filter.html.erb
1   -<form action="/search/communities" name="community_filter" method="get" class="search_form">
  1 +<form action="<%= Noosfero.root%>/search/communities" name="community_filter" method="get" class="search_form">
2 2 <div id="search_content">
3 3  
4 4 <div class="search_options">
... ...