Commit d704e5ff by Nilu

C002, Auto save.

parent 9ed66a9d
......@@ -59,11 +59,19 @@ public class CompleteApplicationFP extends SaveFP
public void validate(ORMProcessState process, SubmissionDetails submission, MultiException exceptions, Map params) throws StorageException
{
HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
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);
......
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
}
public AssessmentCriteriaAnswer getAssessmentCriteriaAnswer(AssessmentCriteria criteria)
{
Filter<AssessmentCriteriaAnswer> filter = AssessmentCriteriaAnswer.SearchByAll().andAssessmentCriteria(new EqualsFilter<>(criteria));
return pipelineJobApplication().toAssessmentCriteriaAnswers(filter).val();
}
public boolean selectionCompleted() //req
{
if(getJob()!=null && getJob().getIncludeAssessmentCriteria()!=Boolean.TRUE)
......
......@@ -339,7 +339,7 @@ public class Utils
{
SecUser secUser = SecUser.searchNAME(objTran, email.toLowerCase());
if(isCandidate)
if(isCandidate && secUser != null)
{
Candidate candidate = secUser.getExtension(Candidate.REFERENCE_Candidate);
......
......@@ -7,6 +7,7 @@
<ApplicantAccountCreatedEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="ApplicantAccountCreatedMail"/>
</FORM>
<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="*.saveAndExitCulture" factory="Participant" class="performa.form.SaveAndExitCultureFP"/>
<FORM name="*.saveAndExitWorkStyle" factory="Participant" class="performa.form.SaveAndExitWorkStypeFP"/>
......@@ -43,4 +44,8 @@
<NODE name="save_job_match_answers_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE>
<NODE name="save_assessment_criteria_answers_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE>
</OBJECTS>
......@@ -223,9 +223,11 @@
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)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("restartProcess", Boolean.TRUE)
.mapEntry(NotificationUtils.DISPLAY_NOTIFICATION_PARAM, false)
.toMap() %>"/>
<%
}
......
......@@ -17,6 +17,8 @@
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
boolean fromRequirements = pageNumber == "1";
%>
<oneit:dynIncluded>
......@@ -40,21 +42,20 @@
}
%>
<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)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>">
<span><%= isCultureComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "2" : "1")%></span>
<div class="mobile-hide">Workplace Preferences</div>
</oneit:button>
</li>
<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)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.mapEntry ("restartProcess", Boolean.TRUE)
.mapEntry(NotificationUtils.DISPLAY_NOTIFICATION_PARAM, false)
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.mapEntry("fromRequirements", fromRequirements)
.toMap() %>">
<span><%= isAssesmentComplete ? "<img src=\"images/right-mark.png\" />" : (includeAssessment ? "3" : "2")%></span>
<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.
#emailSent = A verification email has been sent to you. Please check your email :).
#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