Project

General

Profile

Actions

Defect #26520

closed

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

Added by Hiroshi YUKI over 6 years ago. Updated over 6 years ago.

Status:
Closed
Priority:
Normal
Category:
Time tracking
Target version:
Start date:
Due date:
% Done:

0%

Estimated time:
Resolution:
Fixed
Affected version:

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

Actions #1

Updated by Hiroshi YUKI over 6 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`.

Actions #2

Updated by Hiroshi YUKI over 6 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`.

Actions #3

Updated by Hiroshi YUKI over 6 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]).
Actions #4

Updated by Pavel Horal over 6 years ago

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

Actions #5

Updated by Jean-Philippe Lang over 6 years ago

  • Target version set to 3.4.3
Actions #6

Updated by Jean-Philippe Lang over 6 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.

Actions #7

Updated by Jean-Philippe Lang over 6 years ago

  • Status changed from Resolved to Closed
Actions

Also available in: Atom PDF