From e44d16aef9bd4fe9a44a2207a0be357fee2bc285 Mon Sep 17 00:00:00 2001 From: Alexey Verkhovsky Date: Sat, 11 Mar 2006 22:59:55 +0000 Subject: [PATCH] Fixed rendering of Recently Revised --- app/controllers/wiki_controller.rb | 5 +++++ app/helpers/application_helper.rb | 6 ++---- app/views/wiki/recently_revised.rhtml | 14 +++----------- test/functional/wiki_controller_test.rb | 18 ++++++++++++++++-- 4 files changed, 26 insertions(+), 17 deletions(-) diff --git a/app/controllers/wiki_controller.rb b/app/controllers/wiki_controller.rb index 46a931c2..38211e37 100644 --- a/app/controllers/wiki_controller.rb +++ b/app/controllers/wiki_controller.rb @@ -122,6 +122,11 @@ class WikiController < ApplicationController def recently_revised parse_category @pages_by_revision = @pages_in_category.by_revision + @pages_by_day = Hash.new { |h, day| h[day] = [] } + @pages_by_revision.each do |page| + day = Date.new(page.revised_at.year, page.revised_at.month, page.revised_at.day) + @pages_by_day[day] << page + end end def rss_with_content diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3056541e..607dd0c1 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -79,12 +79,10 @@ module ApplicationHelper def format_date(date, include_time = true) # Must use DateTime because Time doesn't support %e on at least some platforms - date_time = DateTime.new(date.year, date.mon, date.day, date.hour, date.min, - date.sec) if include_time - return date_time.strftime("%B %e, %Y %H:%M:%S") + DateTime.new(date.year, date.mon, date.day, date.hour, date.min, date.sec).strftime("%B %e, %Y %H:%M:%S") else - return date_time.strftime("%B %e, %Y") + DateTime.new(date.year, date.mon, date.day).strftime("%B %e, %Y") end end diff --git a/app/views/wiki/recently_revised.rhtml b/app/views/wiki/recently_revised.rhtml index f4ca669c..f4411fba 100644 --- a/app/views/wiki/recently_revised.rhtml +++ b/app/views/wiki/recently_revised.rhtml @@ -2,17 +2,10 @@ <%= categories_menu %> -<% unless @pages_by_revision.empty? %> - <% revision_date = @pages_by_revision.first.revised_at %> -

<%= format_date(revision_date, include_time = false) %>

+<% @pages_by_day.keys.sort.reverse.each do |day| %> +

<%= format_date(day, include_time = false) %>

-

<%= format_date(revision_date, include_time = false) %>

- <% end %> - \ No newline at end of file diff --git a/test/functional/wiki_controller_test.rb b/test/functional/wiki_controller_test.rb index 2e44066e..c94cd75d 100755 --- a/test/functional/wiki_controller_test.rb +++ b/test/functional/wiki_controller_test.rb @@ -220,7 +220,9 @@ class WikiControllerTest < Test::Unit::TestCase assert_equal ['animals', 'trees'], r.template_objects['categories'] assert_nil r.template_objects['category'] - assert_equal [@elephant, pages(:first_page), @home, pages(:my_way), pages(:no_wiki_word), @oak, pages(:smart_engine), pages(:that_way)], r.template_objects['pages_in_category'] + assert_equal [@elephant, pages(:first_page), @home, pages(:my_way), pages(:no_wiki_word), + @oak, pages(:smart_engine), pages(:that_way)], + r.template_objects['pages_in_category'] end @@ -298,7 +300,19 @@ class WikiControllerTest < Test::Unit::TestCase assert_equal %w(animals trees), r.template_objects['categories'] assert_nil r.template_objects['category'] - assert_equal [@elephant, pages(:first_page), @home, pages(:my_way), pages(:no_wiki_word), @oak, pages(:smart_engine), pages(:that_way)], r.template_objects['pages_in_category'] + all_pages = @elephant, pages(:first_page), @home, pages(:my_way), pages(:no_wiki_word), + @oak, pages(:smart_engine), pages(:that_way) + assert_equal all_pages, r.template_objects['pages_in_category'] + + pages_by_day = r.template_objects['pages_by_day'] + assert_not_nil pages_by_day + pages_by_day_size = pages_by_day.keys.inject(0) { |sum, day| sum + pages_by_day[day].size } + assert_equal all_pages.size, pages_by_day_size + all_pages.each do |page| + day = Date.new(page.revised_at.year, page.revised_at.month, page.revised_at.day) + assert pages_by_day[day].include?(page) + end + assert_equal 'the web', r.template_objects['set_name'] end