Commit 55e713093f3a6f5a7c8b3ca29202feaff0c4234b

Authored by Daniela Feitosa
Committed by Antonio Terceiro
1 parent 740e8524

ActionItem909: don't list UploadFile articles in the recent contents block

app/models/article.rb
... ... @@ -89,12 +89,13 @@ class Article < ActiveRecord::Base
89 89 def self.recent(limit)
90 90 # FIXME this method is a horrible hack
91 91 options = { :limit => limit,
92   - :conditions => {
93   - :advertise => true,
94   - :public_article => true,
95   - :published => true,
96   - 'profiles.public_profile' => true
97   - },
  92 + :conditions => [
  93 + "advertise = ? AND
  94 + public_article = ? AND
  95 + published = ? AND
  96 + profiles.public_profile = ? AND
  97 + (articles.type != ? OR articles.type is NULL)", true, true, true, true, 'UploadedFile'
  98 + ],
98 99 :include => 'profile',
99 100 :order => 'articles.updated_at desc, articles.id desc'
100 101 }
... ...
test/unit/article_test.rb
... ... @@ -197,6 +197,16 @@ class ArticleTest < Test::Unit::TestCase
197 197 assert_equal [ first, second ], Article.recent(2)
198 198 end
199 199  
  200 + should 'not show UploadedFile as recent' do
  201 + p = create_user('usr1').person
  202 + Article.destroy_all
  203 +
  204 + first = UploadedFile.new(:profile => p, :uploaded_data => fixture_file_upload('/files/rails.png', 'image/png')); first.save!
  205 + second = p.articles.build(:name => 'second'); second.save!
  206 +
  207 + assert_equal [ second ], Article.recent(nil)
  208 + end
  209 +
200 210 should 'require that subclasses define description' do
201 211 assert_raise NotImplementedError do
202 212 Article.description
... ...