From bf45b41184bf5bca43f59f820a8f6d85163b0e13 Mon Sep 17 00:00:00 2001 From: Rodrigo Souto Date: Tue, 6 Apr 2010 14:41:44 -0300 Subject: [PATCH] Slideshow block don't show folders --- app/models/slideshow_block.rb | 6 +++++- app/views/box_organizer/_slideshow_block.rhtml | 2 +- test/unit/slideshow_block_test.rb | 16 +++++++++++++--- 3 files changed, 19 insertions(+), 5 deletions(-) diff --git a/app/models/slideshow_block.rb b/app/models/slideshow_block.rb index 57db140..95f6ddd 100644 --- a/app/models/slideshow_block.rb +++ b/app/models/slideshow_block.rb @@ -13,10 +13,14 @@ class SlideshowBlock < Block gallery_id ? Folder.find(gallery_id) : nil end + def block_images + gallery.images.reject {|item| item.folder?} + end + def content block = self if gallery - images = gallery.images + images = block_images if shuffle images = images.shuffle end diff --git a/app/views/box_organizer/_slideshow_block.rhtml b/app/views/box_organizer/_slideshow_block.rhtml index 1ae3214..2d1b293 100644 --- a/app/views/box_organizer/_slideshow_block.rhtml +++ b/app/views/box_organizer/_slideshow_block.rhtml @@ -1,6 +1,6 @@ <% galleries = @block.box.owner.articles.select {|article| article.folder? && article.display_as_gallery? } %> <%= labelled_form_field _('Choose a gallery'), select('block', 'gallery_id', galleries.map { |item| - [ _('%{gallery} (%{count} images)') % {:gallery => item.path, :count => item.images.count}, item.id ] + [ _('%{gallery} (%{count} images)') % {:gallery => item.path, :count => item.images.reject{|image| image.folder?}.count}, item.id ] }) %> <%= labelled_form_field _('Image transition:'), select('block', 'interval', [[_('No automatic transition'), 0]] + [1, 2, 3, 4, 5, 10, 20, 30, 60].map {|item| [n_('Every 1 second', 'Every %d seconds', item) % item, item]}) %> diff --git a/test/unit/slideshow_block_test.rb b/test/unit/slideshow_block_test.rb index 63ce8ed..9e04c06 100644 --- a/test/unit/slideshow_block_test.rb +++ b/test/unit/slideshow_block_test.rb @@ -35,11 +35,11 @@ class SlideshowBlockTest < ActiveSupport::TestCase gallery = mock images = [] shuffled = [] - gallery.stubs(:images).returns(images) - images.expects(:shuffle).once.returns(shuffled) - block = SlideshowBlock.new(:shuffle => true) block.stubs(:gallery).returns(gallery) + block.stubs(:block_images).returns(images) + images.expects(:shuffle).once.returns(shuffled) + block.content end @@ -51,4 +51,14 @@ class SlideshowBlockTest < ActiveSupport::TestCase assert_equal false, SlideshowBlock.new.navigation end + should 'not show folders' do + folder = fast_create(Folder, :profile_id => profile.id) + gallery = fast_create(Folder, :profile_id => profile.id) + gallery.children << folder + block = SlideshowBlock.new + block.stubs(:gallery).returns(gallery) + + assert_not_includes block.block_images, folder + end + end -- libgit2 0.21.2