Defect #26520

Blank "Issue" field on the "Log time" from the "Spent time - Details" page for an issue

Added by Hiroshi YUKI 23 days ago. Updated 17 days ago.

Status:ResolvedStart date:
Priority:NormalDue date:
Assignee:Jean-Philippe Lang% Done:

0%

Category:Time tracking
Target version:3.4.3
Resolution:Fixed Affected version:3.4.2

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`.

Associated revisions

Revision 16924
Added by Jean-Philippe Lang 17 days ago

Fill the issue id when logging time from the time log list of an issue (#26520).

Revision 16925
Added by Jean-Philippe Lang 17 days ago

Test broken by r16924 (#26520).

History

#1 Updated by Hiroshi YUKI 23 days 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`.

#2 Updated by Hiroshi YUKI 23 days 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`.

#3 Updated by Hiroshi YUKI 23 days 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]).

#4 Updated by Pavel Horal 23 days ago

Thank you for the workaround. I was looking into this literally at the same time :). This change is the culprit - r15644 .

#5 Updated by Jean-Philippe Lang 22 days ago

  • Target version set to 3.4.3

#6 Updated by Jean-Philippe Lang 17 days 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.

Also available in: Atom PDF