/app/controllers/recherche_controller.rb
Ruby | 50 lines | 38 code | 5 blank | 7 comment | 23 complexity | f74b7c816e4d3dbbafa898247b62d384 MD5 | raw file
- # encoding: UTF-8
-
- class RechercheController < ApplicationController
- def aide_ponctuelle
- @matieres = Matiere.all
- @date_selected = params[:date]
- @name_selected = params[:name]
-
- @matieres.first ? code = @matieres.first.id : code = ""
- params[:matiere_id] ? @code_selected = params[:matiere_id] : @code_selected = code
- @matiere_selected = Matiere.find(@code_selected)
- @matiere_selected ? matiere_id = @matiere_selected.id : matiere_id = 0
- type_event_id = TypeEvent.where(:state => "Disponibilite").first.id
- # With matiere only
- if (params[:name] && params[:date] && params[:name].empty? && params[:date].empty?)
- @results = Event.where(:type_event_id => type_event_id).joins(:users).where(users: {aide_ponctuelle: true}).distinct.joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- # With matiere + name + date
- elsif (params[:name] && params[:date] && !params[:name].empty? && !params[:date].empty?)
- date = params[:date].split(/-/)
- @results = Event.where(:type_event_id => type_event_id).where('starttime >= :start_time',start_time: Time.new(date[0],date[1],date[2]).to_formatted_s(:db)).joins(:users).where(users: {aide_ponctuelle: true}).distinct.where("firstname LIKE ? or lastname LIKE ? or (firstname || ' ' || lastname LIKE ?) or (lastname || ' ' || firstname LIKE ?)", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%").joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- # With matiere + name
- elsif (params[:name] && !params[:name].empty?)
- @results = Event.where(:type_event_id => type_event_id).joins(:users).where(users: {aide_ponctuelle: true}).distinct.where("firstname LIKE ? or lastname LIKE ? or (firstname || ' ' || lastname LIKE ?) or (lastname || ' ' || firstname LIKE ?)", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%").joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- # With matiere + date
- elsif (params[:date])
- date = params[:date].split(/-/)
- @results = Event.where('type_event_id= :type_event_id', type_event_id: type_event_id).where('starttime >= :start_time',
- start_time: Time.new(date[0],date[1],date[2]).to_formatted_s(:db)).joins(:users).where(users: {aide_ponctuelle: true}).distinct.joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- else
- @results = Event.where(:type_event_id => type_event_id).joins(:users).where(users: {aide_ponctuelle: true}).distinct.joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- end
- end
-
- def jumelage
- @matieres = Matiere.all
- params[:matiere_id] ? @code_selected = params[:matiere_id] : @code_selected = @matieres.first.id
- @name_selected = params[:name]
- matiere_id = Matiere.find(@code_selected).id
-
- # With matiere + name
- if (params[:name] && !params[:name].empty?)
- @results = User.where(:jumelage => true).where("firstname LIKE ? or lastname LIKE ? or (firstname || ' ' || lastname LIKE ?) or (lastname || ' ' || firstname LIKE ?)", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%", "%#{params[:name]}%").joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- # With matiere
- else
- @results = User.where(:jumelage => true).joins("join matieres_users on users.id = matieres_users.user_id").where(["matieres_users.matiere_id = ?", matiere_id])
- end
-
- @has_liste_attente = ListeAttente.where(:user_id => current_user.id, :matiere_id => matiere_id).count != 0
- end
- end