]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/issues_controller.rb
Merge remote-tracking branch 'upstream/pull/5064'
[rails.git] / app / controllers / issues_controller.rb
index fe900d627e6e4cc4744e71a2a845798fb05c314e..298f7c37450a6376cd43e95013cebba99442c2a5 100644 (file)
@@ -18,8 +18,8 @@ class IssuesController < ApplicationController
     @title = t ".title"
 
     @issue_types = []
-    @issue_types.push("Note", "User") if current_user.moderator?
-    @issue_types.push("DiaryEntry", "DiaryComment", "User") if current_user.administrator?
+    @issue_types |= %w[Note User] if current_user.moderator?
+    @issue_types |= %w[DiaryEntry DiaryComment User] if current_user.administrator?
 
     @users = User.joins(:roles).where(:user_roles => { :role => current_user.roles.map(&:role) }).distinct
     @issues = Issue.visible_to(current_user)
@@ -44,11 +44,20 @@ class IssuesController < ApplicationController
     end
 
     @issues, @newer_issues_id, @older_issues_id = get_page_items(@issues, :limit => @params[:limit])
+
+    @unique_reporters = @issues.each_with_object({}) do |issue, reporters|
+      user_ids = issue.reports.order(:created_at => :desc).pluck(:user_id).uniq
+      reporters[issue.id] = {
+        :count => user_ids.size,
+        :users => User.in_order_of(:id, user_ids.first(3))
+      }
+    end
+
     render :partial => "page" if turbo_frame_request_id == "pagination"
   end
 
   def show
-    @title = t ".title", :status => @issue.status.humanize, :issue_id => @issue.id
+    @title = t ".title.#{@issue.status}", :issue_id => @issue.id
     @read_reports = @issue.read_reports
     @unread_reports = @issue.unread_reports
     @comments = @issue.comments