diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 031273d445..4f2debeb78 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -1251,7 +1251,11 @@ module ApplicationHelper end when 'attachment' attachments = options[:attachments] || [] - attachments += obj.attachments if obj.respond_to?(:attachments) + if obj.is_a?(Journal) + attachments += obj.journalized.attachments if obj.journalized.respond_to?(:attachments) + else + attachments += obj.attachments if obj.respond_to?(:attachments) + end if attachments && attachment = Attachment.latest_attach(attachments, name) link = link_to_attachment(attachment, :only_path => only_path, :class => 'attachment') end diff --git a/test/functional/issues_controller_test.rb b/test/functional/issues_controller_test.rb index 9b1842e0d5..60d1ff6382 100644 --- a/test/functional/issues_controller_test.rb +++ b/test/functional/issues_controller_test.rb @@ -8386,6 +8386,21 @@ class IssuesControllerTest < Redmine::ControllerTest end end + def test_show_should_be_able_to_link_to_another_journal_attachment_of_the_same_issue + @request.session[:user_id] = 1 + issue = Issue.find(2) + attachment = issue.journals.first.attachments.first + + issue.init_journal(User.first, "attachment:#{attachment.filename}") + issue.save! + issue.reload + + get :show, params: { id: issue.id } + assert_select "div#history div#journal-#{issue.journals.last.id}-notes" do + assert_select "a[href='/attachments/#{attachment.id}']", :text => 'source.rb' + end + end + def test_index_should_retrieve_default_query query = IssueQuery.find(4) IssueQuery.stubs(:default).returns query