Commit 42cf21bf by Xuan Trung Le

fix bugs

parent 255c61c4
...@@ -11,10 +11,9 @@ ...@@ -11,10 +11,9 @@
// about supported directives. // about supported directives.
// //
//= require rails-ujs //= require rails-ujs
//= require_tree . //= require jquery-3.2.1.min
//= require jquery-3.2.1.min.js //= require bootstrap.min
//= require bootstrap.min.js //= require bootstrap-datetimepicker.min
//= require bootstrap-datetimepicker.min.js
$(document).ready(function(){ $(document).ready(function(){
// this function to hide message after 5s // this function to hide message after 5s
......
require 'rsolr' require 'rsolr'
require "csv" require "csv"
require 'uri'
class Admins::AppliesController < ApplicationController class Admins::AppliesController < ApplicationController
def index def index
@cities = City.pluck(:id, :name)
if params[:commit] if params[:commit]
# get condition here # get condition here
condition = get_condition condition = get_condition
...@@ -13,18 +13,16 @@ class Admins::AppliesController < ApplicationController ...@@ -13,18 +13,16 @@ class Admins::AppliesController < ApplicationController
@applications = ApplyJob.where(job_id: job_id).includes(:job, :user) @applications = ApplyJob.where(job_id: job_id).includes(:job, :user)
if params[:commit].eql? 'Down csv' if params[:commit].eql? 'Down csv'
flash[:notice] = 'Down csv'
down_csv(@applications) down_csv(@applications)
return
end end
else else
# get applications # get applications
@applications = ApplyJob.includes(:job, :user) @applications = ApplyJob.includes(:job, :user)
end end
puts params[:commit]
end end
def down_csv(applications) def down_csv(applications)
# handle data # handle data
data_csv = [] data_csv = []
applications.each do |application| applications.each do |application|
...@@ -36,19 +34,8 @@ class Admins::AppliesController < ApplicationController ...@@ -36,19 +34,8 @@ class Admins::AppliesController < ApplicationController
candidate[:applied_at] = application.created_at candidate[:applied_at] = application.created_at
data_csv << candidate data_csv << candidate
end end
column_names = data_csv.first.keys
# create new csv file send_data ApplyJob.to_csv(column_names, data_csv), filename: "applications-#{Date.today}.csv"
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 end
private private
...@@ -61,7 +48,7 @@ class Admins::AppliesController < ApplicationController ...@@ -61,7 +48,7 @@ class Admins::AppliesController < ApplicationController
# Direct connection # Direct connection
connect connect
# use get method to query # use get method to query
response = @solr.get 'select', :params => condition response = @solr.get 'select', params: condition
response response
end end
......
class ApplicationController < ActionController::Base class ApplicationController < ActionController::Base
protect_from_forgery with: :exception protect_from_forgery with: :exception
helper_method :clear_session_candidate, :admin_can_not_do_this
def clear_session_candidate def clear_session_candidate
session[:candidate] = {} session[:candidate] = {}
......
...@@ -4,4 +4,13 @@ class ApplyJob < ApplicationRecord ...@@ -4,4 +4,13 @@ class ApplyJob < ApplicationRecord
validates :cv, presence: true validates :cv, presence: true
validates :email, presence: true validates :email, presence: true
validates :name, presence: true validates :name, presence: true
def self.to_csv(column_names, applications)
CSV.generate do |csv|
csv << column_names
applications.each do |application|
csv << application.values
end
end
end
end end
<% @applications.each do |application| %> <% applications.each do |application| %>
<div class="job-intro well mr0 mrBot20"> <div class="job-intro well mr0 mrBot20">
<h4 class="mr0"><%= link_to application.job.name, job_path(application.job) %></h4> <h4 class="mr0"><%= link_to application.job.name, job_path(application.job) %></h4>
<p><%= "Candidate Name: #{application.user.name}" %></p> <p><%= "Candidate Name: #{application.user.name}" %></p>
......
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