Newer
Older
class AdminsController < ApplicationController
before_filter :authenticate_user!
def user_search
params[:user] ||= {}
params[:user].delete_if {|key, value| value.blank? }
@users = User.joins(person: :profile).where(["profiles.birthday > ?", Date.today - 13.years]) if params[:under13]
@users = (@users || User).where(params[:user]) if params[:user].present?
@users ||= []
end
def remove_spammer
user = User.find(params[:user_id])
user.close_account!
redirect_to root_url, notice:"this account will be deleted in a few moments"
end
def admin_inviter
inviter = InvitationCode.default_inviter_or(current_user)
email = params[:identifier]
user = User.find_by_email(email)
danielgrippi
a validé
unless user
EmailInviter.new(email, inviter).send!
flash[:notice] = "invitation sent to #{email}"
flash[:notice]= "error sending invite to #{email}"
danielgrippi
a validé
end
redirect_to user_search_path, :notice => flash[:notice]
end
def add_invites
InvitationCode.find_by_token(params[:invite_code_id]).add_invites!
redirect_to user_search_path
end
@created_users = User.where("username IS NOT NULL and created_at IS NOT NULL")
@created_users.find_each do |u|
week = u.created_at.beginning_of_week.strftime("%Y-%m-%d")
@created_users_by_week[week] << u.username
@selected_week = params[:week] || @created_users_by_week.keys.first
@counter = @created_users_by_week[@selected_week].count
@popular_tags = ActsAsTaggableOn::Tagging.joins(:tag).limit(50).count(:group => :tag, :order => 'count(taggings.id) DESC')
case params[:range]
when "week"
range = 1.week
@segment = t('admins.stats.week')
@segment = t('admins.stats.2weeks')
@segment = t('admins.stats.month')
@segment = t('admins.stats.daily')
[Post, Comment, AspectMembership, User].each do |model|
@posts_per_day = Post.count(:group => "DATE(created_at)", :conditions => ["created_at >= ?", Date.today - 21.days], :order => "DATE(created_at) ASC")
@most_posts_within = @posts_per_day.values.max.to_f
#@posts[:new_public] = Post.where(:type => ['StatusMessage','ActivityStreams::Photo'],
# :public => true).order('created_at DESC').limit(15).all
@correlations_hash = Statistics.new.generate_correlations
def percent_change(today, yesterday)
sprintf( "%0.02f", ((today-yesterday) / yesterday.to_f)*100).to_f
end
def create_hash(model, opts={})
opts[:range] ||= 1.day
plural = model.to_s.underscore.pluralize
eval(<<DATA
@#{plural} = {
:day_before => #{model}.where(:created_at => ((Time.now.midnight - #{opts[:range]*2})..Time.now.midnight - #{opts[:range]})).count,
:yesterday => #{model}.where(:created_at => ((Time.now.midnight - #{opts[:range]})..Time.now.midnight)).count
@#{plural}[:change] = percent_change(@#{plural}[:yesterday], @#{plural}[:day_before])