review comment tweaks - completes #104
This commit is contained in:
parent
2c0020a280
commit
e0ff645926
@ -28,6 +28,10 @@
|
|||||||
margin-bottom: 30px;
|
margin-bottom: 30px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
form {
|
||||||
|
margin-bottom: 30px;
|
||||||
|
}
|
||||||
|
|
||||||
.comment-message {
|
.comment-message {
|
||||||
margin-right: 5px;
|
margin-right: 5px;
|
||||||
}
|
}
|
||||||
|
@ -17,14 +17,27 @@ module Admin
|
|||||||
@candidate = Candidate.find_by(test_hash: params[:test_hash])
|
@candidate = Candidate.find_by(test_hash: params[:test_hash])
|
||||||
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
|
authorize ReviewerVote.find_by(user_id: current_user.id, candidate_id: @candidate.id)
|
||||||
|
|
||||||
current_user.review_candidate(@candidate, interview_params)
|
if interview_params[:review_comments].blank?
|
||||||
RecruiterMailer.candidate_reviewed(@candidate).deliver_later
|
refuse_interview_request
|
||||||
redirect_to admin_result_path(@candidate.test_hash),
|
else
|
||||||
flash: { notice: "Quiz #{interview_params[:review_status]}" }
|
send_interview_request
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
def refuse_interview_request
|
||||||
|
redirect_to admin_result_path(@candidate.test_hash),
|
||||||
|
flash: { error: "Must provide a comment" }
|
||||||
|
end
|
||||||
|
|
||||||
|
def send_interview_request
|
||||||
|
current_user.review_candidate(@candidate, interview_params)
|
||||||
|
RecruiterMailer.candidate_reviewed(@candidate).deliver_later
|
||||||
|
redirect_to admin_result_path(@candidate.test_hash),
|
||||||
|
flash: { notice: "Quiz #{interview_params[:review_status]}" }
|
||||||
|
end
|
||||||
|
|
||||||
def interview_params
|
def interview_params
|
||||||
params.permit(:review_status, :review_comments)
|
params.permit(:review_status, :review_comments)
|
||||||
end
|
end
|
||||||
|
@ -1,5 +1,3 @@
|
|||||||
<%= render partial: 'shared/form_model_errors', locals: { obj: comment } %>
|
|
||||||
|
|
||||||
<% if comment.id.nil? %>
|
<% if comment.id.nil? %>
|
||||||
|
|
||||||
<%= form_for comment, url: admin_create_comment_path(test_hash: test_hash), method: :post do |form| %>
|
<%= form_for comment, url: admin_create_comment_path(test_hash: test_hash), method: :post do |form| %>
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
<div class="review_meta__votes" data-id="vote-count">
|
<div class="review_meta__votes" data-id="vote-count">
|
||||||
<strong>Votes: </strong>
|
<strong>Votes: </strong>
|
||||||
|
|
||||||
<% if @candidate.pending? %>
|
<% if @candidate.pending? && current_user.commented_on?(@candidate.test_hash) %>
|
||||||
<%= link_to admin_up_vote_path(test_hash: @candidate.test_hash), remote: true do %>
|
<%= link_to admin_up_vote_path(test_hash: @candidate.test_hash), remote: true do %>
|
||||||
Yea (<span data-id="up-votes"><%= @candidate.votes.yea.count %></span>)
|
Yea (<span data-id="up-votes"><%= @candidate.votes.yea.count %></span>)
|
||||||
<% end %>
|
<% end %>
|
||||||
@ -12,6 +12,10 @@
|
|||||||
<%= link_to admin_down_vote_path(test_hash: @candidate.test_hash), remote: true do %>
|
<%= link_to admin_down_vote_path(test_hash: @candidate.test_hash), remote: true do %>
|
||||||
Nay (<span data-id="down-votes"><%= @candidate.votes.nay.count %></span>)
|
Nay (<span data-id="down-votes"><%= @candidate.votes.nay.count %></span>)
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<% elsif @candidate.pending? %>
|
||||||
|
<div>You must comment before you can vote</div>
|
||||||
|
<span>Yea (<span data-id="up-votes"><%= @candidate.votes.yea.count %></span>)</span>
|
||||||
|
<span>Nay (<span data-id="down-votes"><%= @candidate.votes.nay.count %></span>)</span>
|
||||||
<% else %>
|
<% else %>
|
||||||
Voting closed -
|
Voting closed -
|
||||||
Yea (<%= @candidate.votes.yea.count %>) -
|
Yea (<%= @candidate.votes.yea.count %>) -
|
||||||
@ -43,4 +47,8 @@
|
|||||||
<% else %>
|
<% else %>
|
||||||
|
|
||||||
<strong>Candidate Interview Status: </strong><%= @candidate.review_status %>
|
<strong>Candidate Interview Status: </strong><%= @candidate.review_status %>
|
||||||
|
<% unless @candidate.review_status.blank? %>
|
||||||
|
<div>Review Status Comments:</div>
|
||||||
|
<div><%= @candidate.review_comments %></div>
|
||||||
|
<% end %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
@ -55,11 +55,12 @@
|
|||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div>
|
<div>
|
||||||
<h2 class="prft-heading">Comments</h2>
|
<h2 id="comment-header" class="prft-heading">Comments</h2>
|
||||||
<%= render partial: 'comment', collection: @comments, locals: { test_hash: @candidate.test_hash } %>
|
|
||||||
<% if policy(QuizComment).new? %>
|
<% if policy(QuizComment).new? %>
|
||||||
<%= render partial: 'comment_form', locals: {comment: @comment, test_hash: @candidate.test_hash } %>
|
<%= render partial: 'comment_form', locals: {comment: @comment, test_hash: @candidate.test_hash } %>
|
||||||
<% end %>
|
<% end %>
|
||||||
|
<%= render partial: 'comment', collection: @comments, locals: { test_hash: @candidate.test_hash } %>
|
||||||
|
<a href="#comment-header">Back to top</a>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
@ -70,5 +70,16 @@ module Admin
|
|||||||
assert_equal 'ipsum', Candidate.find(henry.to_i).review_comments
|
assert_equal 'ipsum', Candidate.find(henry.to_i).review_comments
|
||||||
assert_redirected_to admin_result_url(henry.test_hash)
|
assert_redirected_to admin_result_url(henry.test_hash)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
test "approve fails without comment" do
|
||||||
|
auth_user users(:manager)
|
||||||
|
henry = candidates(:henry)
|
||||||
|
|
||||||
|
assert_enqueued_jobs 0 do
|
||||||
|
post admin_interview_url(henry.test_hash), params: { review_status: 'approved' }
|
||||||
|
end
|
||||||
|
assert_match 'comment', flash[:error]
|
||||||
|
assert_redirected_to admin_result_url(henry.test_hash)
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
Loading…
Reference in New Issue
Block a user