From: Eric Davis Date: Sat, 19 Jun 2010 22:52:15 +0000 (+0000) Subject: Display the correct ISO week number on the project calendar. X-Git-Tag: 1.0.0~47 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=41ff1b9cb2648eab0c8d67b074de81efe1eabb78;p=redmine.git Display the correct ISO week number on the project calendar. http://en.wikipedia.org/wiki/ISO_week Contributed by Holger Just git-svn-id: svn+ssh://rubyforge.org/var/svn/redmine/trunk@3790 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/app/views/common/_calendar.rhtml b/app/views/common/_calendar.rhtml index d0cf2a07a..14d26badd 100644 --- a/app/views/common/_calendar.rhtml +++ b/app/views/common/_calendar.rhtml @@ -6,7 +6,7 @@ <% day = calendar.startdt while day <= calendar.enddt %> -<%= "#{day.cweek}" if day.cwday == calendar.first_wday %> +<%= "#{(day+(11-day.cwday)%7).cweek}" if day.cwday == calendar.first_wday %>

<%= day.day %>

<% calendar.events_on(day).each do |i| %> diff --git a/test/functional/calendars_controller_test.rb b/test/functional/calendars_controller_test.rb index fa07fdd47..79cfe28a0 100644 --- a/test/functional/calendars_controller_test.rb +++ b/test/functional/calendars_controller_test.rb @@ -17,4 +17,48 @@ class CalendarsControllerTest < ActionController::TestCase assert_not_nil assigns(:calendar) end + def test_week_number_calculation + Setting.start_of_week = 7 + + get :show, :month => '1', :year => '2010' + assert_response :success + + assert_tag :tag => 'tr', + :descendant => {:tag => 'td', + :attributes => {:class => 'week-number'}, :content => '53'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'odd'}, :content => '27'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '2'} + + assert_tag :tag => 'tr', + :descendant => {:tag => 'td', + :attributes => {:class => 'week-number'}, :content => '1'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'odd'}, :content => '3'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '9'} + + + Setting.start_of_week = 1 + get :show, :month => '1', :year => '2010' + assert_response :success + + assert_tag :tag => 'tr', + :descendant => {:tag => 'td', + :attributes => {:class => 'week-number'}, :content => '53'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '28'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '3'} + + assert_tag :tag => 'tr', + :descendant => {:tag => 'td', + :attributes => {:class => 'week-number'}, :content => '1'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '4'}, + :descendant => {:tag => 'td', + :attributes => {:class => 'even'}, :content => '10'} + + end end