summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-14 09:34:24 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2017-01-14 09:34:24 +0000
commit45879a41b25ac3516e8079c38ab745098017369d (patch)
tree23ac2da7710d8e8bd97e85b65f96feaf0b85d8ea
parentd2fcfc55742fd7d6241dc6d9c6dc8a2aebd876b0 (diff)
downloadredmine-45879a41b25ac3516e8079c38ab745098017369d.tar.gz
redmine-45879a41b25ac3516e8079c38ab745098017369d.zip
Moves journals selection to Issue#visible_journals_with_index (#17632).
git-svn-id: http://svn.redmine.org/redmine/trunk@16180 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--app/controllers/issues_controller.rb19
-rw-r--r--app/models/issue.rb15
2 files changed, 22 insertions, 12 deletions
diff --git a/app/controllers/issues_controller.rb b/app/controllers/issues_controller.rb
index 0b99eb526..9dba545dd 100644
--- a/app/controllers/issues_controller.rb
+++ b/app/controllers/issues_controller.rb
@@ -93,20 +93,15 @@ class IssuesController < ApplicationController
end
def show
- @journals = @issue.journals.
- preload(:details).
- preload(:user => :email_address).
- reorder(:created_on, :id).to_a
- @journals.each_with_index {|j,i| j.indice = i+1}
- @journals.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, @issue.project)
- Journal.preload_journals_details_custom_fields(@journals)
- @journals.select! {|journal| journal.notes? || journal.visible_details.any?}
- @journals.reverse! if User.current.wants_comments_in_reverse_order?
-
+ @journals = @issue.visible_journals_with_index
@changesets = @issue.changesets.visible.preload(:repository, :user).to_a
- @changesets.reverse! if User.current.wants_comments_in_reverse_order?
-
@relations = @issue.relations.select {|r| r.other_issue(@issue) && r.other_issue(@issue).visible? }
+
+ if User.current.wants_comments_in_reverse_order?
+ @journals.reverse!
+ @changesets.reverse!
+ end
+
@allowed_statuses = @issue.new_statuses_allowed_to(User.current)
@priorities = IssuePriority.active
@time_entry = TimeEntry.new(:issue => @issue, :project => @issue.project)
diff --git a/app/models/issue.rb b/app/models/issue.rb
index 2111b0489..a64d72e4c 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -813,6 +813,21 @@ class Issue < ActiveRecord::Base
scope
end
+ # Returns the journals that are visible to user with their index
+ # Used to display the issue history
+ def visible_journals_with_index(user=User.current)
+ result = journals.
+ preload(:details).
+ preload(:user => :email_address).
+ reorder(:created_on, :id).to_a
+
+ result.each_with_index {|j,i| j.indice = i+1}
+ result.reject!(&:private_notes?) unless User.current.allowed_to?(:view_private_notes, project)
+ Journal.preload_journals_details_custom_fields(result)
+ result.select! {|journal| journal.notes? || journal.visible_details.any?}
+ result
+ end
+
# Returns the initial status of the issue
# Returns nil for a new issue
def status_was