Commit 77d5a3b1 by chenith Committed by Harsh Shah

UPdated Job application process, compete Culture and Role stages if applicant…

UPdated Job application process, compete Culture and Role stages if applicant has already completed the Culture and Role tests.
parent 298df18a
...@@ -45,7 +45,10 @@ public class CompleteApplicationFP extends SaveFP ...@@ -45,7 +45,10 @@ public class CompleteApplicationFP extends SaveFP
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
if(jobApplication.getAlreadyCompletedApplicationForCulture()==null)
{
BusinessObjectParser.assertFieldCondition(jobApplication.getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request); BusinessObjectParser.assertFieldCondition(jobApplication.getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request);
}
super.validate(process, submission, exceptions, params); super.validate(process, submission, exceptions, params);
} }
......
...@@ -61,7 +61,7 @@ public class SendVerificationMailFP extends SaveFP ...@@ -61,7 +61,7 @@ public class SendVerificationMailFP extends SaveFP
SecUser newSecUser = SecUser.createSecUser(objTran); SecUser newSecUser = SecUser.createSecUser(objTran);
newSecUser.setUserName(email); newSecUser.setUserName(email.toLowerCase());
newSecUser.setAttribute("md5:" + SecUser.FIELD_Password, DEFAULT_PASSWORD); newSecUser.setAttribute("md5:" + SecUser.FIELD_Password, DEFAULT_PASSWORD);
LogMgr.log(LOG, LogLevel.PROCESSING1, "New user created :: ", newSecUser); LogMgr.log(LOG, LogLevel.PROCESSING1, "New user created :: ", newSecUser);
......
...@@ -26,7 +26,7 @@ public class SignInCandidateFP extends LoginProcessor ...@@ -26,7 +26,7 @@ public class SignInCandidateFP extends LoginProcessor
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "Inside SignInCandidateFP for ", job, " Email:", email); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "Inside SignInCandidateFP for ", job, " Email:", email);
userMap.put("username", job.getEmail()); userMap.put("username", job.getEmail().toLowerCase());
userMap.put("password", job.getPassword()); userMap.put("password", job.getPassword());
request.setAttribute("nextPage", nextPage + "&JobID=" + job.getObjectID()); request.setAttribute("nextPage", nextPage + "&JobID=" + job.getObjectID());
......
...@@ -5,19 +5,16 @@ import oneit.logging.LoggingArea; ...@@ -5,19 +5,16 @@ import oneit.logging.LoggingArea;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter; import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.rdbms.filters.NotEqualsFilter;
import oneit.objstore.utils.ObjstoreUtils; import oneit.objstore.utils.ObjstoreUtils;
import oneit.utils.CollectionUtils; import oneit.utils.CollectionUtils;
import oneit.utils.ObjectTransform; import oneit.utils.ObjectTransform;
import oneit.utils.filter.CollectionFilter; import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.math.MathUtils;
import oneit.utils.math.Rounding;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.types.AppProcessOption; import performa.orm.types.AppProcessOption;
import performa.orm.types.ApplicationStatus; import performa.orm.types.ApplicationStatus;
import performa.orm.types.CriteriaType; import performa.orm.types.CriteriaType;
import performa.orm.types.CultureClass;
import performa.orm.types.Importance;
import performa.utils.AnalysisEngine; import performa.utils.AnalysisEngine;
...@@ -228,8 +225,9 @@ public class JobApplication extends BaseJobApplication ...@@ -228,8 +225,9 @@ public class JobApplication extends BaseJobApplication
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>()); Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineJobApplication().toProfileAssessmentAnswers(filter).vals(); Collection selectedAnswers = pipelineJobApplication().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() == allAnswersCount); return (selectedAnswers.size() >= allAnswersCount);
} }
return false; return false;
} }
...@@ -298,4 +296,50 @@ public class JobApplication extends BaseJobApplication ...@@ -298,4 +296,50 @@ public class JobApplication extends BaseJobApplication
return statuses; return statuses;
} }
public Collection<JobApplication> getAllSubmittedApplicationsByCandidate()
{
Filter filter = JobApplication.SearchByAll().andApplicationStatus(new NotEqualsFilter<>(ApplicationStatus.DRAFT));
return CollectionFilter.filter(getCandidate().getJobApplicationsSet(), filter);
}
public JobApplication getAlreadyCompletedApplicationForCulture()
{
for(JobApplication application: getAllSubmittedApplicationsByCandidate())
{
if(CollectionUtils.equals(application, this))
{
continue;
}
if(application.cultureCompleted())
{
return application;
}
}
return null;
}
public JobApplication getAlreadyCompletedApplicationForRole()
{
for(JobApplication application: getAllSubmittedApplicationsByCandidate())
{
if(CollectionUtils.equals(application, this))
{
continue;
}
if(application.assessmentCompleted())
{
return application;
}
}
return null;
}
} }
\ No newline at end of file
...@@ -32,9 +32,25 @@ ...@@ -32,9 +32,25 @@
nextPage = WebUtils.getSamePageInRenderMode(request, "WorkplaceCulture"); nextPage = WebUtils.getSamePageInRenderMode(request, "WorkplaceCulture");
} }
//to store already completed culture or role data
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
if(alreadyCompletedCulture==null)
{
alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null;
process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture);
}
if(alreadyCompletedRole==null)
{
alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null;
process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole);
}
Boolean isSelectionComplete = jobApplication.selectionCompleted(); Boolean isSelectionComplete = jobApplication.selectionCompleted();
Boolean isCultureComplete = jobApplication.cultureCompleted(); Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted(); Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
process.setAttribute("JobApplication", jobApplication); process.setAttribute("JobApplication", jobApplication);
%> %>
......
...@@ -11,6 +11,12 @@ ...@@ -11,6 +11,12 @@
String secondPage = WebUtils.getSamePageInRenderMode(request, "WorkplaceCulture"); String secondPage = WebUtils.getSamePageInRenderMode(request, "WorkplaceCulture");
String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria(); boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
%> %>
<oneit:dynIncluded> <oneit:dynIncluded>
...@@ -21,33 +27,33 @@ ...@@ -21,33 +27,33 @@
if(includeAssessment) if(includeAssessment)
{ {
%> %>
<li class="<%= pageNumber == "1" ? "active" : jobApplication.selectionCompleted() ? "complate" : ""%>"> <li class="<%= pageNumber == "1" ? "active" : isSelectionComplete ? "complate" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link" <oneit:button value=" " name="gotoPage" skin="link"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", firstPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", firstPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<span><%= jobApplication.selectionCompleted() ? "<img src=\"images/right-mark.png\" />" : "1"%></span> <span><%= isSelectionComplete ? "<img src=\"images/right-mark.png\" />" : "1"%></span>
<div class="mobile-hide">Your Experience</div> <div class="mobile-hide">Your Experience</div>
</oneit:button> </oneit:button>
</li> </li>
<% <%
} }
%> %>
<li class="<%= pageNumber == "2" ? "active" : jobApplication.cultureCompleted() ? "complate" : ""%>"> <li class="<%= pageNumber == "2" ? "active" : isCultureComplete ? "complate" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link" disabled="<%= jobApplication.cultureCompleted() ? "true" : "false"%>" <oneit:button value=" " name="gotoPage" skin="link" disabled="<%= isCultureComplete ? "true" : "false"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<span><%= jobApplication.cultureCompleted() ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "2" : "1")%></span> <span><%= isCultureComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "2" : "1")%></span>
<div class="mobile-hide">Workplace Preference</div> <div class="mobile-hide">Workplace Preference</div>
</oneit:button> </oneit:button>
</li> </li>
<li class="<%= pageNumber == "3" ? "active" : jobApplication.assessmentCompleted() ? "complate" : ""%>"> <li class="<%= pageNumber == "3" ? "active" : isAssesmentComplete ? "complate" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link" <oneit:button value=" " name="gotoPage" skin="link" disabled="<%= isAssesmentComplete ? "true" : "false"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", thirdPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", thirdPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"> .toMap() %>">
<span><%= jobApplication.assessmentCompleted() ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "3" : "2")%></span> <span><%= isAssesmentComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "3" : "2")%></span>
<div class="mobile-hide">Your Work Style</div> <div class="mobile-hide">Your Work Style</div>
</oneit:button> </oneit:button>
</li> </li>
......
...@@ -12,8 +12,21 @@ ...@@ -12,8 +12,21 @@
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page"); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page");
exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey(); exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture;
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
boolean toRedirect = jobApplication.createAssessmentCriteriaObjects(); boolean toRedirect = jobApplication.createAssessmentCriteriaObjects();
if(isCultureComplete && isAssesmentComplete)
{
nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
}
else if(isCultureComplete)
{
nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
}
if (toRedirect) if (toRedirect)
{ {
%> %>
...@@ -124,10 +137,28 @@ ...@@ -124,10 +137,28 @@
.mapEntry ("JobApplication", jobApplication) .mapEntry ("JobApplication", jobApplication)
.mapEntry(UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE) .mapEntry(UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>"/> .toMap() %>"/>
<%
if(isCultureComplete && isAssesmentComplete)
{
%>
<oneit:button value="Complete" name="completeApplication" id="nextButton" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.toMap() %>"/>
<%
}
else
{
%>
<oneit:button value="Proceed to next step" name="gotoPage" cssClass="box-btn" <oneit:button value="Proceed to next step" name="gotoPage" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"/> .toMap() %>"/>
<%
}
%>
</div> </div>
</div> </div>
</div> </div>
......
...@@ -13,6 +13,13 @@ ...@@ -13,6 +13,13 @@
int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : jobApplication.getCultureCriteriaAnswersCount(); int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : jobApplication.getCultureCriteriaAnswersCount();
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey(); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey();
boolean toRedirect = jobApplication.createCultureCriteriaObjects(); boolean toRedirect = jobApplication.createCultureCriteriaObjects();
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole;
if(isAssesmentComplete)
{
nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
}
if(toRedirect) if(toRedirect)
{ {
...@@ -129,7 +136,18 @@ ...@@ -129,7 +136,18 @@
.mapEntry(UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE) .mapEntry(UpdateMappedObjFP.FAIL_VALIDATION_ERRORS, Boolean.FALSE)
.toMap() %>"/> .toMap() %>"/>
<% <%
if(isLast) if(isAssesmentComplete)
{
%>
<oneit:button value="Complete" name="completeApplication" id="nextButton" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.toMap() %>"/>
<%
}
else if(isLast)
{ {
%> %>
<oneit:button value="Proceed to next step" name="gotoPage" cssClass="box-btn" <oneit:button value="Proceed to next step" name="gotoPage" cssClass="box-btn"
......
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