Commit f1416f69cb9d90bbcd4f141d7a9e6c4a7a256177

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 3e6f0186

Only published articles should be counted on profile

(ActionItem1452)
app/models/article.rb
... ... @@ -224,6 +224,7 @@ class Article < ActiveRecord::Base
224 224 end
225 225 end
226 226  
  227 + named_scope :published, :conditions => { :published => true }
227 228 named_scope :folders, :conditions => { :type => ['Folder', 'Blog'] }
228 229  
229 230 def display_unpublished_article_to?(user)
... ...
app/views/profile/index.rhtml
... ... @@ -21,7 +21,7 @@
21 21 <tr>
22 22 <td><%= blog.name + ':' %></td>
23 23 <td>
24   - <%= link_to(n_('One post', '%{num} posts', blog.posts.count) % { :num => blog.posts.count }, blog.url) %>
  24 + <%= link_to(n_('One post', '%{num} posts', blog.posts.published.count) % { :num => blog.posts.published.count }, blog.url) %>
25 25 </td>
26 26 </tr>
27 27 <% end %>
... ... @@ -29,7 +29,7 @@
29 29 <tr>
30 30 <td><%= gallery.name + ':' %></td>
31 31 <td>
32   - <%= link_to(n_('One picture', '%{num} pictures', gallery.images.count) % { :num => gallery.images.count }, gallery.url) %>
  32 + <%= link_to(n_('One picture', '%{num} pictures', gallery.images.published.count) % { :num => gallery.images.published.count }, gallery.url) %>
33 33 </td>
34 34 </tr>
35 35 <% end %>
... ... @@ -37,7 +37,7 @@
37 37 <tr>
38 38 <td><%= _('Events:') %></td>
39 39 <td>
40   - <%= link_to profile.events.count, :controller => 'events', :action => 'events' %>
  40 + <%= link_to profile.events.published.count, :controller => 'events', :action => 'events' %>
41 41 </td>
42 42 </tr>
43 43 <tr>
... ...
test/functional/profile_controller_test.rb
... ... @@ -639,9 +639,30 @@ class ProfileControllerTest &lt; Test::Unit::TestCase
639 639 assert_nil @request.session[:before_join]
640 640 end
641 641  
642   - should 'show link to events in index' do
  642 + should 'show number of published events in index' do
  643 + profile.articles << Event.new(:name => 'Published event', :start_date => Date.today)
  644 + profile.articles << Event.new(:name => 'Unpublished event', :start_date => Date.today, :published => false)
  645 +
  646 + get :index, :profile => profile.identifier
  647 + assert_tag :tag => 'a', :content => '1', :attributes => { :href => "/profile/testuser/events" }
  648 + end
  649 +
  650 + should 'show number of published posts in index' do
  651 + profile.articles << blog = Blog.create(:name => 'Blog', :profile_id => profile.id)
  652 + blog.posts << TextileArticle.new(:name => 'Published post', :parent => profile.blog, :profile => profile)
  653 + blog.posts << TextileArticle.new(:name => 'Other published post', :parent => profile.blog, :profile => profile)
  654 + blog.posts << TextileArticle.new(:name => 'Unpublished post', :parent => profile.blog, :profile => profile, :published => false)
  655 +
643 656 get :index, :profile => profile.identifier
644   - assert_tag :tag => 'a', :attributes => { :href => "/profile/#{profile.identifier}/events" }
  657 + assert_tag :tag => 'a', :content => '2 posts', :attributes => { :href => /\/testuser\/blog/ }
645 658 end
646 659  
  660 + should 'show number of published images in index' do
  661 + folder = Folder.create!(:name => 'gallery', :profile => profile, :view_as => 'image_gallery')
  662 + published_file = UploadedFile.create!(:profile => profile, :parent => folder, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png'))
  663 + unpublished_file = UploadedFile.create!(:profile => profile, :parent => folder, :uploaded_data => fixture_file_upload('/files/other-pic.jpg', 'image/jpg'), :published => false)
  664 +
  665 + get :index, :profile => profile.identifier
  666 + assert_tag :tag => 'a', :content => 'One picture', :attributes => { :href => /\/testuser\/gallery/ }
  667 + end
647 668 end
... ...
test/unit/article_test.rb
... ... @@ -829,4 +829,12 @@ class ArticleTest &lt; Test::Unit::TestCase
829 829 assert_equal 'http://url.without.http', article.external_link
830 830 end
831 831  
  832 + should 'list only published articles' do
  833 + profile = fast_create(Person)
  834 +
  835 + published = profile.articles.create(:name => 'Published', :published => true)
  836 + unpublished = profile.articles.create(:name => 'Unpublished', :published => false)
  837 +
  838 + assert_equal [ published ], profile.articles.published
  839 + end
832 840 end
... ...