Defect #26520
closedBlank "Issue" field on the "Log time" from the "Spent time - Details" page for an issue
0%
Description
When I tried to log time from a "Spent time - Details" page (like https://example.com/projects/project-identifier/time_entries?issue_id=%7E12345 ), I clicked the "Log time" link, and I saw an entry form for spent time with blank "issue" field and an orphan time entry was created unexpectedly.
Steps to reproduce:
1. Visit a list of issues under any project. (`/projects/project-identifier/issues`)
2. Visit an issue.
3. Click the "Log time" link.
4. Fill "Hours" field with a value `1`.
5. Choose any activity.
6. Click the "Create" button.
7. Then you'll see a list of spent time under the project.
8. Back to the issue.
9. Then you'll see a link like "Spent time: 1.00h".
10. Click the "Spent time: 1.00h" link.
11. Then you'll see a list of spent time for the issue. (`/projects/project-identifier/time_entries?issue_id=%7E123`)
12. Click the "Log time" link in the page.
Expected result:
An entry form is shown with a "Issue" field filled with a value like `123` (or any issue number.)
Actual result:
An entry form is shown with a blank "Issue" field. There is no issue number.
Confrimed versions with unexpected behavior:
- Redmine 3.4.2
- Redmine 3.4.1
- Redmine 3.3.0
At the step 12, the link URL is generated for the project itself, like: `/projects/project-identifier/time_entries/new`.
Confirmed versions with expected behavior:
- Redmine 3.2.0
At the step 12, the link URL is generated for the project itself, like: `/issues/123/time_entries/new`.
Updated by Hiroshi YUKI over 7 years ago
Confirmed versions with expected behavior:
Redmine 3.2.0
At the step 12, the link URL is generated for the project itself, like: `/issues/123/time_entries/new`.
Oops, the description is wrong. Correct:
At the step 12, the link URL is generated for the issue itself, like: `/issues/123/time_entries/new`.
Updated by Hiroshi YUKI over 7 years ago
The link URL is generated by the `_new_time_entry_path` helper method, but no issue id is given to the method even if there is the `issue_id` parameter. As the result, the method calls `new_project_time_entry_path` internally instead of `new_issue_time_entry_path`.
Updated by Hiroshi YUKI over 7 years ago
Workaround:
$ svn diff
Index: app/controllers/timelog_controller.rb
===================================================================
--- app/controllers/timelog_controller.rb (revision 16854)
+++ app/controllers/timelog_controller.rb (working copy)
@@ -40,6 +40,7 @@
include QueriesHelper
def index
+ @issue = params[:issue_id]
retrieve_time_entry_query
scope = time_entry_scope.
preload(:issue => [:project, :tracker, :status, :assigned_to, :priority]).
Updated by Pavel Horal over 7 years ago
Thank you for the workaround. I was looking into this literally at the same time :). This change is the culprit - r15644 .
Updated by Jean-Philippe Lang over 7 years ago
- Status changed from New to Resolved
- Assignee set to Jean-Philippe Lang
- Resolution set to Fixed
Fixed in r16924, thanks for pointing this out.
Updated by Jean-Philippe Lang about 7 years ago
- Status changed from Resolved to Closed