Commit fba92e059456df3e3e3e9b4aa6491c37a1055d74

Authored by Arthur Esposte
2 parents 5cbcb27d 14293f6a

Merge branch 'software-catalog'

lib/ext/search_controller.rb
@@ -9,6 +9,16 @@ class SearchController @@ -9,6 +9,16 @@ class SearchController
9 @search = results 9 @search = results
10 end 10 end
11 11
  12 + def institutions
  13 + @titles[:institutions] = _("Institution Catalog")
  14 + @category_filters = []
  15 + results = filter_communities_list{|community| community.institution?}
  16 + results = results.paginate(:per_page => 24, :page => params[:page])
  17 + @searches[@asset] = {:results => results}
  18 + @search = results
  19 + end
  20 +
  21 +
12 def software_infos 22 def software_infos
13 @titles[:software_infos] = _("Software Catalog") 23 @titles[:software_infos] = _("Software Catalog")
14 @category_filters = [] 24 @category_filters = []
@@ -40,4 +50,4 @@ class SearchController @@ -40,4 +50,4 @@ class SearchController
40 end 50 end
41 communities_list 51 communities_list
42 end 52 end
43 -end  
44 \ No newline at end of file 53 \ No newline at end of file
  54 +end
lib/ext/search_helper.rb
@@ -2,6 +2,8 @@ require_dependency 'search_helper' @@ -2,6 +2,8 @@ require_dependency 'search_helper'
2 2
3 module SearchHelper 3 module SearchHelper
4 4
5 - COMMON_PROFILE_LIST_BLOCK << :software_infos 5 + COMMON_PROFILE_LIST_BLOCK ||= []
  6 + COMMON_PROFILE_LIST_BLOCK << :software_infos
  7 + COMMON_PROFILE_LIST_BLOCK << :institutions
6 8
7 -end  
8 \ No newline at end of file 9 \ No newline at end of file
  10 +end
lib/institution.rb
1 class Institution < ActiveRecord::Base 1 class Institution < ActiveRecord::Base
  2 +
  3 + SEARCH_FILTERS = []
  4 + SEARCH_DISPLAYS = %w[compact]
  5 +
  6 + def self.default_search_display
  7 + 'compact'
  8 + end
  9 +
2 belongs_to :governmental_power 10 belongs_to :governmental_power
3 belongs_to :governmental_sphere 11 belongs_to :governmental_sphere
4 belongs_to :juridical_nature 12 belongs_to :juridical_nature
lib/software_info.rb
1 class SoftwareInfo < ActiveRecord::Base 1 class SoftwareInfo < ActiveRecord::Base
2 SEARCH_FILTERS = [] 2 SEARCH_FILTERS = []
  3 + SEARCH_DISPLAYS = %w[compact]
  4 +
  5 + def self.default_search_display
  6 + 'compact'
  7 + end
3 8
4 attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform 9 attr_accessible :e_mag, :icp_brasil, :intern, :e_ping, :e_arq, :operating_platform
5 attr_accessible :demonstration_url, :acronym, :objectives, :features, :license_info 10 attr_accessible :demonstration_url, :acronym, :objectives, :features, :license_info
@@ -50,10 +55,6 @@ class SoftwareInfo &lt; ActiveRecord::Base @@ -50,10 +55,6 @@ class SoftwareInfo &lt; ActiveRecord::Base
50 } 55 }
51 } 56 }
52 57
53 - def self.default_search_display  
54 - 'compact'  
55 - end  
56 -  
57 def validate_name_lenght 58 def validate_name_lenght
58 if self.community.name.size > 100 59 if self.community.name.size > 100
59 self.errors.add(:base, _("Name is too long (maximum is %{count} characters)")) 60 self.errors.add(:base, _("Name is too long (maximum is %{count} characters)"))
lib/softwares_block.rb
@@ -31,7 +31,7 @@ class SoftwaresBlock &lt; CommunitiesBlock @@ -31,7 +31,7 @@ class SoftwaresBlock &lt; CommunitiesBlock
31 end 31 end
32 when Environment 32 when Environment
33 lambda do |context| 33 lambda do |context|
34 - link_to s_('softwares|View all'), :controller => 'search', :action => 'communities', :type => 'Software' 34 + link_to s_('softwares|View all'), :controller => 'search', :action => 'software_infos'
35 end 35 end
36 else 36 else
37 '' 37 ''
public/style.css
@@ -197,4 +197,36 @@ @@ -197,4 +197,36 @@
197 197
198 .improve_input_size { 198 .improve_input_size {
199 width: 315px !important; 199 width: 315px !important;
  200 +}
  201 +
  202 +.search-community-content-block span {
  203 + width: auto;
  204 +}
  205 +
  206 +#catalog-list ul li {
  207 + display: inline;
  208 + margin-right: 5px;
  209 + font-size: 14px;
  210 + padding: 5px;
  211 + }
  212 +
  213 +#catalog-list ul li span {
  214 + cursor: pointer;
  215 + margin-left: 5px;
  216 +}
  217 +
  218 +.catalog-remove-item {
  219 + padding: 3px;
  220 + border: solid 1px #999;
  221 + border-radius: 3px;
  222 +}
  223 +
  224 +.category_box {
  225 + font-size: 11px;
  226 + border:1px solid #e9e8ed;
  227 + border-radius:8px;
  228 + background-color:#e9e8ed;
  229 + padding:3px 6px;
  230 + margin:10px 3px;
  231 + color: blue;
200 } 232 }
201 \ No newline at end of file 233 \ No newline at end of file
test/functional/search_controller_test.rb
@@ -58,4 +58,15 @@ class SearchControllerTest &lt; ActionController::TestCase @@ -58,4 +58,15 @@ class SearchControllerTest &lt; ActionController::TestCase
58 assert_not_includes assigns(:searches)[:software_infos][:results], software_without_category.community 58 assert_not_includes assigns(:searches)[:software_infos][:results], software_without_category.community
59 end 59 end
60 60
  61 + should "institutions_search don't have community or software" do
  62 + community = create_community("New Community")
  63 + software = create_software_info("New Software")
  64 + institution = create_private_institution("New Private Institution", "NPI" , "Brazil", "DF", "Gama", "66.544.314/0001-63")
  65 +
  66 + get :institutions, :query => "New"
  67 +
  68 + assert_includes assigns(:searches)[:institutions][:results], institution.community
  69 + assert_not_includes assigns(:searches)[:institutions][:results], community
  70 + assert_not_includes assigns(:searches)[:institutions][:results], software.community
  71 + end
61 end 72 end
views/search/_catalog_filter.html.erb
1 -<!-- Remove CSS when design team send corrections -->  
2 -<style type="text/css">  
3 - #catalog-list ul li {  
4 - display: inline;  
5 - margin-right: 5px;  
6 - font-size: 14px;  
7 - padding: 5px;  
8 - }  
9 -  
10 - #catalog-list ul li span {  
11 - display: none;  
12 - cursor: pointer;  
13 - }  
14 -  
15 - #catalog-list ul li:hover span {  
16 - display: inline-block;  
17 - }  
18 -  
19 - .catalog-remove-item {  
20 - padding: 3px;  
21 - border: solid 1px #999;  
22 - border-radius: 3px;  
23 - background: #d4d4d4;  
24 - }  
25 -  
26 - .category_box {  
27 - font-size: 11px !important;  
28 - border:1px solid #e9e8ed;  
29 - border-radius:8px;  
30 - background-color:#e9e8ed;  
31 - padding:3px 6px;  
32 - margin:10px 3px;  
33 - color: blue;  
34 - }  
35 -</style>  
36 -  
37 <div> 1 <div>
38 <div id="catalog-list"> 2 <div id="catalog-list">
39 <ul> 3 <ul>
@@ -46,6 +10,7 @@ @@ -46,6 +10,7 @@
46 </div> 10 </div>
47 11
48 <div id="catalog-filter"> 12 <div id="catalog-filter">
49 - <%= text_field(:software, :catalog, :id=>"software-catalog") %> 13 + <span><%= _("Categories filter") %>:</span>
  14 + <%= text_field(:software, :catalog, :id=>"software-catalog", :placeholder=>_("Type a category name here")) %>
50 </div> 15 </div>
51 </div> 16 </div>
52 \ No newline at end of file 17 \ No newline at end of file
views/search/_full_community.html.erb 0 → 100644
@@ -0,0 +1,57 @@ @@ -0,0 +1,57 @@
  1 +<% software = community.software_info %>
  2 +<li class="search-profile-item">
  3 + <div class="search-enterprise-item">
  4 + <div class="search-enterprise-item-column-left">
  5 + <%= profile_image_link community, :portrait, 'div', community.send(@filter + '_label') + show_date(community.created_at) %>
  6 + </div>
  7 +
  8 + <div class="search-enterprise-item-column-right">
  9 +
  10 + <div class="search-community-content-block">
  11 + <span>
  12 + <% link_name = software.acronym.blank? ? community.name : "#{software.acronym} - #{community.name}" %>
  13 + <%= link_to_homepage(link_name, community.identifier, :class => "search-result-title") %>
  14 + </span>
  15 +
  16 + <p>
  17 + <% body_stripped = strip_tags(software.finality) %>
  18 + <%= excerpt(body_stripped, body_stripped.first(3), 200) if body_stripped %>
  19 + </p>
  20 + </div>
  21 +
  22 + <div class="search-community-content-block">
  23 + <span>
  24 + <%= _("Software licence") %>:
  25 + <%= link_to(software.license_info.version, software.license_info.link, :target=>"blank", :class => "search-result-title") %>
  26 + </span>
  27 + </div>
  28 +
  29 + <div class="search-community-content-block">
  30 + <span>
  31 + <%= _("Link software repository") %>:
  32 + <%= link_to(software.repository_link, software.repository_link, :target=>"blank", :class => "search-result-title") %>
  33 + </span>
  34 + </div>
  35 +
  36 + <div class="search-community-content-block">
  37 + <span>
  38 + <%= _("Software Categories") %>
  39 + </span>
  40 +
  41 + <% if not community.categories.empty? %>
  42 + <ul>
  43 + <% community.categories.each do |category| %>
  44 + <li> <%= category.name %> </li>
  45 + <% end %>
  46 + </ul>
  47 + <% else %>
  48 + <p>
  49 + <span><%= _("This software doesn't has categories") %></span>
  50 + </p>
  51 + <% end %>
  52 + </div>
  53 + </div>
  54 +
  55 + <hr class="clearfix" />
  56 + </div>
  57 +</li>
views/search/institutions.html.erb 0 → 100644
@@ -0,0 +1,18 @@ @@ -0,0 +1,18 @@
  1 +<%= search_page_title( @titles[@asset], @category ) %>
  2 +
  3 +<%= render :partial => 'search_form', :locals => { :hint => _("Type words about the %s you're looking for") % @asset.to_s.singularize } %>
  4 +
  5 +<%= render :partial => 'results_header' %>
  6 +
  7 +<%= display_results(@searches, @asset) %>
  8 +<% if params[:display] != 'map' %>
  9 + <%= pagination_links @searches[@asset][:results] %>
  10 +<% end %>
  11 +
  12 +<div style="clear: both"></div>
  13 +
  14 +<% if @asset == :product %>
  15 + <%= javascript_tag do %>
  16 + jQuery('.search-product-price-details').altBeautify();
  17 + <% end %>
  18 +<% end %>