mirror of
https://github.com/redmine/redmine.git
synced 2025-11-10 15:26:03 +01:00
Add total estimated hours, spent hours, total spent hours for issues to issue list API (#34857).
Patch by Felix Schäfer and Takenori TAKAKI. git-svn-id: http://svn.redmine.org/redmine/trunk@21051 e93f8b46-1217-0410-a6f0-8f06a7374b81
This commit is contained in:
@@ -60,6 +60,10 @@ class IssuesController < ApplicationController
|
||||
@issue_count = @query.issue_count
|
||||
@issues = @query.issues(:offset => @offset, :limit => @limit)
|
||||
Issue.load_visible_relations(@issues) if include_in_api_response?('relations')
|
||||
if User.current.allowed_to?(:view_time_entries, nil, :global => true)
|
||||
Issue.load_visible_spent_hours(@issues)
|
||||
Issue.load_visible_total_spent_hours(@issues)
|
||||
end
|
||||
end
|
||||
format.atom do
|
||||
@issues = @query.issues(:limit => Setting.feeds_limit.to_i)
|
||||
|
||||
@@ -19,6 +19,11 @@ api.array :issues, api_meta(:total_count => @issue_count, :offset => @offset, :l
|
||||
api.done_ratio issue.done_ratio
|
||||
api.is_private issue.is_private
|
||||
api.estimated_hours issue.estimated_hours
|
||||
api.total_estimated_hours issue.total_estimated_hours
|
||||
if User.current.allowed_to?(:view_time_entries, issue.project)
|
||||
api.spent_hours(issue.spent_hours)
|
||||
api.total_spent_hours(issue.total_spent_hours)
|
||||
end
|
||||
|
||||
render_api_custom_values issue.visible_custom_field_values, api
|
||||
|
||||
|
||||
@@ -141,6 +141,34 @@ class Redmine::ApiTest::IssuesTest < Redmine::ApiTest::Base
|
||||
assert_select 'issues>issue>is_private', :text => 'false'
|
||||
end
|
||||
|
||||
def test_index_should_include_spent_hours
|
||||
Issue.delete_all
|
||||
parent = Issue.generate!(:estimated_hours => 2.0)
|
||||
child = Issue.generate!(:parent_id => parent.id, :estimated_hours => 3.0)
|
||||
TimeEntry.create!(:project => parent.project, :issue => parent, :user => parent.author, :spent_on => parent.author.today,
|
||||
:hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id)
|
||||
TimeEntry.create!(:project => child.project, :issue => child, :user => child.author, :spent_on => child.author.today,
|
||||
:hours => '2.5', :comments => '', :activity_id => TimeEntryActivity.first.id)
|
||||
|
||||
get '/issues.xml'
|
||||
|
||||
assert_select 'issues issue', 2
|
||||
assert_select 'issues>issue>spent_hours', '2.5'
|
||||
assert_select 'issues>issue>total_spent_hours', '5.0'
|
||||
end
|
||||
|
||||
def test_index_should_not_include_spent_hours
|
||||
r = Role.anonymous
|
||||
r.permissions.delete(:view_time_entries)
|
||||
r.permissions_will_change!
|
||||
r.save
|
||||
|
||||
get '/issues.xml'
|
||||
|
||||
assert_select 'issues>issue>spent_hours', false
|
||||
assert_select 'issues>issue>total_spent_hours', false
|
||||
end
|
||||
|
||||
def test_index_should_allow_timestamp_filtering
|
||||
Issue.delete_all
|
||||
Issue.generate!(:subject => '1').update_column(:updated_on, Time.parse("2014-01-02T10:25:00Z"))
|
||||
|
||||
Reference in New Issue
Block a user