Commit d704e5ff by Nilu

C002, Auto save.

parent 9ed66a9d
...@@ -59,11 +59,19 @@ public class CompleteApplicationFP extends SaveFP ...@@ -59,11 +59,19 @@ public class CompleteApplicationFP extends SaveFP
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{ {
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
if(!jobApplication.cultureCompleted()) if(!jobApplication.cultureCompleted())
{ {
BusinessObjectParser.assertFieldCondition(jobApplication.getCandidate().getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request); BusinessObjectParser.assertFieldCondition(jobApplication.getCandidate().getCultureCriteriaAnswersCount()>0, jobApplication, JobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request);
}
if(jobApplication.isIncludeAssessmentCriteria())
{
JobApplication application = jobApplication.getInTransaction(objTran);
BusinessObjectParser.assertFieldCondition(jobApplication.getJob().getAssessmentCriteriasCount() == application.getAssessmentCriteriaAnswersCount(), jobApplication, JobApplication.FIELD_ObjectID, "completeAssessment", exceptions, true, request);
} }
super.validate(process, submission, exceptions, params); super.validate(process, submission, exceptions, params);
......
package performa.form;
import java.util.Map;
import javax.servlet.http.HttpServletRequest;
import oneit.objstore.ObjectTransaction;
import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser;
import oneit.servlets.forms.SubmissionDetails;
import oneit.servlets.forms.SuccessfulResult;
import oneit.servlets.process.ORMProcessState;
import oneit.servlets.process.ProcessRedirectResult;
import oneit.servlets.process.SaveFP;
import oneit.utils.BusinessException;
import oneit.utils.Debug;
import oneit.utils.MultiException;
import performa.orm.JobApplication;
public class ValidateApplicationFP extends SaveFP
{
@Override
public SuccessfulResult processForm(ORMProcessState process, SubmissionDetails submission, Map params) throws BusinessException, StorageException
{
return new ProcessRedirectResult((String) submission.getRequest().getAttribute("nextPage"), new String[0]);
}
@Override
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
super.validate(process, submission, exceptions, params);
HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
boolean fromRequirements = request.getAttribute("fromRequirements") != null ? (boolean) request.getAttribute("fromRequirements"): false;
Debug.assertion(jobApplication != null, "No jobApplication found . Call from " + getClass().getName());
if(jobApplication.isIncludeAssessmentCriteria() && fromRequirements)
{
JobApplication application = jobApplication.getInTransaction(objTran);
BusinessObjectParser.assertFieldCondition(jobApplication.getJob().getAssessmentCriteriasCount() == application.getAssessmentCriteriaAnswersCount(), jobApplication, JobApplication.FIELD_ObjectID, "completeAssessment", exceptions, true, request);
}
}
}
\ No newline at end of file
...@@ -187,6 +187,14 @@ public class JobApplication extends BaseJobApplication ...@@ -187,6 +187,14 @@ public class JobApplication extends BaseJobApplication
} }
public AssessmentCriteriaAnswer getAssessmentCriteriaAnswer(AssessmentCriteria criteria)
{
Filter<AssessmentCriteriaAnswer> filter = AssessmentCriteriaAnswer.SearchByAll().andAssessmentCriteria(new EqualsFilter<>(criteria));
return pipelineJobApplication().toAssessmentCriteriaAnswers(filter).val();
}
public boolean selectionCompleted() //req public boolean selectionCompleted() //req
{ {
if(getJob()!=null && getJob().getIncludeAssessmentCriteria()!=Boolean.TRUE) if(getJob()!=null && getJob().getIncludeAssessmentCriteria()!=Boolean.TRUE)
......
...@@ -339,7 +339,7 @@ public class Utils ...@@ -339,7 +339,7 @@ public class Utils
{ {
SecUser secUser = SecUser.searchNAME(objTran, email.toLowerCase()); SecUser secUser = SecUser.searchNAME(objTran, email.toLowerCase());
if(isCandidate) if(isCandidate && secUser != null)
{ {
Candidate candidate = secUser.getExtension(Candidate.REFERENCE_Candidate); Candidate candidate = secUser.getExtension(Candidate.REFERENCE_Candidate);
......
...@@ -7,6 +7,7 @@ ...@@ -7,6 +7,7 @@
<ApplicantAccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="ApplicantAccountCreatedMail"/> <ApplicantAccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="ApplicantAccountCreatedMail"/>
</FORM> </FORM>
<FORM name="*.completeApplication" factory="Participant" class="performa.form.CompleteApplicationFP"/> <FORM name="*.completeApplication" factory="Participant" class="performa.form.CompleteApplicationFP"/>
<FORM name="*.validateApplication" factory="Participant" class="performa.form.ValidateApplicationFP"/>
<FORM name="*.saveAndExitExperienece" factory="Participant" class="performa.form.SaveAndExitExperienceFP"/> <FORM name="*.saveAndExitExperienece" factory="Participant" class="performa.form.SaveAndExitExperienceFP"/>
<FORM name="*.saveAndExitCulture" factory="Participant" class="performa.form.SaveAndExitCultureFP"/> <FORM name="*.saveAndExitCulture" factory="Participant" class="performa.form.SaveAndExitCultureFP"/>
<FORM name="*.saveAndExitWorkStyle" factory="Participant" class="performa.form.SaveAndExitWorkStypeFP"/> <FORM name="*.saveAndExitWorkStyle" factory="Participant" class="performa.form.SaveAndExitWorkStypeFP"/>
...@@ -43,4 +44,8 @@ ...@@ -43,4 +44,8 @@
<NODE name="save_job_match_answers_jsp" factory="Participant"> <NODE name="save_job_match_answers_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/> <INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE> </NODE>
<NODE name="save_assessment_criteria_answers_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE>
</OBJECTS> </OBJECTS>
...@@ -223,9 +223,11 @@ ...@@ -223,9 +223,11 @@
else else
{ {
%> %>
<oneit:button value="<%= btnText %>" name="gotoPage" skin="link" cssClass="box-btn" <oneit:button value="<%= btnText %>" name="save" skin="link" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap()) .mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.mapEntry(NotificationUtils.DISPLAY_NOTIFICATION_PARAM, false)
.toMap() %>"/> .toMap() %>"/>
<% <%
} }
......
...@@ -17,6 +17,8 @@ ...@@ -17,6 +17,8 @@
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted(); Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted(); Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
boolean fromRequirements = pageNumber == "1";
%> %>
<oneit:dynIncluded> <oneit:dynIncluded>
...@@ -40,21 +42,20 @@ ...@@ -40,21 +42,20 @@
} }
%> %>
<li class="<%= pageNumber == "2" ? "active" : isCultureComplete ? "complate" : ""%>"> <li class="<%= pageNumber == "2" ? "active" : isCultureComplete ? "complate" : ""%>">
<oneit:button value=" " name="gotoPage" skin="link" disabled="<%= isCultureComplete ? "true" : "false"%>" <oneit:button value=" " name="validateApplication" 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())
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>"> .toMap() %>">
<span><%= isCultureComplete ? "<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 Preferences</div> <div class="mobile-hide">Workplace Preferences</div>
</oneit:button> </oneit:button>
</li> </li>
<li class="<%= pageNumber == "3" ? "active" : isAssesmentComplete ? "complate" : ""%>"> <li class="<%= pageNumber == "3" ? "active" : isAssesmentComplete ? "complate" : ""%>">
<oneit:button value=" " name="save" skin="link" disabled="<%= isAssesmentComplete ? "true" : "false"%>" <oneit:button value=" " name="validateApplication" 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())
.mapEntry ("restartProcess", Boolean.TRUE) .mapEntry("fromRequirements", fromRequirements)
.mapEntry(NotificationUtils.DISPLAY_NOTIFICATION_PARAM, false)
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.toMap() %>"> .toMap() %>">
<span><%= isAssesmentComplete ? "<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>
......
<%@ page extends="oneit.servlets.process.AJAXProcessJSP" %>
<%@ page import="oneit.servlets.jsp.*,oneit.servlets.orm.*,oneit.servlets.objstore.*,oneit.servlets.jsp.tabs.*,oneit.logging.*,oneit.sql.*,oneit.objstore.services.*" %>
<%@ page import="performa.orm.*,performa.orm.types.*,performa.utils.*, java.util.*, oneit.objstore.*, oneit.servlets.process.*, oneit.utils.*" %>
<%@ page import="oneit.utils.filter.Filter, oneit.objstore.rdbms.filters.EqualsFilter" %>
<%@ include file="../../../setuprequest.jsp" %>
<%! protected String getName (ServletConfig config) { return "save_assessment_criteria_answers_jsp"; } %>
<oneit:form method="POST">
<%
ORMProcessState process = (ORMProcessState)ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = ObjectTransaction.getTransaction();
Long criteriaID = Long.valueOf(request.getParameter ("criteriaID"));
boolean answerOption = Boolean.valueOf(request.getParameter ("answerOption"));
String note = request.getParameter ("note");
Long jobAppId = (Long) process.getAttribute("JobApplicationID");
JobApplication jobApplication = JobApplication.getJobApplicationByID(objTran, jobAppId);
jobApplication = (JobApplication) jobApplication.getInTransaction (objTran);
Debug.assertion (jobApplication.getObjectWriteability() == FieldWriteability.TRUE, "Must be able to edit");
AssessmentCriteria criteria = AssessmentCriteria.getAssessmentCriteriaByID(objTran, criteriaID);
AssessmentCriteriaAnswer answer = jobApplication.getAssessmentCriteriaAnswer(criteria);
if(answer == null)
{
answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(objTran).getInTransaction (objTran);
jobApplication.addToAssessmentCriteriaAnswers(answer);
answer.setAssessmentCriteria(criteria);
}
answer.setAnswer(answerOption);
answer.setNotes(note);
%>
</oneit:form>
\ No newline at end of file
#completeCulture = Please complete the culture assessment. #completeCulture = Please complete workplace preferences.
#completeAssessment = Please complete your experience.
#emailExists = An account already exists with this email address. #emailExists = An account already exists with this email address.
#emailSent = A verification email has been sent to you. Please check your email :). #emailSent = A verification email has been sent to you. Please check your email :).
#alreadyApplied = You have already applied for this job. #alreadyApplied = You have already applied for this job.
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