Commit 36b2b195aa8afdd5ea5f6f9cd55f224ed207fb81
1 parent
586af7d1
Exists in
software_as_organization
adjust search_controller extension
Showing
1 changed file
with
23 additions
and
42 deletions
Show diff stats
src/noosfero-spb/software_communities/lib/ext/search_controller.rb
... | ... | @@ -14,29 +14,10 @@ class SearchController |
14 | 14 | |
15 | 15 | protected |
16 | 16 | |
17 | - def filter_communities_list | |
18 | - unfiltered_list = visible_profiles(Community) | |
19 | - | |
20 | - unless params[:query].nil? | |
21 | - unfiltered_list = unfiltered_list.select do |com| | |
22 | - com.name.downcase =~ /#{params[:query].downcase}/ | |
23 | - end | |
24 | - end | |
25 | - | |
26 | - communities_list = [] | |
27 | - unfiltered_list.each do |profile| | |
28 | - if profile.class == Community && !profile.is_template? && yield(profile) | |
29 | - communities_list << profile | |
30 | - end | |
31 | - end | |
32 | - | |
33 | - communities_list | |
34 | - end | |
35 | - | |
36 | 17 | def filter_software_infos_list |
37 | - filtered_software_list = get_filtered_software_list | |
38 | - filtered_community_list = get_communities_list(filtered_software_list) | |
39 | - sort_communities_list filtered_community_list | |
18 | + filtered_software_info_list = get_filtered_software_info_list | |
19 | + filtered_software_list = get_softwares_list(filtered_software_info_list) | |
20 | + sort_softwares_list filtered_software_list | |
40 | 21 | end |
41 | 22 | |
42 | 23 | def get_filter_category_ids |
... | ... | @@ -47,54 +28,54 @@ class SearchController |
47 | 28 | category_ids.map(&:to_i) |
48 | 29 | end |
49 | 30 | |
50 | - def get_filtered_software_list | |
31 | + def get_filtered_software_info_list | |
51 | 32 | params[:query] ||= "" |
52 | - visible_communities = visible_profiles(Community) | |
33 | + visible_software = visible_profiles(Software) | |
53 | 34 | |
54 | - filtered_software_list = SoftwareInfo.search_by_query(params[:query]) | |
35 | + filtered_software_info_list = SoftwareInfo.search_by_query(params[:query]) | |
55 | 36 | |
56 | 37 | if params[:only_softwares] |
57 | 38 | params[:only_softwares].collect!{ |software_name| software_name.to_slug } |
58 | - filtered_software_list = SoftwareInfo.all.select{ |s| params[:only_softwares].include?(s.identifier) } | |
39 | + filtered_software_info_list = SoftwareInfo.all.select{ |s| params[:only_softwares].include?(s.identifier) } | |
59 | 40 | @public_software_selected = false |
60 | 41 | end |
61 | 42 | |
62 | - filtered_software_list.select!{ |software| visible_communities.include?(software.community) } | |
43 | + filtered_software_info_list.select!{ |software_info| visible_software.include?(software_info.software) } | |
63 | 44 | category_ids = get_filter_category_ids |
64 | 45 | |
65 | 46 | unless category_ids.empty? |
66 | - filtered_software_list.select! do |software| | |
67 | - if software.nil? || software.community.nil? | |
47 | + filtered_software_info_list.select! do |software_info| | |
48 | + if software_info.nil? || software_info.software.nil? | |
68 | 49 | false |
69 | 50 | else |
70 | - result_ids = (software.community.category_ids & category_ids).sort | |
51 | + result_ids = (software_info.software.category_ids & category_ids).sort | |
71 | 52 | result_ids == category_ids.sort |
72 | 53 | end |
73 | 54 | end |
74 | 55 | end |
75 | 56 | |
76 | - filtered_software_list | |
57 | + filtered_software_info_list | |
77 | 58 | end |
78 | 59 | |
79 | - def get_communities_list software_list | |
80 | - filtered_community_list = [] | |
81 | - software_list.each do |software| | |
82 | - if !@public_software_selected || software.public_software? | |
83 | - filtered_community_list << software.community unless software.community.nil? | |
60 | + def get_softwares_list software_info_list | |
61 | + filtered_software_list = [] | |
62 | + software_info_list.each do |software_info| | |
63 | + if !@public_software_selected || software_info.public_software? | |
64 | + filtered_software_list << software_info.software unless software_info.software.nil? | |
84 | 65 | end |
85 | 66 | end |
86 | - filtered_community_list | |
67 | + filtered_software_list | |
87 | 68 | end |
88 | 69 | |
89 | - def sort_communities_list communities_list | |
90 | - communities_list.sort! {|a, b| a.name.downcase <=> b.name.downcase} | |
70 | + def sort_softwares_list softwares_list | |
71 | + softwares_list.sort! {|a, b| a.name.downcase <=> b.name.downcase} | |
91 | 72 | |
92 | 73 | if params[:sort] && params[:sort] == "desc" |
93 | - communities_list.reverse! | |
74 | + softwares_list.reverse! | |
94 | 75 | elsif params[:sort] && params[:sort] == "relevance" |
95 | - communities_list = sort_by_relevance(communities_list, params[:query]){ |community| [community.software_info.finality, community.name] } | |
76 | + softwares_list = sort_by_relevance(softwares_list, params[:query]){ |software| [software.software_info.finality, software.name] } | |
96 | 77 | end |
97 | - communities_list | |
78 | + softwares_list | |
98 | 79 | end |
99 | 80 | |
100 | 81 | def prepare_software_search_page | ... | ... |