Commit 4d8872f4 by nilu

S43014153 # Matchd / Talentology - No Plan [Enhancement] #Including diversity…

S43014153 # Matchd / Talentology - No Plan [Enhancement] #Including diversity questions in applicant process
parent bad2fe18
......@@ -39,16 +39,28 @@ public class SaveDiversityAnswersFP extends SaveFP
{
CandidateDiversityAnswer diversityAnswer = candidate.getDiversityAnswerByQuestion(htQuestion.getQuestion());
if(htQuestion.getQuestion().getMultipleAnswers())
{
for(AnswerOption answer : diversityAnswer.getAnswersSet())
{
if(!answer.isTrue(answer.getIsSelected()))
{
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveDiversityAnswersFP deleting AnswerOption : ", answer );
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveDiversityAnswersFP for multiple answer questions deleting AnswerOption : ", answer );
answer.delete();
}
}
}
else
{
AnswerOption answerOption = AnswerOption.createAnswerOption(process.getTransaction());
diversityAnswer.addToAnswers(answerOption);
answerOption.setAnswer(diversityAnswer.getAnswerOption());
answerOption.setIsSelected(Boolean.TRUE);
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveDiversityAnswersFP created AnswerOption : ", answerOption);
}
}
return super.processForm(process, submission, params);
}
......@@ -64,10 +76,18 @@ public class SaveDiversityAnswersFP extends SaveFP
for(HTDiversityQuestion htQuestion : job.getDiversityQuestions())
{
CandidateDiversityAnswer diversityAnswer = candidate.getDiversityAnswerByQuestion(htQuestion.getQuestion());
if(htQuestion.getQuestion().getMultipleAnswers())
{
Filter<AnswerOption> filter = AnswerOption.SearchByAll().andIsSelected(new EqualsFilter<>(Boolean.TRUE));
BusinessObjectParser.assertFieldCondition(diversityAnswer.pipelineCandidateDiversityAnswer().toAnswers(filter).uniqueVals().size() >= 1 , diversityAnswer, CandidateDiversityAnswer.MULTIPLEREFERENCE_Answers, "atleastOneAnswer", exceptions, true, request);
}
else
{
BusinessObjectParser.assertFieldCondition(diversityAnswer.getAnswerOption() != null , diversityAnswer, CandidateDiversityAnswer.SINGLEREFERENCE_AnswerOption, "mandatory", exceptions, true, request);
}
}
super.validate(process, submission, exceptions, params);
}
......
package performa.orm;
import oneit.utils.CollectionUtils;
public class CandidateDiversityAnswer extends BaseCandidateDiversityAnswer
{
......@@ -12,24 +10,4 @@ public class CandidateDiversityAnswer extends BaseCandidateDiversityAnswer
{
// Do not add any code to this, always put it in initialiseNewObject
}
public CandidateDiversityAnswer getAnswerForQuestion(HTDiversityQuestion htQuestion)
{
CandidateDiversityAnswer answer = null;
if(htQuestion != null)
{
// for(CultureCriteria cc: htQuestion.getQ)
// {
// if(CollectionUtils.equals(cc.getCultureElement(), getCultureElement()))
// {
// criteria = cc;
//
// break;
// }
// }
}
return answer;
}
}
\ No newline at end of file
......@@ -4,6 +4,8 @@
<BUSINESSCLASS name="CandidateDiversityAnswer" package="performa.orm">
<TRANSIENTSINGLE name="AnswerOption" type="DiversityAnswer" />
<MULTIPLEREFERENCE name="Answers" type="AnswerOption" backreferenceName="CandidateAnswer" />
<TABLE name="tl_candidate_diversity_answer" tablePrefix="object" polymorphic="FALSE">
......
......@@ -228,6 +228,8 @@ public class JobApplication extends BaseJobApplication
{
CandidateDiversityAnswer answer = CandidateDiversityAnswer.createCandidateDiversityAnswer(getTransaction());
if(question.getMultipleAnswers())
{
for(DiversityAnswer diversityAnswer : question.getAnswersSet())
{
AnswerOption answerOption = AnswerOption.createAnswerOption(getTransaction());
......@@ -235,6 +237,7 @@ public class JobApplication extends BaseJobApplication
answer.addToAnswers(answerOption);
answerOption.setAnswer(diversityAnswer);
}
}
candidate.addToDiversityAnswers(answer);
answer.setQuestion(question);
......@@ -246,6 +249,21 @@ public class JobApplication extends BaseJobApplication
return safeRedirect;
}
public void setDiversityAnswerOptions() throws StorageException, FieldException
{
for(CandidateDiversityAnswer candidateAnswer : pipelineJobApplication().toCandidate().toDiversityAnswers().uniqueVals())
{
if(!candidateAnswer.getQuestion().getMultipleAnswers())
{
AnswerOption answerOption = candidateAnswer.pipelineCandidateDiversityAnswer().toAnswers().val();
if(answerOption != null && answerOption.getAnswer() != null && answerOption.isTrue(answerOption.getIsSelected()))
{
candidateAnswer.setAnswerOption(answerOption.getAnswer());
}
}
}
}
public Answer getAnswerForQuestion(Question question) throws FieldException
{
......
......@@ -23,6 +23,11 @@
Debug.assertion(jobApplication != null, "Invalid Job Application in applicant portal");
if(jobApplication.diversityCompleted())
{
response.sendRedirect(WebUtils.getSamePageInRenderMode(request, "VerificationSent") + "&JobID=" + job.getID());
}
Boolean isSelectionComplete = jobApplication.selectionCompleted();
Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
......@@ -56,6 +61,8 @@
%><%@include file="/saferedirect.jsp" %><%
}
jobApplication.setDiversityAnswerOptions();
process.setAttribute("JobApplication", jobApplication);
%>
<oneit:form name="diversity" method="post" enctype="multipart/form-data">
......@@ -89,18 +96,27 @@
<div class="main-verify-identity">
<div class="main-box-layout main-verify-step-2">
<%
FormTag applicationForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = applicationForm.getFormBuilder();
for(HTDiversityQuestion question : job.getDiversityQuestions())
{
DiversityQuestion originalQuestion = question.getQuestion();
CandidateDiversityAnswer candidateAnswer = candidate.getDiversityAnswerByQuestion(originalQuestion);
// not showing question if already answered
if(candidateAnswer.pipelineCandidateDiversityAnswer().toAnswers(AnswerOption.SearchByAll().andIsSelected(new EqualsFilter<>(Boolean.TRUE))).uniqueVals().size() >= 1)
{
continue;
}
%>
<div class="form-group text-left">
<label><%= question.getQuestionText() %></label>
<%
for(AnswerOption answer : candidateAnswer.getAnswersSet())
{
if(originalQuestion.getMultipleAnswers())
{
for(AnswerOption answer : candidateAnswer.getAnswersSet())
{
%>
<div class="styled_checkboxes">
<div class="checkbox checkbox-primary">
......@@ -114,14 +130,31 @@
</div>
<%
}
}
else
{
String optionKey = WebUtils.getRadioSingleAssocKey(request, candidateAnswer, CandidateDiversityAnswer.SINGLEREFERENCE_AnswerOption);
String formValue = formBuilder.fieldValue (optionKey, candidateAnswer.getAnswerOption() == null ? "" : String.valueOf(candidateAnswer.getAnswerOptionID()));
%>
<div class="radio radio-primary second-radio-primary full-width">
<%--<div class="radio radio-primary second-radio-primary full-width">
<input type="radio" name="<%= candidateAnswer.getObjectID() %>" value="<%= answer.getIsSelected() %>" id="<%= answer.getObjectID() %>"/>
<label for="<%= answer.getObjectID() %>">
<%= answer.getAnswer().getAnswer() %>
</label>
</div>--%>
<%
for(DiversityAnswer diversityAnswer : originalQuestion.getAnswersSet())
{
String answerId = String.valueOf(diversityAnswer.getID().longID());
String selectedStr = (CollectionUtils.equals(answerId, formValue) ? "checked" : "");
%>
<div class="radio radio-primary second-radio-primary full-width">
<input type="radio" name="<%= optionKey %>" id="<%= answerId %>" class="element_rating_radio" value="<%= answerId %>" <%= selectedStr %>>
<label for="<%= answerId %>">
<oneit:toString value="<%= diversityAnswer.getAnswer() %>" mode="EscapeHTML" nullValue="-"/>
</label>
</div>
<%
}
......
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