Defect #32774 » 0001-Fix-creating-time-tracking-entry-through-rest-API-do.patch
| app/controllers/timelog_controller.rb | ||
|---|---|---|
| 288 | 288 |
end |
| 289 | 289 |
end |
| 290 | 290 | |
| 291 |
def find_optional_project |
|
| 292 |
if params[:project_id].present? || params[:time_entry].present? && params[:time_entry][:project_id].present? |
|
| 293 |
project_id = params[:project_id] || params[:time_entry][:project_id] |
|
| 294 |
find_project(project_id) |
|
| 295 |
end |
|
| 296 |
authorize_global |
|
| 297 |
end |
|
| 298 | ||
| 291 | 299 |
# Returns the TimeEntry scope for index and report actions |
| 292 | 300 |
def time_entry_scope(options={})
|
| 293 | 301 |
@query.results_scope(options) |
| test/integration/api_test/time_entries_test.rb | ||
|---|---|---|
| 144 | 144 |
assert_select 'errors error', :text => "Hours cannot be blank" |
| 145 | 145 |
end |
| 146 | 146 | |
| 147 |
test "POST /time_entries.xml for other user" do |
|
| 148 |
Role.find_by_name('Manager').add_permission! :log_time_for_other_users
|
|
| 149 | ||
| 150 |
assert_difference 'TimeEntry.count' do |
|
| 151 |
post( |
|
| 152 |
'/time_entries.xml', |
|
| 153 |
:params => |
|
| 154 |
{:time_entry =>
|
|
| 155 |
{:project_id => '1', :spent_on => '2010-12-02', :user_id => '3',
|
|
| 156 |
:hours => '3.5', :activity_id => '11'}}, |
|
| 157 |
:headers => credentials('jsmith'))
|
|
| 158 |
end |
|
| 159 |
assert_response :created |
|
| 160 | ||
| 161 |
assert_equal 'application/xml', @response.content_type |
|
| 162 | ||
| 163 |
entry = TimeEntry.order('id DESC').first
|
|
| 164 |
assert_equal 3, entry.user_id |
|
| 165 |
assert_equal 2, entry.author_id |
|
| 166 |
end |
|
| 167 | ||
| 147 | 168 |
test "PUT /time_entries/:id.xml with valid parameters should update time entry" do |
| 148 | 169 |
assert_no_difference 'TimeEntry.count' do |
| 149 | 170 |
put( |