diff options
author | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-01-14 09:34:24 +0000 |
---|---|---|
committer | Jean-Philippe Lang <jp_lang@yahoo.fr> | 2017-01-14 09:34:24 +0000 |
commit | 45879a41b25ac3516e8079c38ab745098017369d (patch) | |
tree | 23ac2da7710d8e8bd97e85b65f96feaf0b85d8ea | |
parent | d2fcfc55742fd7d6241dc6d9c6dc8a2aebd876b0 (diff) | |
download | redmine-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.rb | 19 | ||||
-rw-r--r-- | app/models/issue.rb | 15 |
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 |