diff --git a/app/models/article.rb b/app/models/article.rb
index 9b3931c..e72683b 100644
--- a/app/models/article.rb
+++ b/app/models/article.rb
@@ -109,7 +109,7 @@ class Article < ActiveRecord::Base
((articles.type != ? and articles.type != ? and articles.type != ?) OR articles.type is NULL)", true, true, true, true, 'UploadedFile', 'RssFeed', 'Blog'
],
:include => 'profile',
- :order => 'articles.updated_at desc, articles.id desc'
+ :order => 'articles.published_at desc, articles.id desc'
}
if ( scoped_methods && scoped_methods.last &&
scoped_methods.last[:find] &&
diff --git a/app/models/blog_archives_block.rb b/app/models/blog_archives_block.rb
index 74e199d..d397021 100644
--- a/app/models/blog_archives_block.rb
+++ b/app/models/blog_archives_block.rb
@@ -18,7 +18,7 @@ class BlogArchivesBlock < Block
return nil unless owner.has_blog?
results = ''
posts = owner.blog.posts
- posts.group_by{|i| i.published_at.year}.each do |year, results_by_year|
+ posts.group_by {|i| i.published_at.year }.sort_by { |year,count| -year }.each do |year, results_by_year|
results << content_tag('li', content_tag('strong', "#{year} (#{results_by_year.size})"))
results << "
"
results_by_year.group_by{|i| [ ('%02d' % i.published_at.month()), gettext(MONTHS[i.published_at.month() - 1])]}.sort.each do |month, results_by_month|
diff --git a/app/views/cms/_blog.rhtml b/app/views/cms/_blog.rhtml
index 57aab5d..065807d 100644
--- a/app/views/cms/_blog.rhtml
+++ b/app/views/cms/_blog.rhtml
@@ -26,7 +26,7 @@
<%= labelled_form_field( _('Feed address'), efeed.text_field(:address) ) %>
<%= labelled_radio_button( _('Fetch posts only once'), 'article[external_feed_builder][only_once]', 'true', only_once) %>
- <%= labelled_radio_button( _('Fetch posts always'), 'article[external_feed_builder][only_once]', 'false', !only_once) %>
+ <%= labelled_radio_button( _('Fetch posts periodically'), 'article[external_feed_builder][only_once]', 'false', !only_once) %>
diff --git a/db/schema.rb b/db/schema.rb
index b72bebe..77fd5ae 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -9,7 +9,7 @@
#
# It's strongly recommended to check this file into your version control system.
-ActiveRecord::Schema.define(:version => 64) do
+ActiveRecord::Schema.define(:version => 65) do
create_table "article_versions", :force => true do |t|
t.integer "article_id"
diff --git a/lib/feed_handler.rb b/lib/feed_handler.rb
index df87208..0660f27 100644
--- a/lib/feed_handler.rb
+++ b/lib/feed_handler.rb
@@ -27,9 +27,9 @@ class FeedHandler
container.clear
content = fetch(container.address)
container.fetched_at = Time.now
- parse = parse(content)
- container.feed_title = parse.title
- parse.items[0..container.limit-1].each do |item|
+ parsed_feed = parse(content)
+ container.feed_title = parsed_feed.title
+ parsed_feed.items[0..container.limit-1].each do |item|
container.add_item(item.title, item.link, item.date, item.content)
end
container.finish_fetch
diff --git a/test/unit/article_test.rb b/test/unit/article_test.rb
index 26fe24e..3a0b56c 100644
--- a/test/unit/article_test.rb
+++ b/test/unit/article_test.rb
@@ -181,17 +181,19 @@ class ArticleTest < Test::Unit::TestCase
assert_equal [ ], Article.recent(nil)
end
- should 'order recent articles by updated_at' do
+ should 'order recent articles by published_at' do
p = create_user('usr1').person
Article.destroy_all
- first = p.articles.build(:name => 'first', :public_article => true); first.save!
- second = p.articles.build(:name => 'second', :public_article => true, :updated_at => first.updated_at + 1.second); second.save!
+ now = Time.now
+
+ first = p.articles.build(:name => 'first', :public_article => true, :created_at => now, :published_at => now); first.save!
+ second = p.articles.build(:name => 'second', :public_article => true, :updated_at => now, :published_at => now + 1.second); second.save!
assert_equal [ second, first ], Article.recent(2)
Article.record_timestamps = false
- first.update_attributes!(:updated_at => second.updated_at + 1.second)
+ first.update_attributes!(:published_at => second.published_at + 1.second)
Article.record_timestamps = true
assert_equal [ first, second ], Article.recent(2)
diff --git a/test/unit/blog_archives_block_test.rb b/test/unit/blog_archives_block_test.rb
index de5b519..deafe26 100644
--- a/test/unit/blog_archives_block_test.rb
+++ b/test/unit/blog_archives_block_test.rb
@@ -56,6 +56,16 @@ class BlogArchivesBlockTest < ActiveSupport::TestCase
:sibling => {:tag => 'li', :content => 'May (1)'}}}}
end
+ should 'order years' do
+ blog = profile.blog
+ for year in 2005..2009
+ post = TextileArticle.create!(:name => "post #{year}", :profile => profile, :parent => blog, :published_at => Date.new(year, 1, 1))
+ end
+ block = BlogArchivesBlock.new
+ block.stubs(:owner).returns(profile)
+ assert_match(/2009.*2008.*2007.*2006.*2005/m, block.content)
+ end
+
should 'not display any content if has no blog' do
profile.stubs(:has_blog?).returns(false)
assert !profile.has_blog?
--
libgit2 0.21.2