]> 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 a0be87bdc11fa6417601b6e278030fc673825515..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
@@ -101,7 +119,7 @@ class UsersController < ApplicationController
     current_user.data_public = true
     current_user.save
     flash[:notice] = t ".flash success"
-    redirect_to edit_account_path
+    redirect_to account_path
   end
 
   ##
@@ -135,7 +153,7 @@ class UsersController < ApplicationController
 
       session[:user_errors] = current_user.errors.as_json
 
-      redirect_to edit_account_path
+      redirect_to account_path
     else
       user = User.find_by(:auth_provider => provider, :auth_uid => uid)
 
@@ -222,8 +240,7 @@ class UsersController < ApplicationController
   def user_params
     params.require(:user).permit(:email, :display_name,
                                  :auth_provider, :auth_uid,
-                                 :pass_crypt, :pass_crypt_confirmation,
-                                 :consider_pd)
+                                 :pass_crypt, :pass_crypt_confirmation)
   end
 
   ##