Commit a6786af6 by chenith Committed by Harsh Shah

Job match assessment details added to application.

parent c7a9fa82
package performa.orm;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException;
public class Answer extends BaseAnswer
{
private static final long serialVersionUID = 0L;
private static final long serialVersionUID = 0L;
private static final Integer MAX_ANSWER_NO = 7;
// This constructor should not be called
public Answer ()
......@@ -11,9 +17,41 @@ public class Answer extends BaseAnswer
// Do not add any code to this, always put it in initialiseNewObject
}
// @Override
// public String getObjectIDSpace()
// {
// return "Answer";
// }
@Override
public String getObjectIDSpace()
protected void postAnswerNoChange() throws FieldException
{
super.postAnswerNoChange();
Question rightQuestion = this.getQuestion().getRightQuestion();
if(rightQuestion!=null)
{
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion));
Answer rightAnswer = CollectionFilter.getFirstMatch(this.getJobApplication().getProfileAssessmentAnswersSet(), filter);
if(rightAnswer!=null)
{
rightAnswer.setAnswerNo(this.calculateRightAnswerNo());
}
}
}
public Integer calculateRightAnswerNo()
{
return "Answer";
if(this.getAnswerNo()!=null)
{
return MAX_ANSWER_NO - this.getAnswerNo();
}
return null;
}
}
\ No newline at end of file
package performa.orm;
import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.security.*;
import oneit.utils.*;
import oneit.utils.filter.CollectionFilter;
......@@ -98,4 +101,22 @@ public class Job extends BaseJob
}
return new Tuple.T2(candidate, safeRedirect);
}
//to get All Profile Assessment Questions
public Collection<Question> getAllProfileAssessmentQuestions()
{
return this.pipelineJob().toLevel().toFactors().toFactor().toQuestions().toQuestion().vals();
}
//to get only left Questions
public List<Question> getAllLeftQuestions()
{
Filter filter = Question.SearchByAll().andIsRightQuestion(new EqualsFilter<>(Boolean.FALSE));
return ObjstoreUtils.sort(CollectionFilter.filter(this.getAllProfileAssessmentQuestions(), filter),
new ObjectTransform[] {Question.pipesQuestion().toSection().toDescription()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
}
\ No newline at end of file
package performa.orm;
import java.util.Collection;
import java.util.Comparator;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import java.util.List;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.utils.CollectionUtils;
import oneit.utils.ObjectTransform;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException;
......@@ -28,41 +22,52 @@ public class JobApplication extends BaseJobApplication
}
public void initACAnswers()
public void initACAnswers() throws FieldException
{
for(AssessmentCriteria ac: getJob().getAssessmentCriteriasSet())
{
AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction());
try
{
answer.setJobApplication(this);
answer.setAssessmentCriteria(ac);
}
catch (StorageException | FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Error while preparing questions", this, answer);
}
answer.setJobApplication(this);
answer.setAssessmentCriteria(ac);
}
}
public void initCCAnswers()
public void initCCAnswers() throws FieldException
{
for(CultureCriteria cc: getJob().getCultureCriteriasSet())
{
CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction());
try
{
answer.setJobApplication(this);
answer.setCultureCriteria(cc);
}
catch (StorageException | FieldException ex)
answer.setJobApplication(this);
answer.setCultureCriteria(cc);
}
}
public Answer getPAAnswerOrCreate(Question question, int index) throws FieldException
{
Filter filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question));
Answer answer = CollectionFilter.getFirstMatch(getProfileAssessmentAnswersSet(), filter);
if(answer==null)
{
answer = Answer.createAnswer(getTransaction());
answer.setJobApplication(this);
answer.setQuestion(question);
if(question.getRightQuestion()!=null)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Error while preparing cc questions", this, answer);
Answer rightAnswer = Answer.createAnswer(getTransaction());
rightAnswer.setJobApplication(this);
rightAnswer.setQuestion(question);
}
}
return answer;
}
......@@ -92,14 +97,4 @@ public class JobApplication extends BaseJobApplication
{
return Boolean.FALSE;
}
public Collection<Question> getFactorQuestions()
{
Filter filter = Question.SearchByAll().andIsRightQuestion(new EqualsFilter<>(Boolean.FALSE));
return ObjstoreUtils.sort(this.pipelineJobApplication().toJob().toLevel().toFactors().toFactor().toQuestions().toQuestion(filter).vals(),
new ObjectTransform[] {Question.pipesQuestion().toSection().toDescription()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
}
\ No newline at end of file
......@@ -6,9 +6,19 @@
<oneit:dynIncluded>
<%
ObjectTransaction objTran = process.getTransaction ();
String currentPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob();
int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : 0;
List<Question> allQuestions = (List<Question>) process.getAttribute("AllQuestions");
if(allQuestions==null)
{
allQuestions = job.getAllLeftQuestions();
process.setAttribute("AllQuestions", allQuestions);
}
%>
<script>
......@@ -47,27 +57,89 @@
</div>
<div class="selection-br-line"></div>
<div class="main-sc-section main-rate-section">
<div class="rateing-title">
Rate the importance of each item below
<span>0/250</span>
</div>
<div class="rating-box-title">
A secure position at work
<%
int totNoOfQuestions = allQuestions.size();
if(questionNumber<totNoOfQuestions)
{
Answer answer = jobApplication.getPAAnswerOrCreate(allQuestions.get(questionNumber), questionNumber);
Integer selectedAnswerNo = answer.getAnswerNo();
%>
<div class="rateing-title">
Rate the importance of each item below
<span><oneit:toString value="<%= (questionNumber + 1) %>" mode="EscapeHTML"/>/<oneit:toString value="<%= totNoOfQuestions %>" mode="EscapeHTML"/></span>
</div>
<div class="rating-box-title">
<oneit:toString value="<%= answer.getQuestion().getDescription() %>" mode="EscapeHTML"/>
</div>
<div class="ratting-box">
<span>Very little importance</span>
<ul class="pagination ratting-number">
<%
for(int index=1; index<=7; index++)
{
String activeClass = CollectionUtils.equals(index, selectedAnswerNo) ? "active" : "";
%>
<li class="<%= activeClass %>"><a href="#"><oneit:toString value="<%= index %>" mode="EscapeHTML"/></a></li>
<%
}
%>
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li class="active"><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
</ul>
<span>High importance</span>
</div>
<%
}
%>
<div >
<span style="float: left">
<%
if(questionNumber>0)
{
%>
<oneit:button value="Previous" name="gotoPage" cssClass="box-btn-gray"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
.mapEntry("procParams", CollectionUtils.mapEntry("QuestionNumber", (questionNumber - 1)).toMap())
.toMap() %>"/>
<%
}
%>
</span>
<span style="float: right">
<%
if((questionNumber+1)<totNoOfQuestions)
{
%>
<oneit:button value="Next" name="gotoPage" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", currentPage)
.mapEntry("procParams", CollectionUtils.mapEntry("QuestionNumber", (questionNumber + 1)).toMap())
.toMap() %>"/>
<%
}
%>
</span>
</div>
<div class="ratting-box">
<span>Very little importance</span>
<ul class="pagination ratting-number">
<li><a href="#">1</a></li>
<li><a href="#">2</a></li>
<li><a href="#">3</a></li>
<li><a href="#">4</a></li>
<li class="active"><a href="#">5</a></li>
<li><a href="#">6</a></li>
<li><a href="#">7</a></li>
</ul>
<span>High importance</span>
<div class="auto-save">
<%
if((questionNumber)==totNoOfQuestions)
{
%>
<oneit:button value="Complete" name="gotoPage" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
.toMap() %>"/>
<%
}
%>
<div>Autosaved 1 min ago.</div>
</div>
<div class="auto-save">Autosaved 1 min ago.</div>
</div>
</div>
</oneit:form>
......
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