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
current_user.data_public = true
current_user.save
flash[:notice] = t ".flash success"
- redirect_to edit_account_path
+ redirect_to account_path
end
##
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)