Commit e453a360890f55ad5af4ab3a1e6e9a8aa5ad8fed

Authored by Antonio Terceiro
2 parents 7fa67cbb fc679164

Merge commit 'refs/merge-requests/227' of git://gitorious.org/noosfero/noosfero …

…into merge-requests/227
app/helpers/search_helper.rb
@@ -50,7 +50,7 @@ module SearchHelper @@ -50,7 +50,7 @@ module SearchHelper
50 end 50 end
51 51
52 def map_search? 52 def map_search?
53 - !@query.blank? and !multiple_search? and params[:display] == 'map' 53 + !@empty_query and !multiple_search? and params[:display] == 'map'
54 end 54 end
55 55
56 def search_page_title(title, category = nil) 56 def search_page_title(title, category = nil)
@@ -107,7 +107,7 @@ module SearchHelper @@ -107,7 +107,7 @@ module SearchHelper
107 @asset_class = asset_class(asset) 107 @asset_class = asset_class(asset)
108 render(:partial => 'facets_unselect_menu') 108 render(:partial => 'facets_unselect_menu')
109 end 109 end
110 - 110 +
111 def facet_javascript(input_id, facet, array) 111 def facet_javascript(input_id, facet, array)
112 array = [] if array.nil? 112 array = [] if array.nil?
113 hintText = _('Type in an option') 113 hintText = _('Type in an option')
@@ -156,6 +156,7 @@ module SearchHelper @@ -156,6 +156,7 @@ module SearchHelper
156 params = params.dup 156 params = params.dup
157 params[:facet].each do |id, value| 157 params[:facet].each do |id, value|
158 facet = klass.facet_by_id(id.to_sym) 158 facet = klass.facet_by_id(id.to_sym)
  159 + next unless facet
159 if value.kind_of?(Hash) 160 if value.kind_of?(Hash)
160 label_hash = facet[:label].call(environment) 161 label_hash = facet[:label].call(environment)
161 value.each do |label_id, value| 162 value.each do |label_id, value|
app/models/product.rb
1 class Product < ActiveRecord::Base 1 class Product < ActiveRecord::Base
  2 +
2 belongs_to :enterprise 3 belongs_to :enterprise
3 has_one :region, :through => :enterprise 4 has_one :region, :through => :enterprise
4 validates_presence_of :enterprise 5 validates_presence_of :enterprise
@@ -163,7 +164,7 @@ class Product &lt; ActiveRecord::Base @@ -163,7 +164,7 @@ class Product &lt; ActiveRecord::Base
163 164
164 def total_production_cost 165 def total_production_cost
165 return inputs_cost if price_details.empty? 166 return inputs_cost if price_details.empty?
166 - inputs_cost + price_details.map(&:price).inject { |sum,price| sum + price } 167 + inputs_cost + price_details.map(&:price).inject(0){ |sum,price| sum + price }
167 end 168 end
168 169
169 def price_described? 170 def price_described?
app/models/uploaded_file.rb
@@ -67,7 +67,7 @@ class UploadedFile &lt; Article @@ -67,7 +67,7 @@ class UploadedFile &lt; Article
67 'upload-file' 67 'upload-file'
68 end 68 end
69 end 69 end
70 - 70 +
71 def mime_type 71 def mime_type
72 content_type 72 content_type
73 end 73 end
@@ -129,6 +129,12 @@ class UploadedFile &lt; Article @@ -129,6 +129,12 @@ class UploadedFile &lt; Article
129 end 129 end
130 end 130 end
131 131
  132 + def extension
  133 + dotindex = self.filename.rindex('.')
  134 + return nil unless dotindex
  135 + self.filename[(dotindex+1)..-1].downcase
  136 + end
  137 +
132 def allow_children? 138 def allow_children?
133 false 139 false
134 end 140 end
@@ -144,4 +150,5 @@ class UploadedFile &lt; Article @@ -144,4 +150,5 @@ class UploadedFile &lt; Article
144 def uploaded_file? 150 def uploaded_file?
145 true 151 true
146 end 152 end
  153 +
147 end 154 end
app/views/search/_image.rhtml
1 <div class="search-image-container"> 1 <div class="search-image-container">
2 2
3 <% if image.is_a? UploadedFile and image.filename %> 3 <% if image.is_a? UploadedFile and image.filename %>
4 - <% extension = image.filename[(image.filename.rindex('.')+1)..-1].downcase %> 4 + <% extension = image.extension %>
5 <% if ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'svg'].include? extension %> 5 <% if ['jpg', 'jpeg', 'gif', 'png', 'tiff', 'svg'].include? extension %>
6 <%= link_to '', image.view_url, :class => "search-image-pic", :style => 'background-image: url(%s)'% image.public_filename(:thumb) %> 6 <%= link_to '', image.view_url, :class => "search-image-pic", :style => 'background-image: url(%s)'% image.public_filename(:thumb) %>
7 <% if image.width && image.height %> 7 <% if image.width && image.height %>
lib/acts_as_faceted.rb
@@ -8,7 +8,7 @@ module ActsAsFaceted @@ -8,7 +8,7 @@ module ActsAsFaceted
8 # 8 #
9 #acts_as_faceted :fields => { 9 #acts_as_faceted :fields => {
10 # :f_type => {:label => _('Type'), :proc => proc{|klass| f_type_proc(klass)}}, 10 # :f_type => {:label => _('Type'), :proc => proc{|klass| f_type_proc(klass)}},
11 - # :f_published_at => {:type => :date, :label => _('Published date'), :queries => {'[* TO NOW-1YEARS/DAY]' => _("Older than one year"), 11 + # :f_published_at => {:type => :date, :label => _('Published date'), :queries => {'[* TO NOW-1YEARS/DAY]' => _("Older than one year"),
12 # '[NOW-1YEARS TO NOW/DAY]' => _("Last year"), '[NOW-1MONTHS TO NOW/DAY]' => _("Last month"), '[NOW-7DAYS TO NOW/DAY]' => _("Last week"), '[NOW-1DAYS TO NOW/DAY]' => _("Last day")}}, 12 # '[NOW-1YEARS TO NOW/DAY]' => _("Last year"), '[NOW-1MONTHS TO NOW/DAY]' => _("Last month"), '[NOW-7DAYS TO NOW/DAY]' => _("Last week"), '[NOW-1DAYS TO NOW/DAY]' => _("Last day")}},
13 # :f_profile_type => {:label => _('Author'), :proc => proc{|klass| f_profile_type_proc(klass)}}, 13 # :f_profile_type => {:label => _('Author'), :proc => proc{|klass| f_profile_type_proc(klass)}},
14 # :f_category => {:label => _('Categories')}}, 14 # :f_category => {:label => _('Categories')}},
@@ -36,7 +36,7 @@ module ActsAsFaceted @@ -36,7 +36,7 @@ module ActsAsFaceted
36 self.facets_order = options[:order] || self.facets.keys 36 self.facets_order = options[:order] || self.facets.keys
37 self.facets_results_containers = {:fields => 'facet_fields', :queries => 'facet_queries', :ranges => 'facet_ranges'} 37 self.facets_results_containers = {:fields => 'facet_fields', :queries => 'facet_queries', :ranges => 'facet_ranges'}
38 self.facets_option_for_solr = Hash[facets.select{ |id,data| ! data.has_key?(:queries) }].keys 38 self.facets_option_for_solr = Hash[facets.select{ |id,data| ! data.has_key?(:queries) }].keys
39 - self.facets_fields_for_solr = facets.map{ |id,data| {id => data[:type] || :facet} } 39 + self.facets_fields_for_solr = facets.map{ |id,data| {id => data[:type] || :facet} }
40 self.solr_fields_names = facets.map{ |id,data| id.to_s + '_' + get_solr_field_type(data[:type] || :facet) } 40 self.solr_fields_names = facets.map{ |id,data| id.to_s + '_' + get_solr_field_type(data[:type] || :facet) }
41 self.facet_category_query = options[:category_query] 41 self.facet_category_query = options[:category_query]
42 42
@@ -67,6 +67,7 @@ module ActsAsFaceted @@ -67,6 +67,7 @@ module ActsAsFaceted
67 raise 'Use map_facets_for before this method' if facet[:solr_field].nil? 67 raise 'Use map_facets_for before this method' if facet[:solr_field].nil?
68 facets_data = {} if facets_data.blank? # could be empty array 68 facets_data = {} if facets_data.blank? # could be empty array
69 solr_facet = to_solr_fields_names[facet[:solr_field]] 69 solr_facet = to_solr_fields_names[facet[:solr_field]]
  70 + unfiltered_facets_data ||= {}
70 71
71 if facet[:queries] 72 if facet[:queries]
72 container = facets_data[facets_results_containers[:queries]] 73 container = facets_data[facets_results_containers[:queries]]
@@ -158,13 +159,15 @@ module ActsAsFaceted @@ -158,13 +159,15 @@ module ActsAsFaceted
158 end 159 end
159 160
160 def facet_label(facet) 161 def facet_label(facet)
161 - _ facet[:label] 162 + return nil unless facet
  163 + _(facet[:label])
162 end 164 end
163 165
164 def facets_find_options(facets_selected = {}, options = {}) 166 def facets_find_options(facets_selected = {}, options = {})
165 browses = [] 167 browses = []
166 facets_selected ||= {} 168 facets_selected ||= {}
167 facets_selected.map do |id, value| 169 facets_selected.map do |id, value|
  170 + next unless facets[id.to_sym]
168 if value.kind_of?(Hash) 171 if value.kind_of?(Hash)
169 value.map do |label_id, value| 172 value.map do |label_id, value|
170 value.to_a.each do |value| 173 value.to_a.each do |value|
test/unit/uploaded_file_test.rb
@@ -306,6 +306,11 @@ class UploadedFileTest &lt; ActiveSupport::TestCase @@ -306,6 +306,11 @@ class UploadedFileTest &lt; ActiveSupport::TestCase
306 uses_sqlite 306 uses_sqlite
307 end 307 end
308 308
  309 + should 'return extension' do
  310 + file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'), :profile => @profile)
  311 + assert_equal 'png', file.extension
  312 + end
  313 +
309 should 'upload to path prefix folder if database is not postgresql' do 314 should 'upload to path prefix folder if database is not postgresql' do
310 uses_sqlite 315 uses_sqlite
311 file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile) 316 file = UploadedFile.create!(:uploaded_data => fixture_file_upload('/files/test.txt', 'text/plain'), :profile => @profile)