]> git.openstreetmap.org Git - rails.git/blobdiff - app/controllers/users_controller.rb
Fix error if no users are selected for a bulk update
[rails.git] / app / controllers / users_controller.rb
index 7f6619eab664f4b08dd9836fbee1b165b73dc125..c6e2298ab330685bbe37c20174a674bd929f0442 100644 (file)
@@ -21,9 +21,27 @@ class UsersController < ApplicationController
   def show
     @user = User.find_by(:display_name => params[:display_name])
 
-    if @user &&
-       (@user.visible? || current_user&.administrator?)
+    if @user && (@user.visible? || current_user&.administrator?)
       @title = @user.display_name
+
+      @heatmap_data = Rails.cache.fetch("heatmap_data_user_#{@user.id}", :expires_in => 1.day) do
+        one_year_ago = 1.year.ago.beginning_of_day
+        today = Time.zone.now.end_of_day
+
+        Changeset
+          .where(:user_id => @user.id)
+          .where(:created_at => one_year_ago..today)
+          .where(:num_changes => 1..)
+          .group("date_trunc('day', created_at)")
+          .select("date_trunc('day', created_at) AS date, SUM(num_changes) AS total_changes")
+          .order("date")
+          .map do |changeset|
+            {
+              :date => changeset.date.to_date.to_s,
+              :total_changes => changeset.total_changes.to_i
+            }
+          end
+      end
     else
       render_unknown_user params[:display_name]
     end