Method: IshManager::LeadsController#index
- Defined in:
- app/controllers/ish_manager/leads_controller.rb
permalink #index ⇒ Object
[View source]
84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 |
# File 'app/controllers/ish_manager/leads_controller.rb', line 84 def index :index, ::Lead @leads = ::Lead.kept.includes( :company ) if params[:q].present? @leads = @leads.where(" email LIKE ? or name LIKE ? ", "%#{params[:q]}%", "%#{params[:q]}%" ) end if params[:q_tag_ids].present? carry = nil params[:q_tag_ids].each do |term_id| lts = LeadTag.where({ term_id: term_id }).map(&:lead_id) if carry carry = carry & lts else carry = lts end end @leads = Lead.where({ :id.in => carry }) end @leads = @leads.page( params[:leads_page ] ).per( current_profile.per_page ) # @email_contexts = {} # # lead_emails = @leads.map( &:email ).compact.reject(&:empty?) # lead_ids = @leads.map( &:id ) # map = %Q{ # function() { # emit(''+this.lead_id, {count: 1}) # } # } # reduce = %Q{ # function(key, values) { # var result = {count: 0}; # values.forEach(function(value) { # result.count += value.count; # }); # return result; # } # } # tmp_contexts = Ish::EmailContext.all.where( :lead_id.in => lead_ids # ).map_reduce( map, reduce # ).out( inline: 1 ## From: https://www.mongodb.com/docs/mongoid/current/reference/map-reduce/ # ).to_a # tmp_contexts.map { |x| @email_contexts[x[:_id]] = x[:value][:count].to_i } end |