@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)
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
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"))