Commit e453a360890f55ad5af4ab3a1e6e9a8aa5ad8fed
Exists in
master
and in
29 other branches
Merge commit 'refs/merge-requests/227' of git://gitorious.org/noosfero/noosfero …
…into merge-requests/227
Showing
6 changed files
with
25 additions
and
8 deletions
Show diff stats
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 < ActiveRecord::Base | @@ -163,7 +164,7 @@ class Product < 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 < Article | @@ -67,7 +67,7 @@ class UploadedFile < 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 < Article | @@ -129,6 +129,12 @@ class UploadedFile < 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 < Article | @@ -144,4 +150,5 @@ class UploadedFile < 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 < ActiveSupport::TestCase | @@ -306,6 +306,11 @@ class UploadedFileTest < 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) |