fix mentors 'comments

parent b83e6aa6
Pipeline #1033 canceled with stages
in 0 seconds
class JobAppliedsController < ApplicationController
before_action :sign_in_validation, only: %i[new confirmation create show]
before_action :find_job_id, only: [:new]
before_action :validate_apply_job, only: [:new, :confirmation]
def new
session[:job_id] = params[:job_id]
if session[:job_applied].present?
user_name = session[:job_applied]['name']
user_email = session[:job_applied]['email']
end
session[:job_id] ||= session[:get_job_id]
user_name ||= current_user.name
user_email ||= current_user.email
apply_info = session[:apply_job] || {}
apply_info[:job_id] = params[:job_id]
apply_info['name'] ||= current_user.name
apply_info['email'] ||= current_user.email
session[:apply_job] = {:job_id => apply_info[:job_id]}
@job_applied = current_user.job_applieds.new(name: apply_info['name'],
email: apply_info['email'])
founded_application = JobApplied.exists?(user_id: current_user.id, job_id: session[:job_id])
return redirect_to job_detail_path(session[:job_id]), flash: {info: 'You applied for job'} if founded_application
@job_applied = current_user.job_applieds.new(name: user_name,
email: user_email)
cache_cv = session[:cv] || {}
@job_applied.cv_user.retrieve_from_cache!(cache_cv['url'].gsub('/uploads/tmp/','')) if session[:cv].present?
@job_applied.cv_user = current_user.cv_user if @job_applied.cv_user.blank?
end
def show
@users = current_user.job_applieds.order("job_applieds.updated_at DESC").page(params[:page]).per(Job::LIMIT_PAGE)
@applied_jobs = current_user.job_applieds.order("job_applieds.updated_at DESC").page(params[:page]).per(Job::LIMIT_PAGE)
end
def confirmation
session[:get_job_id] = session[:job_id]
@job_applied = current_user.job_applieds.new(apply_params)
session[:job_applied] = @job_applied
@job_applied.cv_user = current_user.cv_user if apply_params[:cv_user].blank?
@job_applied.job_id = session[:get_job_id] if @job_applied.job_id.blank?
@job_applied.job_id = session[:apply_job]['job_id'] if @job_applied.job_id.blank?
@job_applied.cv_user = current_user.cv_user if @job_applied.cv_user.blank?
if @job_applied.invalid?
flash.now[:danger] = @job_applied.errors.full_messages.join('<br>')
render :new
end
session[:apply_job] = @job_applied
session[:cv] = @job_applied.cv_user
end
def create
@job = Job.find_by(id: session[:get_job_id])
@job = Job.find_by(id: session[:apply_job]['job_id'])
@job_applied = current_user.job_applieds.new(apply_params)
@job_applied.job_id = session[:get_job_id] if @job_applied.job_id.blank?
@job_applied.job_id = session[:apply_job]['job_id'] if @job_applied.job_id.blank?
@job_applied.cv_user.retrieve_from_cache!(apply_params[:cv_user])
if @job_applied.save
JobAppliedMailer.apply_job(@job_applied, @job).deliver_later
JobAppliedMailer.sending_admin(@job_applied, @job, ENV['GMAIL_USERNAME']).deliver_later
else
flash[:danger] = @job_applied.errors.full_messages.join('<br>')
redirect_to apply_job_path(job_id: session[:apply_job]['job_id'])
end
session.delete(:job_applied)
session.delete(:apply_job)
end
private
......@@ -63,7 +64,11 @@ class JobAppliedsController < ApplicationController
params.require(:job_applied).permit(:name, :email, :cv_user)
end
def find_job_id
return redirect_to jobs_path unless Job.find_by(id: params[:job_id])
def validate_apply_job
job_id = params[:job_id] || session[:apply_job].try(:[], 'job_id')
return redirect_to jobs_path, flash: { warning: 'Job not found!'} unless Job.find_by_id(job_id)
job_applied = JobApplied.exists?(user_id: current_user.id, job_id: job_id)
return redirect_to job_detail_path(job_id), flash: { info: 'You applied for job'} if job_applied
end
end
......@@ -27,7 +27,8 @@ class JobsController < ApplicationController
end
def show
session.delete(:job_applied)
session.delete(:apply_job)
session.delete(:cv)
return redirect_to jobs_path unless @job
@user = JobApplied.where(user_id: current_user.id, job_id: params[:id]) if signed_in?
end
......
......@@ -16,6 +16,10 @@ class UserCvUploader < CarrierWave::Uploader::Base
def size_range
0..5.megabytes
end
def extension_whitelist
%w(doc pdf xls xlsx zip)
end
# Provide a default URL as a default if there hasn't been a file uploaded:
# def default_url(*args)
# # For Rails 3.1+ asset pipeline compatibility:
......
<div class="border border-dark rounded">
<div class="job-details">
<div class="title">
<%= link_to job_detail_path(user.job.id) do %><strong>
<%= user.job.title %></strong>
<%= link_to job_detail_path(applied_job.job.id) do %><strong>
<%= applied_job.job.title %></strong>
<% end %>
</div>
<div class="introduction">
<%= strip_tags(user.job.format_desc) %><br>
<%= link_to 'Read more..', job_detail_path(user.job.id) %>
<%= strip_tags(applied_job.job.format_desc) %><br>
<%= link_to 'Read more..', job_detail_path(applied_job.job.id) %>
</div>
<div class="row">
<div class="col-6">
<%= user.job.cities.map(&:name).join(' | ') %>
<%= applied_job.job.cities.map(&:name).join(' | ') %>
</div>
<div class="salary col-3">
Salary: <%= user.job.salary %>
Salary: <%= applied_job.job.salary %>
</div>
<div class="applied-at col-3">
<strong>Applied at:</strong>
<%= user.updated_at.strftime('%d/%m/%Y') %>
<%= applied_job.updated_at.strftime('%d/%m/%Y') %>
</div>
</div>
</div>
......
......@@ -32,7 +32,7 @@
</div>
</div>
<%= link_to 'Edit', apply_job_path(job_id: session[:get_job_id]), class: 'btn btn-outline-primary btn-lg update-btn' %>
<%= link_to 'Edit', apply_job_path(job_id: session[:apply_job]['job_id']), class: 'btn btn-outline-primary btn-lg update-btn' %>
<%= f.submit 'Done', class: 'btn btn-outline-primary btn-lg update-btn' %>
<% end %>
</div>
......
......@@ -29,8 +29,8 @@
<%= f.label :cv_user, 'My CV' %>
</div>
<div class="col-8-sm">
<% if current_user.cv_user.present? %>
<%= link_to current_user.cv_user.identifier, current_user.cv_user.url, download: current_user.cv_user.identifier %>
<% if @job_applied.cv_user.present? %>
<%= link_to @job_applied.cv_user.identifier, @job_applied.cv_user.url, download: @job_applied.cv_user.identifier %>
<div class="cv-none">
<%= f.file_field :cv_user, accept: '.doc, .pdf, .xls, .xlsx, .zip',class: 'input-cv' %>
</div>
......
<div class="container">
<% if @users.count > 0 %>
<% if @applied_jobs.count > 0 %>
<h1 class="text-center my-job-label">My Job</h1>
<%= paginate @users, outer_window: 2, window: 1 %>
<%= render partial: "job_applieds/my_jobs", collection: @users, as: :user %>
<%= paginate @users, outer_window: 2, window: 1 %>
<%= paginate @applied_jobs, outer_window: 2, window: 1 %>
<%= render partial: "job_applieds/my_jobs", collection: @applied_jobs, as: :applied_job %>
<%= paginate @applied_jobs, outer_window: 2, window: 1 %>
<% else %>
<h1 class="let-apply">Let's apply job</h1>
<% end %>
......
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