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( |