From: Tom Hughes 
Date: Tue, 3 May 2022 18:09:31 +0000 (+0100)
Subject: Merge remote-tracking branch 'upstream/pull/3539'
X-Git-Tag: live~2641
X-Git-Url: https://git.openstreetmap.org/rails.git/commitdiff_plain/fa77b55bd5efdb38ddfaad0911d871df5a226dd6?hp=fc2af47f17c5f21e269c5cfea76b22701a3ab21a
Merge remote-tracking branch 'upstream/pull/3539'
---
diff --git a/app/models/report.rb b/app/models/report.rb
index 77a967641..1475197fe 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -36,4 +36,8 @@ class Report < ApplicationRecord
     else %w[other]
     end
   end
+
+  def details
+    RichText.new("markdown", self[:details])
+  end
 end
diff --git a/app/views/issues/_reports.html.erb b/app/views/issues/_reports.html.erb
index b1b690f8c..23b6d556e 100644
--- a/app/views/issues/_reports.html.erb
+++ b/app/views/issues/_reports.html.erb
@@ -9,7 +9,7 @@
                                    :user => link_to(report.user.display_name, user_path(report.user)),
                                    :updated_at => l(report.updated_at.to_datetime, :format => :friendly) %>
       
-      <%= report.details %>
+      <%= report.details.to_html %>
     
   
   
diff --git a/app/views/reports/new.html.erb b/app/views/reports/new.html.erb
index 6c12c14e3..8106ccfc9 100644
--- a/app/views/reports/new.html.erb
+++ b/app/views/reports/new.html.erb
@@ -18,6 +18,6 @@
   <% end %>
 
   <%= f.collection_radio_buttons :category, report_categories(@report.issue.reportable), :id, :label %>
-  <%= f.text_area :details, :rows => 5, :label_as_placeholder => true %>
+  <%= f.richtext_field :details, :rows => 18, :label_as_placeholder => true, :format => "markdown" %>
   <%= f.primary %>
 <% end %>
diff --git a/test/models/report_test.rb b/test/models/report_test.rb
index d172ff7db..64ccf501d 100644
--- a/test/models/report_test.rb
+++ b/test/models/report_test.rb
@@ -32,4 +32,9 @@ class ReportTest < ActiveSupport::TestCase
     report.category = ""
     assert_not report.valid?
   end
+
+  def test_details
+    report = create(:report)
+    assert_instance_of(RichText::Markdown, report.details)
+  end
 end
diff --git a/test/system/issues_test.rb b/test/system/issues_test.rb
index 08f2c92df..2a9862ed9 100644
--- a/test/system/issues_test.rb
+++ b/test/system/issues_test.rb
@@ -30,6 +30,17 @@ class IssuesTest < ApplicationSystemTestCase
     assert_content issues.first.reported_user.display_name
   end
 
+  def test_view_issue_with_report
+    sign_in_as(create(:moderator_user))
+    issue = create(:issue, :assigned_role => "moderator")
+    issue.reports << create(:report, :details => "test report text **with kramdown**")
+
+    visit issue_path(issue)
+    assert_content I18n.t("issues.show.reports", :count => 1)
+    assert_content "test report text with kramdown"
+    assert_selector "strong", :text => "with kramdown"
+  end
+
   def test_view_issues_with_no_reported_user
     sign_in_as(create(:moderator_user))
     anonymous_note = create(:note_with_comments)