Commit a6786af6 by chenith Committed by Harsh Shah

Job match assessment details added to application.

parent c7a9fa82
package performa.orm; 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 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 // This constructor should not be called
public Answer () public Answer ()
...@@ -11,9 +17,41 @@ public class Answer extends BaseAnswer ...@@ -11,9 +17,41 @@ public class Answer extends BaseAnswer
// Do not add any code to this, always put it in initialiseNewObject // Do not add any code to this, always put it in initialiseNewObject
} }
// @Override
// public String getObjectIDSpace()
// {
// return "Answer";
// }
@Override @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; package performa.orm;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator;
import java.util.List;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.ObjectStatus; import oneit.objstore.ObjectStatus;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.security.*; import oneit.security.*;
import oneit.utils.*; import oneit.utils.*;
import oneit.utils.filter.CollectionFilter; import oneit.utils.filter.CollectionFilter;
...@@ -98,4 +101,22 @@ public class Job extends BaseJob ...@@ -98,4 +101,22 @@ public class Job extends BaseJob
} }
return new Tuple.T2(candidate, safeRedirect); 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; package performa.orm;
import java.util.Collection; import java.util.Collection;
import java.util.Comparator; import java.util.List;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea; import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter; 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.CollectionFilter;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
...@@ -28,41 +22,52 @@ public class JobApplication extends BaseJobApplication ...@@ -28,41 +22,52 @@ public class JobApplication extends BaseJobApplication
} }
public void initACAnswers() public void initACAnswers() throws FieldException
{ {
for(AssessmentCriteria ac: getJob().getAssessmentCriteriasSet()) for(AssessmentCriteria ac: getJob().getAssessmentCriteriasSet())
{ {
AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction()); AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction());
try answer.setJobApplication(this);
{ answer.setAssessmentCriteria(ac);
answer.setJobApplication(this);
answer.setAssessmentCriteria(ac);
}
catch (StorageException | FieldException ex)
{
LogMgr.log(LOG, LogLevel.PROCESSING1, "Error while preparing questions", this, answer);
}
} }
} }
public void initCCAnswers() public void initCCAnswers() throws FieldException
{ {
for(CultureCriteria cc: getJob().getCultureCriteriasSet()) for(CultureCriteria cc: getJob().getCultureCriteriasSet())
{ {
CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction()); CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction());
try answer.setJobApplication(this);
{ answer.setCultureCriteria(cc);
answer.setJobApplication(this); }
answer.setCultureCriteria(cc); }
}
catch (StorageException | FieldException ex)
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 ...@@ -92,14 +97,4 @@ public class JobApplication extends BaseJobApplication
{ {
return Boolean.FALSE; 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 @@ ...@@ -6,9 +6,19 @@
<oneit:dynIncluded> <oneit:dynIncluded>
<% <%
ObjectTransaction objTran = process.getTransaction (); ObjectTransaction objTran = process.getTransaction ();
String currentPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication"); String nextPage = WebUtils.getSamePageInRenderMode(request, "SubmitApplication");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob(); 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> <script>
...@@ -47,27 +57,89 @@ ...@@ -47,27 +57,89 @@
</div> </div>
<div class="selection-br-line"></div> <div class="selection-br-line"></div>
<div class="main-sc-section main-rate-section"> <div class="main-sc-section main-rate-section">
<div class="rateing-title"> <%
Rate the importance of each item below int totNoOfQuestions = allQuestions.size();
<span>0/250</span>
</div> if(questionNumber<totNoOfQuestions)
<div class="rating-box-title"> {
A secure position at work 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>
<div class="ratting-box"> <div class="auto-save">
<span>Very little importance</span> <%
<ul class="pagination ratting-number"> if((questionNumber)==totNoOfQuestions)
<li><a href="#">1</a></li> {
<li><a href="#">2</a></li> %>
<li><a href="#">3</a></li> <oneit:button value="Complete" name="gotoPage" cssClass="box-btn"
<li><a href="#">4</a></li> requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
<li class="active"><a href="#">5</a></li> .mapEntry("procParams", CollectionUtils.mapEntry("JobApplication", jobApplication).toMap())
<li><a href="#">6</a></li> .toMap() %>"/>
<li><a href="#">7</a></li> <%
</ul> }
<span>High importance</span> %>
<div>Autosaved 1 min ago.</div>
</div> </div>
<div class="auto-save">Autosaved 1 min ago.</div>
</div> </div>
</div> </div>
</oneit:form> </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