Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class UsersController < ApplicationController
- # Be sure to include AuthenticationSystem in Application Controller instead
- layout "o2club", :except => ["getsocio"]
- before_filter :login_required, :except => ["new","create","forgot","reset","show","index","tests","trainer","calendar"]
- # render new.rhtml
- def new
- @user = User.new
- end
- def index
- #@users = User.paginate :page => params[:page], :per_page => 14, :order => "last_name ASC"
- end
- def claves
- if params[:var].nil? or params[:var].blank?
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_asc"
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_desc"
- @order = "apellido_desc"
- order = "last_name DESC"
- elsif params[:var] == "nombre_desc"
- @order = "nombre_desc"
- order = "name DESC"
- elsif params[:var] == "nombre_asc"
- @order = "nombre_asc"
- order = "name ASC"
- elsif params[:var] == "codigo_desc"
- @order = "codigo_desc"
- order = "system_id DESC"
- elsif params[:var] == "codigo_asc"
- @order = "codigo_asc"
- order = "system_id ASC"
- end
- unless params[:q].nil? or params[:q].blank?
- cond = ["system_id = ?", params[:q]]
- else
- cond = ""
- end
- @users = User.find(:all, :conditions => cond, :order => order).paginate(:per_page => 25, :page => params[:page])
- end
- def show
- @user = User.find_by_system_id(params[:id])
- @events = @user.favorites
- @last_call_logs = Calllog.find(:all,:limit =>5, :conditions => "user_id = #{@user.id}" , :order => 'created_at DESC' )
- end
- def trainer
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:id])
- @item = User.find_by_system_id(@user.trainer_id)
- unless @item.nil?
- @consultas_recibidas = Consultation.all(:conditions => ['(to_id = ? AND from_id = ?) OR (from_id = ? AND to_id = ?)',
- current_user.system_id, @item.system_id, @item.system_id, @item.system_id],
- :order => "created_at DESC").paginate :page => params[:page]
- end
- end
- def geriatra
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:id])
- @geriatra = Userprogramsupervisor.first(:conditions => ["user_id = #{current_user.system_id}
- AND program_id = 1"])
- unless @geriatra.nil?
- @item = User.find_by_system_id(@geriatra.supervisor_id)
- end
- unless @item.nil?
- @consultas_recibidas = Consultation.all(:conditions => ['(from_id = ? AND to_id = ?)
- AND answer IS NULL',
- @item.system_id,current_user.system_id],
- :order => "created_at DESC").paginate :page => params[:page],
- :per_page => 8
- end
- end
- def doctor_uc
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:id])
- @doctor = Userprogramsupervisor.first(:conditions => ["user_id = #{current_user.system_id}
- AND program_id = 2"])
- unless @doctor.nil?
- @item = User.find_by_system_id(@doctor.supervisor_id)
- end
- unless @item.nil?
- @consultas_recibidas = Consultation.all(:conditions => ['(from_id = ? AND to_id = ?)
- AND answer IS NULL',
- @item.system_id,current_user.system_id],
- :order => "created_at DESC").paginate :page => params[:page],
- :per_page => 8
- end
- end
- def consultas_enviadas
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:user_id])
- @item = User.find_by_system_id(@user.trainer_id)
- unless @item.nil?
- @consultas_enviadas = Consultation.all(:conditions => ["
- (from_id = ? AND to_id = ? ) AND
- answer IS NULL",
- current_user.system_id, @item.system_id],
- :order => "created_at DESC")
- end
- end
- #esto se hizo temporalmente, debe ser solo una funcion
- def consultas_enviadas_al_doctor
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:user_id])
- @item = @user.user_doctor
- unless @item.nil?
- @consultas_enviadas = Consultation.all(:conditions => ["
- (from_id = ? AND to_id = ?) AND
- answer IS NULL",
- current_user.system_id, @item.system_id],
- :order => "created_at DESC")
- end
- end
- #esto se hizo temporalmente, debe ser solo una funcion
- def consultas_enviadas_al_geriatra
- @consultation = Consultation.new
- @user = User.find_by_system_id(params[:user_id])
- @item = @user.user_geriatra
- unless @item.nil?
- @consultas_enviadas = Consultation.all(:conditions => ["
- (from_id = ? AND to_id = ?) AND
- answer IS NULL",
- current_user.system_id, @item.system_id],
- :order => "created_at DESC")
- end
- end
- def getsocio
- @survey = TrainerUserSurvey.find(:first, :conditions => ["survey_id = 1 and system_id = ?",params[:system_id]])
- if @survey.nil?
- @survey = {:user_exist => !User.find_by_system_id(params[:system_id]).nil?}
- else
- @survey = {:survey_status => @survey.status}
- end
- render :text => (@survey).to_json
- end
- ##Metodo Alumnos
- def alumnos
- @programs = Program.all
- # puts "PROGRAMAS #{@programs.inspect}"
- # puts "LOOOOOOOO #{params.inspect}"
- if params[:var].nil? or params[:var].blank?
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_asc"
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_desc"
- @order = "apellido_desc"
- order = "last_name DESC"
- elsif params[:var] == "nombre_desc"
- @order = "nombre_desc"
- order = "name DESC"
- elsif params[:var] == "nombre_asc"
- @order = "nombre_asc"
- order = "name ASC"
- elsif params[:var] == "codigo_desc"
- @order = "codigo_desc"
- order = "system_id DESC"
- elsif params[:var] == "codigo_asc"
- @order = "codigo_asc"
- order = "system_id ASC"
- elsif params[:var] == "sede_asc"
- @order = "sede_asc"
- order = "sede ASC"
- elsif params[:var] == "sede_desc"
- @order = "sede_desc"
- order = "sede DESC"
- end
- @venues_a = Venue.find(:all, :order => "name ASC")
- cond_tmp = " AND current_date() <= users.vcto_at" #+ cond_program
- #Alumnos en rol rack
- if current_user.has_role?("rack")
- unless params[:q].nil? or params[:q].blank?
- cond = ["name like :q or last_name like :q #{cond_tmp}", {:q => "%#{params[:q]}%"}]
- else
- cond = ["current_date() <= users.vcto_at"]
- end
- @users = User.find(:all, :conditions => cond , :order => order)
- unless params[:q].nil? or params[:q].blank?
- cond = ["trainer_user_surveys.survey_id = 11
- name like :q or last_name like :q and
- datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",{:q => "%#{params[:q]}%"}]
- else
- cond = ["trainer_user_surveys.survey_id = 1 and
- datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
- end
- @users = User.find(:all,
- :joins => "INNER JOIN trainer_user_surveys on
- trainer_user_surveys.system_id = users.system_id ",
- :conditions => cond, :order => order)
- unless params[:venue_id].nil? or params[:venue_id].blank?
- venue = Venue.find_by_id(params[:venue_id])
- if venue.id == 1
- @venue = "O2K"
- elsif venue.id == 2
- @venue = "O2T"
- elsif venue.id == 3
- @venue = "O2G"
- end
- else
- @venue = nil
- end
- @users_count = @users.length
- @users = @users.paginate(:per_page => 25, :page => params[:page])
- else #end rol rack
- if current_user.has_role?("trainer") or current_user.has_role?("supervisor")
- unless params[:q].nil? or params[:q].blank?
- if params[:activos] == "0"
- cond = " trainer_id = #{current_user.system_id} AND sede = '#{current_user.sede}' AND (name like '%#{params[:q]}%' or last_name like '%#{params[:q]}%') #{cond_tmp}"
- #puts cond.inspect
- #cond = ["trainer_id = #{current_user.system_id}"]
- @users = User.find(:all, :conditions => cond, :order => order)
- else
- cond = [" users.trainer_id = #{current_user.system_id} AND users.sede = '#{current_user.sede}' AND
- (users.name like '%#{params[:q]}%' or users.last_name like '%#{params[:q]}%')"]
- @users = User.find(:all,
- :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
- AND userprograms.program_id = #{params[:activos].to_i}
- AND #{cond} #{cond_tmp} AND users.trainer_id = #{current_user.system_id}"],
- :order => order)
- @selected = params[:programa_find].to_i
- @users.paginate(:per_page => 25, :page => params[:page])
- end
- else
- cond = ["trainer_id = #{current_user.system_id} and sede = '#{current_user.sede}' #{cond_tmp}"]
- @users = User.find(:all, :conditions => cond , :order => order)
- end
- if params.has_key?("programs")
- if params[:programs].has_key?("activos");
- unless params[:programs][:activos] == "0"
- @users = User.find(:all,
- :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
- AND userprograms.program_id = #{params[:programs][:activos].to_i}
- AND #{cond} AND users.trainer_id = #{current_user.system_id}"],
- :order => order)
- @users.paginate(:per_page => 25, :page => params[:page])
- @selected = params[:programs][:activos].to_i
- else
- @users = User.find(:all, :conditions => cond , :order => order)
- end
- end
- end
- if params.has_key?("programa")
- @users = User.find(:all,
- :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
- AND userprograms.program_id = #{params[:programa].to_i}
- AND #{cond} AND users.trainer_id = #{current_user.system_id}"],
- :order => order)
- @users.paginate(:per_page => 25, :page => params[:page])
- @selected = params[:programa].to_i
- end
- else
- unless params[:q].nil? or params[:q].blank?
- cond = ["trainer_user_surveys.survey_id = 11 sede = '#{current_user.sede}' and
- (name like :q or last_name like :q) and
- datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",{:q => "%#{params[:q]}%"}]
- else
- cond = ["trainer_user_surveys.survey_id = 1 sede = '#{current_user.sede}' and
- datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
- end
- @users = User.find(:all,
- :joins => "INNER JOIN trainer_user_surveys on
- trainer_user_surveys.system_id = users.system_id",
- :conditions => cond, :order => order)
- end #end if trainer y supervisor
- unless params[:venue_id].nil? or params[:venue_id].blank?
- venue = Venue.find_by_id(params[:venue_id])
- if venue.id == 1
- @venue = "O2K"
- elsif venue.id == 2
- @venue = "O2T"
- elsif venue.id == 3
- @venue = "O2G"
- end
- else
- @venue = nil
- end
- @users_count = @users.length
- @users = @users.paginate(:per_page => 25, :page => params[:page])
- end #end current_user.has_role?("rack")
- end #en def alumnos
- #exalumnos
- def exalumnos
- #puts "LOOOOOOOO #{params.inspect}"
- @programs = Program.all
- if params[:var].nil? or params[:var].blank?
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_asc"
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_desc"
- @order = "apellido_desc"
- order = "last_name DESC"
- elsif params[:var] == "nombre_desc"
- @order = "nombre_desc"
- order = "name DESC"
- elsif params[:var] == "nombre_asc"
- @order = "nombre_asc"
- order = "name ASC"
- elsif params[:var] == "codigo_desc"
- @order = "codigo_desc"
- order = "system_id DESC"
- elsif params[:var] == "codigo_asc"
- @order = "codigo_asc"
- order = "system_id ASC"
- end
- @venues_a = Venue.find(:all, :order => "name ASC")
- cond_tmp = " AND (current_date() > users.vcto_at or users.vcto_at IS NULL)"
- #Muestra el mismo filtro para rack y trainer
- if current_user.has_role?("rack") or current_user.has_role?("trainer") or current_user.has_role?("supervisor")
- unless params[:q].nil? or params[:q].blank?
- cond = ["users.trainer_id = #{current_user.system_id}
- AND (name like :q or last_name like :q) #{cond_tmp}", {:q => "%#{params[:q]}%"}]
- else
- cond = ["users.trainer_id = #{current_user.system_id} #{cond_tmp}"]
- end
- @users = User.find(:all, :conditions => cond, :order => order)
- if params.has_key?("programs")
- unless params[:programs][:inactivos] == "0"
- @users = User.find(:all,
- :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
- AND userprograms.program_id = #{params[:programs][:inactivos].to_i}
- AND users.trainer_id = #{current_user.system_id}
- AND (current_date() > users.vcto_at or users.vcto_at IS NULL)
- "],
- :order => order)
- @selected = params[:programs][:inactivos].to_i
- else
- @users = User.find(:all,
- :joins => "INNER JOIN trainer_user_surveys
- ON trainer_user_surveys.system_id = users.system_id #{cond_tmp}",
- :conditions => cond, :order => order)
- end
- else
- unless params[:q].nil? or params[:q].blank?
- cond = ["trainer_user_surveys.survey_id = 1
- AND (name like :q or last_name like :q)
- AND datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}",
- {:q => "%#{params[:q]}%"}]
- else
- cond = ["trainer_user_surveys.survey_id = 1
- AND datediff(now(),trainer_user_surveys.created_at) > 30 #{cond_tmp}"]
- end
- @users = User.find(:all,
- :joins => "INNER JOIN trainer_user_surveys
- ON trainer_user_surveys.system_id = users.system_id #{cond_tmp}",
- :conditions => cond, :order => order)
- end
- if params.has_key?("programa")
- @users = User.find(:all,
- :joins=>["INNER JOIN userprograms where users.system_id = userprograms.user_id
- AND userprograms.program_id = #{params[:programa].to_i}
- AND users.trainer_id = #{current_user.system_id}
- AND (current_date() > users.vcto_at or users.vcto_at IS NULL)
- "],
- :order => order)
- @selected = params[:programa].to_i
- end
- end
- unless params[:venue_id].nil? or params[:venue_id].blank?
- venue = Venue.find_by_id(params[:venue_id])
- if venue.id == 1
- @venue = "O2K"
- elsif venue.id == 2
- @venue = "O2T"
- elsif venue.id == 3
- @venue = "O2G"
- end
- else
- @venue = nil
- end
- # paginación de alumnos
- @users_count = @users.length
- @users = @users.paginate(:per_page => 25, :page => params[:page])
- end
- def alumnosfinalizadas
- @order = "last_name ASC" unless params.has_key?(:defined)
- unless current_user.has_role?("rack")
- @users = User.find(:all, :conditions => ["trainer_id = ?", current_user.system_id], :order => @order)
- else
- @users = User.find(:all, :joins => "inner join trainer_user_surveys on trainer_user_surveys.system_id = users.system_id", :conditions => ["trainer_user_surveys.survey_id = 2 and status = 'finalizada'"], :order => "users.last_name ASC")
- end
- end
- def entrenadores
- if !params.has_key?(:var)
- @order = "last_name ASC" #ordenar por nombre
- else
- @order = params[:var]
- end
- if current_user.has_role?("administrator-o2")
- @users = User.find(:all, :joins => "INNER JOIN permissions ON permissions.user_id = users.id
- INNER JOIN roles On roles.id = permissions.role_id",
- :conditions => ["roles.rolename = 'trainer'"],:order => "users.#{sorter(@order)}")
- else
- @users = User.find(:all, :joins => "INNER JOIN permissions ON permissions.user_id = users.id
- INNER JOIN roles ON roles.id = permissions.role_id",
- :conditions => ["users.sede = ? AND
- roles.rolename = 'trainer'", current_user.sede],
- :order => "users.#{sorter(@order)}")
- end
- @users = @users.paginate(:per_page => 10, :page => params[:page])
- end
- def entrenador_encuestas
- if params[:var].nil? or params[:var].blank?
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_asc"
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_desc"
- @order = "apellido_desc"
- order = "last_name DESC"
- elsif params[:var] == "nombre_desc"
- @order = "nombre_desc"
- order = "name DESC"
- elsif params[:var] == "nombre_asc"
- @order = "nombre_asc"
- order = "name ASC"
- elsif params[:var] == "sede_desc"
- @order = "sede_desc"
- order = "sede DESC"
- elsif params[:var] == "sede_asc"
- @order = "sede_asc"
- order = "sede ASC"
- end
- @user = User.find_by_id(params[:id])
- conds = {:trainer_id => @user.system_id}
- conds[:sede] = params[:sede] if params.has_key?(:sede)
- al = User.all(:conditions => conds, :order => order)
- @alumnos = []
- al.each do |i|
- if params.has_key?(:status)
- if params[:status] == "no"
- @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and (status <> 'pendiente' or status <> 'finalizada') and survey_id = 1 ")
- @alumnos << i if @sut.blank?
- puts "SIN REALIZAR #{@alumnos.length.inspect}"
- end
- if params[:status] == "pending"
- @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and status = 'pendiente' and survey_id = 1 ")
- @alumnos << i unless @sut.blank?
- # @alumnos << i if !i.first_survey.nil? && i.first_survey.status == "pendiente"
- end
- if params[:status] == "finished"
- @sut = TrainerUserSurvey.find_by_sql("select * from trainer_user_surveys where trainer_id = #{@user.system_id} and system_id = #{i.system_id} and status = 'finalizada' and survey_id = 1 ")
- @alumnos << i unless @sut.blank?
- #@alumnos << i if !i.first_survey.nil? && i.first_survey.status == "finalizada"
- end
- else
- @alumnos << i
- end
- end
- @alumnos = @alumnos.paginate(:per_page => 10, :page => params[:page])
- end
- def entrenador_consultas
- if params[:var].nil? or params[:var].blank?
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_asc"
- @order = "apellido_asc"
- order = "last_name ASC"
- elsif params[:var] == "apellido_desc"
- @order = "apellido_desc"
- order = "last_name DESC"
- elsif params[:var] == "nombre_desc"
- @order = "nombre_desc"
- order = "name DESC"
- elsif params[:var] == "nombre_asc"
- @order = "nombre_asc"
- order = "name ASC"
- elsif params[:var] == "sede_desc"
- @order = "sede_desc"
- order = "sede DESC"
- elsif params[:var] == "sede_asc"
- @order = "sede_asc"
- order = "sede ASC"
- end
- @user = User.find_by_system_id(params[:id])
- @alumnos = User.all(:conditions => ["trainer_id = ?", params[:id]]).paginate :page => params[:page],
- :per_page => 10,
- :order => order
- # puts "ALUMNOS #{@alumnos.inspect}"
- end
- def logins
- @logins = Login.find(:all, :order => "time DESC")
- headers['Content-Type'] = "application/vnd.ms-excel"
- headers['Content-Disposition'] = 'attachment; filename="o2club_historia_ingreso.xls"'
- headers['Cache-Control'] = ''
- render :action => "logins", :layout=> false
- end
- def actives
- previous_date = Time.new
- #######
- now = Time.now
- if now.day > 15
- # Si el día actual es mayor a 14
- day = now.day - 14
- month = now.month
- year = now.year
- t = Time.utc(year,month,day)
- else
- # El día actual no es mayor a 14
- if now.month == 1
- day = (31-((now.day-14)*(-1)))
- month = 12
- year = (now.year-1)
- t = Time.utc(year,month,day)
- elsif now.month == 3
- day = (28-((now.day-14)*(-1)))
- month = now.month-1
- year = now.year
- t = Time.utc(year,month,day)
- elsif now.month == 4 || now.month == 6 || now.month == 9 || now.month == 11
- day = (30-((now.day-14)*(-1)))
- month = (now.month-1)
- year = now.year
- t = Time.utc(year,month,day)
- else
- day = (31-((now.day-14)*(-1)))
- month = (now.month-1)
- year = now.year
- t = Time.utc(year,month,day)
- end
- end
- #############
- puts "Hace dos semanas #{t.strftime('%Y-%m-%d')}"
- @users = User.find(:all, :conditions => ["last_login is not null and CAST(last_login AS DATE) > '#{t.strftime('%Y-%m-%d')}' "], :order => "last_login DESC")
- headers['Content-Type'] = "application/vnd.ms-excel"
- headers['Content-Disposition'] = 'attachment; filename="o2club_usuarios_activos.xls"'
- headers['Cache-Control'] = ''
- render :action => "actives", :layout=> false
- end
- def inactives
- previous_date = Time.new
- #######
- now = Time.now
- if now.day > 15
- # Si el día actual es mayor a 14
- day = now.day - 14
- month = now.month
- year = now.year
- t = Time.utc(year,month,day)
- else
- # El día actual no es mayor a 14
- if now.month == 1
- day = (31-((now.day-14)*(-1)))
- month = 12
- year = (now.year-1)
- t = Time.utc(year,month,day)
- elsif now.month == 3
- day = (28-((now.day-14)*(-1)))
- month = now.month-1
- year = now.year
- t = Time.utc(year,month,day)
- elsif now.month == 4 || now.month == 6 || now.month == 9 || now.month == 11
- day = (30-((now.day-14)*(-1)))
- month = (now.month-1)
- year = now.year
- t = Time.utc(year,month,day)
- else
- day = (31-((now.day-14)*(-1)))
- month = (now.month-1)
- year = now.year
- t = Time.utc(year,month,day)
- end
- end
- #############
- puts "Hace dos semanas #{t.strftime('%Y-%m-%d')}"
- @users = User.find(:all, :conditions => ["last_login is not null and CAST(last_login AS DATE) < '#{t.strftime('%Y-%m-%d')}' "], :order => "last_login DESC")
- headers['Content-Type'] = "application/vnd.ms-excel"
- headers['Content-Disposition'] = 'attachment; filename="o2club_usuarios_de_baja.xls"'
- headers['Cache-Control'] = ''
- render :action => "actives", :layout=> false
- end
- def questions
- @users = User.find(:all, :conditions => ["
- trainer_id = ? and
- sede = ?",
- @current_user.system_id,
- @current_user.sede
- ],
- :order => "name asc")
- @comments = Comment.paginate :page => params[:page],
- :order => "created_at DESC",
- :per_page => 20,
- :conditions => ["
- (commentable_id = ? or user_id = ?) and
- (status = 'pending' OR status = 'answered')",
- current_user.system_id,
- current_user.id
- ]
- #sandro modificando esto
- @ttal_q = Comment.all(:conditions=>["(user_id = ? AND status = 'pending')",current_user.id]).size
- end
- def sendquestions
- @users = User.find(:all, :conditions => ["trainer_id = ?",@current_user.system_id],:order => "name asc")
- @comments = Comment.paginate :page => params[:page], :order => "created_at DESC", :per_page => 20, :conditions => ["user_id = ? and (status = 'pending' or status = 'answered')", current_user.id]
- end
- def calendar
- @user = User.find_by_system_id(params[:id])
- unless params[:date].nil?
- @events = Article.find(:all, :conditions => ["activity_at IS NOT NULL and activity_at like :q",{:q => "%#{params[:date]}%"}], :order => "activity_at ASC")
- else
- unless params[:mes].nil?
- @date_start = Time.gm(Time.now.year,params[:mes].to_i,1,0,0,0)
- if params[:mes].to_i == 12
- m = 1
- y = Time.now.year + 1
- else
- m = params[:mes].to_i + 1
- y = Time.now.year
- end
- @date_end = Time.gm(y,m,1,0,0,0)
- @events = Article.find(:all, :conditions => ["activity_at < ? AND activity_at >= ?",@date_end,@date_start])
- else
- @date_start = Time.gm(Time.now.year,Time.now.mon.to_i,1,0,0,0)
- if Time.now.mon == 12
- m = 1
- y = Time.now.year + 1
- else
- m = Time.now.mon + 1
- y = Time.now.year
- end
- @date_end = Time.gm(y,m,1,0,0,0)
- @events = Article.find(:all, :conditions => ["activity_at < ? AND activity_at >= ?",@date_end,@date_start])
- end
- end
- @activities = Article.find(:all,:select => "activity_at", :conditions => ["activity_at IS NOT NULL"], :order => "activity_at ASC", :group => "activity_at")
- @act = Array.new
- for a in @activities
- @act << a.activity_at.to_formatted_s(:db)[0..9].to_date
- end
- if params[:mes].nil?
- @calendar_month = Time.now.mon
- else
- @calendar_month = params[:mes].to_i
- end
- end
- def tests
- @user = User.find_by_system_id(params[:id])
- @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date DESC")
- @bodies = Bodycomposition.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date DESC")
- end
- def test
- @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date ASC")
- @user = User.find_by_system_id(params[:id])
- @wk = Array.new()
- i = 0
- for wk in @aeros
- @wk[i] = Hash.new
- @wk[i][:test_date] = string_to_date(wk.test_date).nil? ? wk.test_date : string_to_date(wk.test_date).strftime("%d-%m-%Y")
- @wk[i][:vo2max] = wk.vo2max
- i += 1
- end
- respond_to do |format|
- format.html { redirect_to user_path(@user.system_id) }
- format.csv { render :layout => false }
- format.xml { render :layout => false }
- end
- end
- def tests_resultados
- @user = User.find_by_system_id(params[:id])
- @aeros = Aerobic.find(:all,:conditions => ["system_id = ?",params[:id]],:order => "test_date ASC")
- respond_to do |format|
- format.html { redirect_to user_path(@user.system_id) }
- format.csv { render :layout => false }
- #format.xml { render :layout => false }
- end
- end
- def create
- logout_keeping_session!
- @user = User.new(params[:user])
- success = @user && @user.save
- if success && @user.errors.empty?
- # Protects against session fixation attacks, causes request forgery
- # protection if visitor resubmits an earlier form using back
- # button. Uncomment if you understand the tradeoffs.
- # reset session
- self.current_user = @user # !! now logged in
- redirect_back_or_default('/')
- flash[:notice] = "Gracias por registrarte. Revisa tu correo para activar tu cuenta."
- else
- flash[:error] = "Ha ocurrido un error."
- @rooms = Room.find(:all,:order => "name ASC")
- render :action => 'new'
- end
- end
- def avatar
- @user = self.current_user
- @avatar = current_user.avatar if current_user.avatar
- case request.method
- when :put
- avatar_crop
- when :post
- avatar_upload
- end
- end
- def edit
- @user = current_user
- @rooms = Room.find(:all,:order => "name ASC")
- end
- def edit_notifications
- @user = current_user
- @ttal_q = Comment.all(:conditions=>["(user_id = ? OR commentable_id = ?) AND status = 'pending'",current_user.id, current_user.system_id]).size
- end
- def update
- unless params[:user][:notification].blank? or params[:user][:email].blank?
- current_user.notification = params[:user][:notification]
- current_user.email = params[:user][:email]
- unless params[:user][:birthday].blank?
- current_user.birthday = params[:user][:birthday]
- current_user.birthday_setted = true
- current_user.birthday_setbox_closed = true
- end
- current_user.save(false)
- flash[:notice] = 'Email configurado Exitosamente'
- end
- if params[:user][:email].blank?
- flash[:error] = 'No Puedes Eliminar tu email, si no quieres recibir notificaciones, desactiva la opción, luego actualiza tus datos.'
- redirect_to "/socio/#{current_user.system_id}/edit_notifications"
- elsif params[:user][:password] == params[:user][:password_confirmation]
- current_user.password = current_user.password_confirmation = params[:user][:password]
- current_user.save(false)
- flash[:notice] = 'Tus Datos han sido actualizados'
- redirect_to user_path(current_user.system_id)
- elsif current_user.update_attributes(params[:user])
- flash[:notice] = 'Tus datos han sido actualizados.'
- redirect_to user_path(current_user.system_id)
- else
- flash[:notice] = 'Ha ocurrido un problema y tus datos no fueron guardados'
- redirect_to edit_user_path(current_user.system_id)
- end
- end
- def close_setbox
- current_user.birthday_setbox_closed = true
- current_user.save(false)
- end
- def activate
- logout_keeping_session!
- user = User.find_by_activation_code(params[:activation_code]) unless params[:activation_code].blank?
- case
- when (!params[:activation_code].blank?) && user && !user.active?
- user.activate!
- flash[:notice] = "¡Listo! Ya eres parte de Ciudad UDP."
- self.current_user = user
- redirect_to '/'
- when params[:activation_code].blank?
- flash[:error] = "El código se perdió. Por favor, sigue el link que te enviamos en el correo."
- redirect_back_or_default('/')
- else
- flash[:error] = "No pudimos encontrar un usuario para ese código. Tal vez ya activaste tu cuenta. Intenta ingresar al sitio."
- redirect_back_or_default('/')
- end
- end
- def forgot
- if request.post?
- user = User.find(:first,:conditions => ["email = ?",params[:user][:email]])
- if user && !params[:user][:email].blank?
- user.create_reset_code
- flash[:notice] = "Revisa tu correo #{user.email} para cambiar tu contraseña."
- redirect_back_or_default('/')
- else
- flash[:error] = "El correo #{params[:user][:email]} no existe en nuestro sistema. Por favor, revísalo."
- end
- end
- end
- def reset
- @user = User.find_by_reset_code(params[:reset_code]) unless params[:reset_code].nil?
- if request.post?
- #if @user.update_attributes!(:password => params[:user][:password], :password_confirmation => params[:user][:password_confirmation])
- =begin
- #esto fue comentado para que al perder la contraseña no se
- #pida reingresar una nueva. Se envia directamente por email el System_id
- if @user.password = params[:user][:password] == params[:user][:password_confirmation]
- @user.password = params[:user][:password]
- if @user.save(false)
- self.current_user = @user
- @user.delete_reset_code
- flash[:notice] = "La contraseña de #{@user.email} ha sido cambiada con éxito."
- redirect_back_or_default('/')
- else
- render :action => :reset
- end
- =end
- if params[:commit] == "Enviar"
- if UserMailer.deliver_reset_notification_system_id(@user.email.to_s, @user.system_id.to_s)
- self.current_user = @user
- @user.delete_reset_code
- flash[:notice] = "La contraseña de #{@user.email} ha sido enviada Exitosamente."
- redirect_back_or_default('/')
- end
- else if params[:commit] == "Cancelar"
- flash[:notice] = "El envio de la contraseña de #{@user.email} ha sido cancelado."
- redirect_back_or_default('/')
- #render :action => :reset
- end
- end
- end
- end
- protected
- def avatar_crop
- @avatar.crop!(params[:x], params[:y], params[:size])
- flash[:notice] = 'Tu avatar fue cortado con éxito.'
- end
- def avatar_upload
- old = @avatar
- @avatar = Avatar.new(params[:avatar])
- @avatar.user_id = current_user.id
- if @avatar.save
- old.destroy unless old.nil?
- flash[:notice] = 'Que buena foto has escogido de avatar.'
- @avatar.crop_centered!
- else
- Rails.logger.add 100, @avatar.errors.to_xml
- @avatar = old
- flash[:error] = 'No pudimos guardar tu avatar. Por favor, inténtalo de nuevo.'
- end
- end
- def sorter(type)
- strs = type.split("_")
- return type if strs.length == 0 || !params.has_key?(:var)
- strs[0] = "last_name" if strs[0] == "nombre"
- return "#{strs[0]} #{strs[1]}"
- end
- end
Add Comment
Please, Sign In to add comment