summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--app/views/common/_calendar.rhtml2
-rw-r--r--test/functional/calendars_controller_test.rb44
2 files changed, 45 insertions, 1 deletions
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 @@
<tr>
<% day = calendar.startdt
while day <= calendar.enddt %>
-<%= "<td class='week-number' title='#{ l(:label_week) }'>#{day.cweek}</td>" if day.cwday == calendar.first_wday %>
+<%= "<td class='week-number' title='#{ l(:label_week) }'>#{(day+(11-day.cwday)%7).cweek}</td>" if day.cwday == calendar.first_wday %>
<td class="<%= day.month==calendar.month ? 'even' : 'odd' %><%= ' today' if Date.today == day %>">
<p class="day-num"><%= day.day %></p>
<% 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