Commit 2bc409497443d2d3f53fe054923a8ed18a80ccd4
Committed by
Luciano Prestes
1 parent
402aba1a
Exists in
master
and in
5 other branches
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>
Showing
3 changed files
with
48 additions
and
77 deletions
Show diff stats
... | ... | @@ -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 < 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