Commit 0520750e by Xuan Trung Le

download csv file

parent 065a5630
...@@ -14,10 +14,10 @@ ...@@ -14,10 +14,10 @@
//= require_tree . //= require_tree .
//= require jquery-3.2.1.min.js //= require jquery-3.2.1.min.js
//= require bootstrap.min.js //= require bootstrap.min.js
//= require bootstrap.min.js
//= require bootstrap-datetimepicker.min.js //= require bootstrap-datetimepicker.min.js
$(document).ready(function(){ $(document).ready(function(){
// this function to hide message after 5s
$('.message').delay(5000).fadeOut('slow'); $('.message').delay(5000).fadeOut('slow');
<<<<<<< a6a6bfc98ed7e35fb9415714f7cf725ec5a0b69a <<<<<<< a6a6bfc98ed7e35fb9415714f7cf725ec5a0b69a
$(document).on('change', 'input[name=job_id]', function(event) { $(document).on('change', 'input[name=job_id]', function(event) {
...@@ -25,6 +25,7 @@ $(document).ready(function(){ ...@@ -25,6 +25,7 @@ $(document).ready(function(){
$('#apply').removeAttr('disabled') $('#apply').removeAttr('disabled')
======= =======
// this function to select date
$('.form_date').datetimepicker({ $('.form_date').datetimepicker({
language: 'en', language: 'en',
weekStart: 1, weekStart: 1,
...@@ -36,4 +37,10 @@ $(document).ready(function(){ ...@@ -36,4 +37,10 @@ $(document).ready(function(){
forceParse: 0 forceParse: 0
>>>>>>> fix bugs >>>>>>> fix bugs
}); });
// set min-height css for content
windowHeight = $(document).height();
menuHeight = $('.navbar').height();
footHeight = $('.footer').height();
$('.content').css("min-height", windowHeight - (menuHeight + footHeight))
}); });
@import "bootstrap-theme.min.css"; @import "bootstrap-theme.min.css";
@import "bootstrap.min.css"; @import "bootstrap.min.css";
@import "font-awesome.css"; @import "stylesheets/font-awesome.css";
@import "bootstrap-datetimepicker.min.css"; @import "bootstrap-datetimepicker.min.css";
......
require 'rsolr'
require "csv"
class Admins::AppliesController < ApplicationController class Admins::AppliesController < ApplicationController
def index def index
@cities = City.pluck(:id, :name) @cities = City.pluck(:id, :name)
@applications = ApplyJob.includes(:job, :user) if params[:commit]
# get condition here
condition = get_condition
# get applications from query
response = query(condition)
job_id = response["response"]["docs"].pluck("id")
@applications = ApplyJob.where(job_id: job_id).includes(:job, :user)
if params[:commit].eql? 'Down csv'
flash[:notice] = 'Down csv'
down_csv(@applications)
end
else
# get applications
@applications = ApplyJob.includes(:job, :user)
end
puts params[:commit]
end
def down_csv(applications)
# handle data
data_csv = []
applications.each do |application|
candidate = {}
candidate[:job] = application.job.name
candidate[:name] = application.name
candidate[:email] = application.email
candidate[:cv] = application.cv
candidate[:applied_at] = application.created_at
data_csv << candidate
end
# create new csv file
CSV.open("file.csv", "wb") do |csv|
# write header
csv << data_csv.first.keys
# write values
data_csv.each_with_index do |data, i|
csv << data.values
end
end
# down file.csv into local
send_file "#{Rails.root}/file.csv", type: 'application/csv'
end
private
def connect
url = 'http://localhost:8983/solr/my_solr_collection'
@solr = RSolr.connect url: url
end
def query(condition)
# Direct connection
connect
# use get method to query
response = @solr.get 'select', :params => condition
response
end
def get_condition
condition = {}
filter_query = []
date_from = '*'
date_to = 'NOW'
# get condition
condition[:q] = "email:[* TO *]"
filter_query << "email:\"#{params[:email]}\"" if params[:email]
filter_query << "city_name:\"#{params[:city]}\"" unless params[:city].blank?
filter_query << "industry:\"#{params[:industry]}\"" unless params[:industry].blank?
# generate condition from params[:date]
date_from = "#{params[:dtp_input1]}T00:00:00Z" unless params[:dtp_input1].blank?
date_to = "#{params[:dtp_input2]}T00:00:00Z" unless params[:dtp_input2].blank?
filter_query << "applied_at:[#{date_from} TO #{date_to}]"
condition[:fq] = filter_query
condition
end end
end end
...@@ -19,6 +19,12 @@ ...@@ -19,6 +19,12 @@
<i class="fa fa-sign-out" aria-hidden="true"></i>Logout <i class="fa fa-sign-out" aria-hidden="true"></i>Logout
<% end %> <% end %>
</li> </li>
<%- elsif current_admin -%>
<li>
<%= link_to destroy_admin_session_path, method: :delete do %>
<i class="fa fa-sign-out" aria-hidden="true"></i>Logout
<% end %>
</li>
<%- else -%> <%- else -%>
<li> <li>
<%= link_to new_user_session_path do %> <%= link_to new_user_session_path do %>
......
...@@ -11,7 +11,9 @@ ...@@ -11,7 +11,9 @@
<body> <body>
<%= render "layouts/menu" %> <%= render "layouts/menu" %>
<%= render "layouts/flash" %> <%= render "layouts/flash" %>
<%= yield %> <div class="content">
<%= yield %>
</div>
<%= render "layouts/footer" %> <%= render "layouts/footer" %>
</body> </body>
</html> </html>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment