Commit d0876d70 by Nilu

change job application flow based on values selected in job (cv required,…

change job application flow based on values selected in job (cv required, working remote is an option)

upate HT004 based on client response, happy to relocate
parent cc0896eb
...@@ -338,24 +338,31 @@ public class JobApplication extends BaseJobApplication ...@@ -338,24 +338,31 @@ public class JobApplication extends BaseJobApplication
return hasFailedEssentialRequirements() ? "red-b" : (score >= 80 ? "green" : (score >= 60 ? "yellow" : "red-b")); return hasFailedEssentialRequirements() ? "red-b" : (score >= 80 ? "green" : (score >= 60 ? "yellow" : "red-b"));
} }
// public Long cultureCompleteness() public Boolean hasFailedEssentialRequirements()
// { {
// getCandidate().getCompletedAnswers(BaseJob.DUMMY_Job) Filter filter = AssessmentCriteria.SearchByAll().andImportance(new EqualsFilter<>(Importance.ESSENTIAL));
// } Collection<AssessmentCriteria> essentialRequirements = CollectionFilter.filter(getJob().getAssessmentCriteriasSet(), filter);
if(essentialRequirements.size() > 0 && getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL) != null)
{
Filter negativeFilter = AssessmentCriteriaAnswer.SearchByAll().andAnswer(new EqualsFilter<>(Boolean.FALSE));
return CollectionFilter.filter(getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL), negativeFilter).size() > 0;
}
return Boolean.FALSE;
}
public Boolean hasFailedEssentialRequirements() public Boolean hasAllEssentialRequirements()
{ {
Filter filter = AssessmentCriteria.SearchByAll().andImportance(new EqualsFilter<>(Importance.ESSENTIAL)); Filter filter = AssessmentCriteria.SearchByAll().andImportance(new EqualsFilter<>(Importance.ESSENTIAL));
Collection<AssessmentCriteria> essentialRequirements = CollectionFilter.filter(getJob().getAssessmentCriteriasSet(), filter); Collection<AssessmentCriteria> essentialRequirements = CollectionFilter.filter(getJob().getAssessmentCriteriasSet(), filter);
if(essentialRequirements.size() > 0 && getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL) != null) if(essentialRequirements.size() > 0 && getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL) != null)
{ {
Filter negativeFilter = AssessmentCriteriaAnswer.SearchByAll().andAnswer(new EqualsFilter<>(Boolean.FALSE)); Filter positiveFilter = AssessmentCriteriaAnswer.SearchByAll().andAnswer(new EqualsFilter<>(Boolean.FALSE));
return CollectionFilter.filter(getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL), negativeFilter).size() > 0; return CollectionFilter.filter(getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL), positiveFilter).size() == essentialRequirements.size();
} }
return Boolean.FALSE; return Boolean.FALSE;
......
...@@ -15,6 +15,7 @@ ...@@ -15,6 +15,7 @@
String tabText = candidate.getToString(); String tabText = candidate.getToString();
String currentPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICATION); String currentPage = WebUtils.getSamePageInRenderMode(request, WebUtils.VIEW_APPLICATION);
boolean missingReq = jobApplication.hasFailedEssentialRequirements(); boolean missingReq = jobApplication.hasFailedEssentialRequirements();
boolean hasAllReq = jobApplication.hasAllEssentialRequirements();
WorkFlow workflow = job.getWorkFlowByStatus(jobApplication.getApplicationStatus()); WorkFlow workflow = job.getWorkFlowByStatus(jobApplication.getApplicationStatus());
List<WorkFlow> sortedWorkFlows = ObjstoreUtils.sort(job.getApplicantWFs(), List<WorkFlow> sortedWorkFlows = ObjstoreUtils.sort(job.getApplicantWFs(),
new ObjectTransform[]{WorkFlow.pipesWorkFlow().toSortOrder()}, new ObjectTransform[]{WorkFlow.pipesWorkFlow().toSortOrder()},
...@@ -239,7 +240,7 @@ ...@@ -239,7 +240,7 @@
<div class="<%= "percent-" + jobApplication.getRequirementFitColor() + " fixed-width progress-circle" %>"> <div class="<%= "percent-" + jobApplication.getRequirementFitColor() + " fixed-width progress-circle" %>">
<% if (missingReq) { %> <% if (missingReq) { %>
<span class="missing-requirements-icon" style="display:inline-block"></span> <span class="missing-requirements-icon" style="display:inline-block"></span>
<%} else{ %> <%} else if (hasAllReq) { %>
<span class="green-requirements-icon" style="display:inline-block"></span> <span class="green-requirements-icon" style="display:inline-block"></span>
<%}%> <%}%>
<p style="display:none;"><oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="TwoDPDouble" /></p> <p style="display:none;"><oneit:toString value="<%= jobApplication.getRequirementFitScore() %>" mode="TwoDPDouble" /></p>
...@@ -286,7 +287,7 @@ ...@@ -286,7 +287,7 @@
%> %>
</div> </div>
<div class="<%="essential-requirements-note " + (missingReq ? "red-requirements" : "green-requirements") %>"> <div class="<%="essential-requirements-note " + (missingReq ? "red-requirements" : "green-requirements") %>">
<span><%= missingReq ? "Does not meet essential requirements" : "Does meet essential requirements" %></span> <span><%= missingReq ? "Does not meet essential requirements" : hasAllReq ? "Does meet essential requirements" : "" %></span>
</div> </div>
</div> </div>
...@@ -449,15 +450,15 @@ ...@@ -449,15 +450,15 @@
{ {
Long rating = requirementFitData.get(importance); Long rating = requirementFitData.get(importance);
%> %>
<div class="main-score-bar main-pro-bar <%= importance %> <%= missingReq ? "red" : "green" %>"> <div class="main-score-bar main-pro-bar <%= importance %> <%= missingReq ? "red" : hasAllReq ? "green" : ""%>">
<div class="score-bar pro-bar"> <div class="score-bar pro-bar">
<span class="appli-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></span> <span class="appli-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></span>
<% <%
if(importance == Importance.ESSENTIAL) if(importance == Importance.ESSENTIAL)
{ {
%> %>
<span class="<%= missingReq ? "red-requirements" : "green-requirements" %>"> <span class="<%= missingReq ? "red-requirements" : hasAllReq ? "green-requirements" : "" %>">
<%= missingReq ? "Candidate does not meet essential requirements" : "Candidate does meet essential requirements" %> <%= missingReq ? "Candidate does not meet essential requirements" : hasAllReq ? "Candidate does meet essential requirements" : "" %>
</span> </span>
<% <%
} }
...@@ -594,22 +595,32 @@ ...@@ -594,22 +595,32 @@
<div class="contact-row" > <div class="contact-row" >
<div class="contact-label"><img src="images/icon-location.png" /></div> <div class="contact-label"><img src="images/icon-location.png" /></div>
<div class="contact-value"> <div class="contact-value">
<div><oneit:toString value="<%= candidate.getGoogleAddressText() %>" mode="EscapeHTML"/></div> <div><oneit:toString value="<%= jobApplication.getGoogleAddressText() %>" mode="EscapeHTML"/></div>
<% <%
if(candidate.) if(jobApplication.isFarFromJob())
{ {
%> %>
<div class="orange-text">Does not want to relocate</div> <div class="<%= jobApplication.getHappyToRelocate() ? "green-text" : "orange-text"%>">
<%= jobApplication.getHappyToRelocate() ? "Happy" : "Does not want"%> to relocate
</div>
<% <%
} }
%> %>
</div> </div>
</div> </div>
<div class="contact-row" > <%
if(jobApplication.getPreferRemote())
{
%>
<div class="contact-row">
<div class="contact-label"><img src="images/icon-remote.png" /></div> <div class="contact-label"><img src="images/icon-remote.png" /></div>
<div class="contact-value"><span class="green-text">Prefers to work remote</span></div> <div class="contact-value"><span class="green-text">Prefers to work remote</span></div>
</div> </div>
<%
}
%>
</div> </div>
<%--
<div class="applicant-note" > <div class="applicant-note" >
<div class="applicant-note-title">Notes</div> <div class="applicant-note-title">Notes</div>
<div class="note-txt-box"> <div class="note-txt-box">
...@@ -617,7 +628,7 @@ ...@@ -617,7 +628,7 @@
<input type="button" class="add-note-btn" value="ADD NOTE" /> <input type="button" class="add-note-btn" value="ADD NOTE" />
</div> </div>
</div> </div>
<div class="admin-notes" > <div class="admin-notes">
<div class="admin-name">Admin name</div> <div class="admin-name">Admin name</div>
<div class="date-value">TODAY</div> <div class="date-value">TODAY</div>
<div class="admin-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan interdum nisi, sed laoreet dui rhoncus.</div> <div class="admin-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent accumsan interdum nisi, sed laoreet dui rhoncus.</div>
...@@ -626,6 +637,7 @@ ...@@ -626,6 +637,7 @@
<div class="date-value">2 days ago</div> <div class="date-value">2 days ago</div>
<div class="admin-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div> <div class="admin-text">Lorem ipsum dolor sit amet, consectetur adipiscing elit.</div>
</div> </div>
--%>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -22,7 +22,7 @@ ...@@ -22,7 +22,7 @@
if(jobApplication != null) if(jobApplication != null)
{ {
response.sendRedirect(jobApplication.getCV() != null && jobApplication.getCoverLetter() != null ? outlinePage : nextPage); response.sendRedirect(!job.getRequireCV() || (jobApplication.getCV() != null && jobApplication.getCoverLetter() != null) ? outlinePage : nextPage);
} }
if(jobApplication == null) if(jobApplication == null)
...@@ -93,6 +93,10 @@ ...@@ -93,6 +93,10 @@
<label>Location</label> <label>Location</label>
<oneit:ormInput obj="<%= candidate %>" type="text" attributeName="GoogleAddressText" class="autoAddress" id="<%= "gAddress_"+candidate.getObjectID() %>" placeholder="Enter your address" cssClass="form-control" /> <oneit:ormInput obj="<%= candidate %>" type="text" attributeName="GoogleAddressText" class="autoAddress" id="<%= "gAddress_"+candidate.getObjectID() %>" placeholder="Enter your address" cssClass="form-control" />
</div> </div>
<%
if(job.getRemote())
{
%>
<div class="form-group text-left" style="margin-top: 30px;"> <div class="form-group text-left" style="margin-top: 30px;">
<div class="styled_checkboxes"> <div class="styled_checkboxes">
<div class="checkbox checkbox-primary"> <div class="checkbox checkbox-primary">
...@@ -105,10 +109,13 @@ ...@@ -105,10 +109,13 @@
</div> </div>
</div> </div>
</div> </div>
<%
}
%>
<oneit:recalcClass htmlTag="div" classScript="jobApplication.isFarFromJob() ? 'show': 'hide'" jobApplication="<%= jobApplication %>"> <oneit:recalcClass htmlTag="div" classScript="jobApplication.isFarFromJob() ? 'show': 'hide'" jobApplication="<%= jobApplication %>">
<div class="relocate-warning-box"> <div class="relocate-warning-box">
<p> <p>
We noticed that your location is different to the location of the job (Melbourne, 3000). We noticed that your location is different to the location of the job (<%= job.getGoogleAddressText() %>).
</p> </p>
<p> <p>
Are you prepared to relocate for this position? Are you prepared to relocate for this position?
......
...@@ -5,7 +5,6 @@ ...@@ -5,7 +5,6 @@
<oneit:dynIncluded> <oneit:dynIncluded>
<% <%
String nextPage = WebUtils.getArticleLink(request, process.getTransaction (), WebUtils.JOB_APPLICATION, "CoverLetter");
Candidate candidate = (Candidate) process.getAttribute("NewCandidate"); Candidate candidate = (Candidate) process.getAttribute("NewCandidate");
Job job = (Job) process.getAttribute("Job"); Job job = (Job) process.getAttribute("Job");
SecUser secUser = null; SecUser secUser = null;
...@@ -61,6 +60,7 @@ ...@@ -61,6 +60,7 @@
Debug.assertion(candidate != null, "Invalid candidate in applicant portal"); Debug.assertion(candidate != null, "Invalid candidate in applicant portal");
JobApplication jobApplication = JobApplication.searchCandidateJob(transaction, candidate, job); JobApplication jobApplication = JobApplication.searchCandidateJob(transaction, candidate, job);
String nextPage = WebUtils.getArticleLink(request, process.getTransaction (), WebUtils.JOB_APPLICATION, job.getRequireCV() ? "CoverLetter" : "Page");
if(jobApplication == null) if(jobApplication == null)
{ {
...@@ -184,7 +184,7 @@ ...@@ -184,7 +184,7 @@
<oneit:recalcClass htmlTag="div" classScript="jobApplication.isFarFromJob() ? 'show': 'hide'" jobApplication="<%= jobApplication %>"> <oneit:recalcClass htmlTag="div" classScript="jobApplication.isFarFromJob() ? 'show': 'hide'" jobApplication="<%= jobApplication %>">
<div class="relocate-warning-box"> <div class="relocate-warning-box">
<p> <p>
We noticed that your location is different to the location of the job (Melbourne, 3000). We noticed that your location is different to the location of the job (<%= job.getGoogleAddressText() %>).
</p> </p>
<p> <p>
Are you prepared to relocate for this position? Are you prepared to relocate for this position?
......
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