summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGo MAEDA <maeda@farend.jp>2024-11-24 07:04:17 +0000
committerGo MAEDA <maeda@farend.jp>2024-11-24 07:04:17 +0000
commitd8cb8b20f41ffa7535ac8dadc6b8d8e2731ab718 (patch)
tree67451892c25bc58562b0abf6ecd3e16abb1f30d1
parentdb0ac01d3d3177bb0c9b03d0a9e2ec120f701921 (diff)
downloadredmine-d8cb8b20f41ffa7535ac8dadc6b8d8e2731ab718.tar.gz
redmine-d8cb8b20f41ffa7535ac8dadc6b8d8e2731ab718.zip
Fix: Time entry API returning `hours` as Rational instead of Float (#41819).
Patch by Go MAEDA (user:maeda). git-svn-id: https://svn.redmine.org/redmine/trunk@23304 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/views/timelog/index.api.rsb2
-rw-r--r--app/views/timelog/show.api.rsb2
-rw-r--r--test/integration/api_test/time_entries_test.rb9
3 files changed, 8 insertions, 5 deletions
diff --git a/app/views/timelog/index.api.rsb b/app/views/timelog/index.api.rsb
index 976714869..aa05de3b8 100644
--- a/app/views/timelog/index.api.rsb
+++ b/app/views/timelog/index.api.rsb
@@ -6,7 +6,7 @@ api.array :time_entries, api_meta(:total_count => @entry_count, :offset => @offs
api.issue(:id => time_entry.issue_id) unless time_entry.issue.nil?
api.user(:id => time_entry.user_id, :name => time_entry.user.name) unless time_entry.user.nil?
api.activity(:id => time_entry.activity_id, :name => time_entry.activity.name) unless time_entry.activity.nil?
- api.hours time_entry.hours
+ api.hours time_entry.hours.round(2).to_f
api.comments time_entry.comments
api.spent_on time_entry.spent_on
api.created_on time_entry.created_on
diff --git a/app/views/timelog/show.api.rsb b/app/views/timelog/show.api.rsb
index 7fce2529a..36a8e8b72 100644
--- a/app/views/timelog/show.api.rsb
+++ b/app/views/timelog/show.api.rsb
@@ -4,7 +4,7 @@ api.time_entry do
api.issue(:id => @time_entry.issue_id) unless @time_entry.issue.nil?
api.user(:id => @time_entry.user_id, :name => @time_entry.user.name) unless @time_entry.user.nil?
api.activity(:id => @time_entry.activity_id, :name => @time_entry.activity.name) unless @time_entry.activity.nil?
- api.hours @time_entry.hours
+ api.hours @time_entry.hours.round(2).to_f
api.comments @time_entry.comments
api.spent_on @time_entry.spent_on
api.created_on @time_entry.created_on
diff --git a/test/integration/api_test/time_entries_test.rb b/test/integration/api_test/time_entries_test.rb
index bd417ab2d..66f7cf335 100644
--- a/test/integration/api_test/time_entries_test.rb
+++ b/test/integration/api_test/time_entries_test.rb
@@ -33,7 +33,9 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base
get '/time_entries.xml', :headers => credentials('jsmith')
assert_response :success
assert_equal 'application/xml', @response.media_type
- assert_select 'time_entries[type=array] time_entry id', :text => '2'
+ assert_select 'time_entries[type=array] time_entry id', :text => '4'
+ assert_select 'time_entry:has(id:contains(4)) hours', :text => '7.65'
+ assert_select 'time_entry:has(id:contains(3)) hours', :text => '1.0'
end
test "GET /time_entries.xml with limit should return limited results" do
@@ -44,10 +46,11 @@ class Redmine::ApiTest::TimeEntriesTest < Redmine::ApiTest::Base
end
test "GET /time_entries/:id.xml should return the time entry" do
- get '/time_entries/2.xml', :headers => credentials('jsmith')
+ get '/time_entries/4.xml', :headers => credentials('jsmith')
assert_response :success
assert_equal 'application/xml', @response.media_type
- assert_select 'time_entry id', :text => '2'
+ assert_select 'time_entry id', :text => '4'
+ assert_select 'time_entry hours', :text => '7.65'
end
test "GET /time_entries/:id.xml on closed project should return the time entry" do