Commit c56556b9 by chenith Committed by Harsh Shah

Updated CultureCriteriaAnswer and Answer relationship with Candidate.

- CultureCriteriaAnswer/Answer --> Move to candidate level instead of JobApplication level.
- CultureCriteriaAnswer -- Replace CultureCriteria for each answer with CultureElement.
parent 1da6ceaf
...@@ -10,10 +10,10 @@ ...@@ -10,10 +10,10 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="answer_number" type="Long" nullable="false"/> <column name="answer_number" type="Long" nullable="false"/>
<column name="section_number" type="Long" length="11" nullable="true"/> <column name="section_number" type="Long" length="11" nullable="true"/>
<column name="job_application_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
<column name="quest_number" type="Long" length="11" nullable="true"/> <column name="quest_number" type="Long" length="11" nullable="true"/>
</NODE> </NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_job_application_id" isUnique="false"><column name="job_application_id"/></NODE> <NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
</NODE></OBJECTS> </NODE></OBJECTS>
\ No newline at end of file
...@@ -8,13 +8,11 @@ ...@@ -8,13 +8,11 @@
<column name="object_id" type="Long" nullable="false" length="11"/> <column name="object_id" type="Long" nullable="false" length="11"/>
<column name="object_last_updated_date" type="Date" nullable="false" length="22"/> <column name="object_last_updated_date" type="Date" nullable="false" length="22"/>
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="culture_criteria_id" type="Long" length="11" nullable="false"/> <column name="culture_element_id" type="Long" length="11" nullable="false"/>
<column name="selected_question_id" type="Long" length="11" nullable="false"/> <column name="selected_question_id" type="Long" length="11" nullable="false"/>
<column name="job_application_id" type="Long" length="11" nullable="false"/> <column name="candidate_id" type="Long" length="11" nullable="false"/>
</NODE> </NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_culture_criteria_id" isUnique="false"><column name="culture_criteria_id"/></NODE> <NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_job_application_id" isUnique="false"><column name="job_application_id"/></NODE>
</NODE></OBJECTS> </NODE></OBJECTS>
\ No newline at end of file
...@@ -10,7 +10,7 @@ CREATE TABLE tl_answer ( ...@@ -10,7 +10,7 @@ CREATE TABLE tl_answer (
, ,
answer_number numeric(12) NOT NULL, answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL quest_number numeric(12) NULL
); );
...@@ -24,5 +24,5 @@ ALTER TABLE tl_answer ADD ...@@ -24,5 +24,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -8,9 +8,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -8,9 +8,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date datetime DEFAULT getdate() NOT NULL , object_last_updated_date datetime DEFAULT getdate() NOT NULL ,
object_created_date datetime DEFAULT getdate() NOT NULL object_created_date datetime DEFAULT getdate() NOT NULL
, ,
culture_criteria_id numeric(12) NOT NULL, culture_element_id numeric(12) NOT NULL,
selected_question_id numeric(12) NOT NULL, selected_question_id numeric(12) NOT NULL,
job_application_id numeric(12) NOT NULL candidate_id numeric(12) NOT NULL
); );
...@@ -23,8 +23,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -23,8 +23,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer ( ...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
, ,
answer_number number(12) NOT NULL, answer_number number(12) NOT NULL,
section_number number(12) NULL, section_number number(12) NULL,
job_application_id number(12) NOT NULL, candidate_id number(12) NOT NULL,
quest_number number(12) NULL quest_number number(12) NULL
); );
...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD ...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date date DEFAULT SYSDATE NOT NULL , object_last_updated_date date DEFAULT SYSDATE NOT NULL ,
object_created_date date DEFAULT SYSDATE NOT NULL object_created_date date DEFAULT SYSDATE NOT NULL
, ,
culture_criteria_id number(12) NOT NULL, culture_element_id number(12) NOT NULL,
selected_question_id number(12) NOT NULL, selected_question_id number(12) NOT NULL,
job_application_id number(12) NOT NULL candidate_id number(12) NOT NULL
); );
...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer ( ...@@ -11,7 +11,7 @@ CREATE TABLE tl_answer (
, ,
answer_number numeric(12) NOT NULL, answer_number numeric(12) NOT NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
job_application_id numeric(12) NOT NULL, candidate_id numeric(12) NOT NULL,
quest_number numeric(12) NULL quest_number numeric(12) NULL
); );
...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD ...@@ -25,5 +25,5 @@ ALTER TABLE tl_answer ADD
CREATE INDEX idx_tl_answer_job_application_id CREATE INDEX idx_tl_answer_candidate_id
ON tl_answer (job_application_id); ON tl_answer (candidate_id);
...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer ( ...@@ -9,9 +9,9 @@ CREATE TABLE tl_culture_criteria_answer (
object_last_updated_date timestamp DEFAULT NOW() NOT NULL , object_last_updated_date timestamp DEFAULT NOW() NOT NULL ,
object_created_date timestamp DEFAULT NOW() NOT NULL object_created_date timestamp DEFAULT NOW() NOT NULL
, ,
culture_criteria_id numeric(12) NOT NULL, culture_element_id numeric(12) NOT NULL,
selected_question_id numeric(12) NOT NULL, selected_question_id numeric(12) NOT NULL,
job_application_id numeric(12) NOT NULL candidate_id numeric(12) NOT NULL
); );
...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD ...@@ -24,8 +24,5 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id CREATE INDEX idx_tl_culture_criteria_answer_candidate_id
ON tl_culture_criteria_answer (culture_criteria_id); ON tl_culture_criteria_answer (candidate_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
...@@ -45,9 +45,9 @@ public class CompleteApplicationFP extends SaveFP ...@@ -45,9 +45,9 @@ public class CompleteApplicationFP extends SaveFP
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
if(jobApplication.getAlreadyCompletedApplicationForCulture()==null) if(!jobApplication.cultureCompleted())
{ {
BusinessObjectParser.assertFieldCondition(jobApplication.getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request); BusinessObjectParser.assertFieldCondition(jobApplication.getCandidate().getCultureCriteriaAnswersCount()>0, jobApplication, jobApplication.FIELD_ObjectID, "completeCulture", exceptions, true, request);
} }
super.validate(process, submission, exceptions, params); super.validate(process, submission, exceptions, params);
......
...@@ -24,7 +24,7 @@ public class SaveAndExitCultureFP extends SaveFP ...@@ -24,7 +24,7 @@ public class SaveAndExitCultureFP extends SaveFP
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitCultureFP saving job application: ", jobApplication ); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitCultureFP saving job application: ", jobApplication );
for (CultureCriteriaAnswer answer : jobApplication.getCultureCriteriaAnswersSet()) for (CultureCriteriaAnswer answer : jobApplication.getCandidate().getCultureCriteriaAnswersSet())
{ {
if(answer.getSelectedQuestion() == null) if(answer.getSelectedQuestion() == null)
{ {
......
...@@ -24,7 +24,7 @@ public class SaveAndExitWorkStypeFP extends SaveFP ...@@ -24,7 +24,7 @@ public class SaveAndExitWorkStypeFP extends SaveFP
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP saving job application: ", jobApplication ); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1,"In SaveAndExitWorkStypeFP saving job application: ", jobApplication );
for (Answer answer : jobApplication.getProfileAssessmentAnswersSet()) for (Answer answer : jobApplication.getCandidate().getProfileAssessmentAnswersSet())
{ {
if(answer.getAnswerNo() == null) if(answer.getAnswerNo() == null)
{ {
......
package performa.form; package performa.form;
import java.util.Date;
import java.util.Map; import java.util.Map;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.business.content.Article;
import oneit.components.ParticipantInitialisationContext; import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer; import oneit.email.ConfigurableArticleTemplateEmailer;
import oneit.email.ConfigurableEmailerException; import oneit.email.ConfigurableEmailerException;
import oneit.logging.*; import oneit.logging.*;
import oneit.net.LoopbackHTTP;
import oneit.objstore.StorageException; import oneit.objstore.StorageException;
import oneit.objstore.parser.BusinessObjectParser; import oneit.objstore.parser.BusinessObjectParser;
import oneit.security.SecUser; import oneit.security.SecUser;
...@@ -18,7 +15,6 @@ import oneit.servlets.security.SessionSecUserDecorator; ...@@ -18,7 +15,6 @@ import oneit.servlets.security.SessionSecUserDecorator;
import oneit.utils.*; import oneit.utils.*;
import performa.orm.*; import performa.orm.*;
import performa.utils.Utils; import performa.utils.Utils;
import performa.utils.WebUtils;
public class VerifyIdentityFP extends ORMProcessFormProcessor public class VerifyIdentityFP extends ORMProcessFormProcessor
......
...@@ -32,7 +32,7 @@ public class Answer extends BaseAnswer ...@@ -32,7 +32,7 @@ public class Answer extends BaseAnswer
{ {
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion)); Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion));
Answer rightAnswer = CollectionFilter.getFirstMatch(getJobApplication().getProfileAssessmentAnswersSet(), filter); Answer rightAnswer = CollectionFilter.getFirstMatch(getCandidate().getProfileAssessmentAnswersSet(), filter);
if(rightAnswer!=null) if(rightAnswer!=null)
{ {
......
...@@ -9,7 +9,7 @@ ...@@ -9,7 +9,7 @@
<ATTRIB name="AnswerNo" type="Integer" dbcol="answer_number" mandatory="true"/> <ATTRIB name="AnswerNo" type="Integer" dbcol="answer_number" mandatory="true"/>
<SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" /> <SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" />
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" backreferenceName="ProfileAssessmentAnswers" mandatory="true"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" backreferenceName="ProfileAssessmentAnswers" mandatory="true"/>
<SINGLEREFERENCE name="Question" type="Question" dbcol="quest_number" /> <SINGLEREFERENCE name="Question" type="Question" dbcol="quest_number" />
</TABLE> </TABLE>
......
...@@ -41,7 +41,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -41,7 +41,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
} }
private String SELECT_COLUMNS = "{PREFIX}tl_answer.object_id as id, {PREFIX}tl_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_answer.answer_number, {PREFIX}tl_answer.section_number, {PREFIX}tl_answer.job_application_id, {PREFIX}tl_answer.quest_number, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_answer.object_id as id, {PREFIX}tl_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_answer.answer_number, {PREFIX}tl_answer.section_number, {PREFIX}tl_answer.candidate_id, {PREFIX}tl_answer.quest_number, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -94,7 +94,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -94,7 +94,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_answerPSet.containsAttrib(Answer.FIELD_AnswerNo)|| !tl_answerPSet.containsAttrib(Answer.FIELD_AnswerNo)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Section)|| !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Section)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_JobApplication)|| !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Candidate)||
!tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Question)) !tl_answerPSet.containsAttrib(Answer.SINGLEREFERENCE_Question))
{ {
// We will need to retrieve it // We will need to retrieve it
...@@ -141,11 +141,11 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -141,11 +141,11 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
throw new RuntimeException (); throw new RuntimeException ();
} }
else if (refName.equals (Answer.SINGLEREFERENCE_JobApplication)) else if (refName.equals (Answer.SINGLEREFERENCE_Candidate))
{ {
String query = "SELECT " + SELECT_COLUMNS + String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_answer " + "FROM {PREFIX}tl_answer " +
"WHERE " + SELECT_JOINS + "job_application_id = ?"; "WHERE " + SELECT_JOINS + "candidate_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false); BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
...@@ -175,10 +175,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -175,10 +175,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_answer " + "UPDATE {PREFIX}tl_answer " +
"SET answer_number = ?, section_number = ? , job_application_id = ? , quest_number = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET answer_number = ?, section_number = ? , candidate_id = ? , quest_number = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_JobApplication)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -437,7 +437,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -437,7 +437,7 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
tl_answerPSet.setAttrib(Answer.FIELD_AnswerNo, HELPER_AnswerNo.getFromRS(dummyAnswerNo, r, "answer_number")); tl_answerPSet.setAttrib(Answer.FIELD_AnswerNo, HELPER_AnswerNo.getFromRS(dummyAnswerNo, r, "answer_number"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Section, r.getObject ("section_number")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Section, r.getObject ("section_number"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_JobApplication, r.getObject ("job_application_id")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Question, r.getObject ("quest_number")); tl_answerPSet.setAttrib(Answer.SINGLEREFERENCE_Question, r.getObject ("quest_number"));
} }
...@@ -455,10 +455,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -455,10 +455,10 @@ public class AnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_answer " + "INSERT INTO {PREFIX}tl_answer " +
" (answer_number, section_number, job_application_id, quest_number, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (answer_number, section_number, candidate_id, quest_number, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " (?, ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))) .listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_JobApplication)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_AnswerNo.getForSQL(dummyAnswerNo, tl_answerPSet.getAttrib (Answer.FIELD_AnswerNo))) .listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Candidate)))).listEntry (SQLManager.CheckNull((Long)(tl_answerPSet.getAttrib (Answer.SINGLEREFERENCE_Question)))) .listEntry (objectID.longID ()).toList().toArray());
tl_answerPSet.setStatus (PersistentSetStatus.PROCESSED); tl_answerPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
package performa.orm; package performa.orm;
import java.util.Arrays;
import java.util.Calendar; import java.util.Calendar;
import java.util.Collection;
import java.util.Comparator;
import java.util.Date; import java.util.Date;
import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.objstore.MessageSource; import oneit.objstore.MessageSource;
import oneit.objstore.ObjectTransaction; import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.objstore.rdbms.filters.IsNotNullFilter;
import oneit.objstore.utils.ObjstoreUtils;
import oneit.servlets.objstore.MessageSourceDecorator; import oneit.servlets.objstore.MessageSourceDecorator;
import oneit.servlets.process.ORMProcessState; import oneit.servlets.process.ORMProcessState;
import oneit.utils.CollectionUtils; import oneit.utils.CollectionUtils;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import oneit.utils.ObjectTransform;
import oneit.utils.StringUtils; import oneit.utils.StringUtils;
import oneit.utils.filter.Filter; import oneit.utils.filter.Filter;
...@@ -78,10 +85,51 @@ public class Candidate extends BaseCandidate ...@@ -78,10 +85,51 @@ public class Candidate extends BaseCandidate
return errorMsg; return errorMsg;
} }
public TestAnalysis getTestAnalysisFor(Level level) public TestAnalysis getTestAnalysisFor(Level level)
{ {
Filter<TestAnalysis> testAnalysisFilter = TestAnalysis.SearchByAll().andLevel(new EqualsFilter(level)); Filter<TestAnalysis> testAnalysisFilter = TestAnalysis.SearchByAll().andLevel(new EqualsFilter(level));
return pipelineCandidate().toTestAnalysises(testAnalysisFilter).val(); return pipelineCandidate().toTestAnalysises(testAnalysisFilter).val();
} }
public boolean cultureCompleted(Job job)
{
int allAnswersCount = getCultureCriteriaAnswersCount();
if(allAnswersCount == job.getCultureCriteriasCount())
{
Filter filter = CultureCriteriaAnswer.SearchByAll().andSelectedQuestion(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineCandidate().toCultureCriteriaAnswers(filter).vals();
return (selectedAnswers.size() == allAnswersCount);
}
return false;
}
public boolean assessmentCompleted(Job job) //role
{
int allAnswersCount = job.getAllLeftQuestions(Arrays.asList(Question.searchAll(getTransaction()))).size();
if(allAnswersCount > 0)
{
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>());
Collection selectedAnswers = pipelineCandidate().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() >= allAnswersCount);
}
return false;
}
public List<CultureCriteriaAnswer> getSortedCultureCriteriaAnswers()
{
return ObjstoreUtils.sort(getCultureCriteriaAnswersSet(),
new ObjectTransform[] {CultureCriteriaAnswer.pipesCultureCriteriaAnswer().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
}
} }
\ No newline at end of file
...@@ -8,6 +8,8 @@ ...@@ -8,6 +8,8 @@
<MULTIPLEREFERENCE name="TestAnalysises" type="TestAnalysis" backreferenceName="Candidate" /> <MULTIPLEREFERENCE name="TestAnalysises" type="TestAnalysis" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="JobApplications" type="JobApplication" backreferenceName="Candidate" /> <MULTIPLEREFERENCE name="JobApplications" type="JobApplication" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="Candidate" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="Candidate" />
<TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE"> <TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE">
......
...@@ -5,8 +5,6 @@ ...@@ -5,8 +5,6 @@
<BUSINESSCLASS name="CultureCriteria" package="performa.orm"> <BUSINESSCLASS name="CultureCriteria" package="performa.orm">
<IMPORT value="performa.orm.types.*"/> <IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="Answers" type="CultureCriteriaAnswer" backreferenceName="CultureCriteria"/>
<TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.DESIRABLE"/> <ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" defaultValue="Importance.DESIRABLE"/>
......
package performa.orm; package performa.orm;
import java.util.SortedSet;
import oneit.utils.CollectionUtils;
public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer
{ {
...@@ -10,4 +13,28 @@ public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer ...@@ -10,4 +13,28 @@ public class CultureCriteriaAnswer extends BaseCultureCriteriaAnswer
{ {
// Do not add any code to this, always put it in initialiseNewObject // Do not add any code to this, always put it in initialiseNewObject
} }
//to get relevant culture criteria by job
public CultureCriteria getCriteriaJob(Job job)
{
CultureCriteria criteria = null;
if(job!=null)
{
SortedSet<CultureCriteria> cultureCriteriasSet = job.getCultureCriteriasSet();
for(CultureCriteria cc: cultureCriteriasSet)
{
if(CollectionUtils.equals(cc.getCultureElement(), getCultureElement()))
{
criteria = cc;
break;
}
}
}
return criteria;
}
} }
\ No newline at end of file
...@@ -6,9 +6,9 @@ ...@@ -6,9 +6,9 @@
<TABLE name="tl_culture_criteria_answer" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_culture_criteria_answer" tablePrefix="object" polymorphic="FALSE">
<SINGLEREFERENCE name="CultureCriteria" type="CultureCriteria" dbcol="culture_criteria_id" mandatory="true" backreferenceName="Answers"/> <SINGLEREFERENCE name="CultureElement" type="CultureElement" dbcol="culture_element_id" mandatory="true"/>
<SINGLEREFERENCE name="SelectedQuestion" type="CultureElementQuestion" dbcol="selected_question_id" mandatory="true" /> <SINGLEREFERENCE name="SelectedQuestion" type="CultureElementQuestion" dbcol="selected_question_id" mandatory="true" />
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/> <SINGLEREFERENCE name="Candidate" type="Candidate" dbcol="candidate_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/>
</TABLE> </TABLE>
......
...@@ -38,7 +38,7 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -38,7 +38,7 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
} }
private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria_answer.object_id as id, {PREFIX}tl_culture_criteria_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria_answer.culture_criteria_id, {PREFIX}tl_culture_criteria_answer.selected_question_id, {PREFIX}tl_culture_criteria_answer.job_application_id, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_culture_criteria_answer.object_id as id, {PREFIX}tl_culture_criteria_answer.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_culture_criteria_answer.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_culture_criteria_answer.culture_element_id, {PREFIX}tl_culture_criteria_answer.selected_question_id, {PREFIX}tl_culture_criteria_answer.candidate_id, 1 AS commasafe ";
private String SELECT_JOINS = ""; private String SELECT_JOINS = "";
public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException public BaseBusinessClass fetchByID(ObjectID id, PersistentSetCollection allPSets, RDBMSPersistenceContext context, SQLManager sqlMgr) throws SQLException, StorageException
...@@ -89,9 +89,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -89,9 +89,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
// Check for persistent sets already prefetched // Check for persistent sets already prefetched
if (false || !tl_culture_criteria_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_culture_criteria_answerPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)|| !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)|| !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)||
!tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)) !tl_culture_criteria_answerPSet.containsAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{ {
// We will need to retrieve it // We will need to retrieve it
idsToFetch.add (id.longValue()); idsToFetch.add (id.longValue());
...@@ -137,21 +137,11 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -137,21 +137,11 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
throw new RuntimeException (); throw new RuntimeException ();
} }
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)) else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate))
{ {
String query = "SELECT " + SELECT_COLUMNS + String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " + "FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "culture_criteria_id = ?"; "WHERE " + SELECT_JOINS + "candidate_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
return results;
}
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "job_application_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false); BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
...@@ -181,10 +171,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -181,10 +171,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_culture_criteria_answer " + "UPDATE {PREFIX}tl_culture_criteria_answer " +
"SET culture_criteria_id = ? , selected_question_id = ? , job_application_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET culture_element_id = ? , selected_question_id = ? , candidate_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_culture_criteria_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_culture_criteria_answer.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -441,9 +431,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -441,9 +431,9 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
tl_culture_criteria_answerPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE")); tl_culture_criteria_answerPSet.setAttrib(BaseBusinessClass.FIELD_ObjectCreated, r.getTimestamp ("CREATED_DATE"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria, r.getObject ("culture_criteria_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement, r.getObject ("culture_element_id"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion, r.getObject ("selected_question_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion, r.getObject ("selected_question_id"));
tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication, r.getObject ("job_application_id")); tl_culture_criteria_answerPSet.setAttrib(CultureCriteriaAnswer.SINGLEREFERENCE_Candidate, r.getObject ("candidate_id"));
} }
...@@ -460,10 +450,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr ...@@ -460,10 +450,10 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_culture_criteria_answer " + "INSERT INTO {PREFIX}tl_culture_criteria_answer " +
" ( culture_criteria_id, selected_question_id, job_application_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " ( culture_element_id, selected_question_id, candidate_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " +
"VALUES " + "VALUES " +
" ( ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")", " ( ?, ?, ?, ?, " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ", " + sqlMgr.getPortabilityServices ().getTimestampExpression () + ")",
CollectionUtils .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_JobApplication)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils .listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_CultureElement)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_culture_criteria_answerPSet.getAttrib (CultureCriteriaAnswer.SINGLEREFERENCE_Candidate)))) .listEntry (objectID.longID ()).toList().toArray());
tl_culture_criteria_answerPSet.setStatus (PersistentSetStatus.PROCESSED); tl_culture_criteria_answerPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -6,8 +6,6 @@ ...@@ -6,8 +6,6 @@
<IMPORT value="performa.orm.types.*"/> <IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" /> <MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="JobApplication" />
<TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/> <TRANSIENT name="AppProcessOption" type="AppProcessOption" attribHelper="EnumeratedAttributeHelper"/>
<TRANSIENT name="OverallSuitability" type="Integer"/> <TRANSIENT name="OverallSuitability" type="Integer"/>
......
...@@ -23,7 +23,7 @@ public class TestInput extends BaseTestInput ...@@ -23,7 +23,7 @@ public class TestInput extends BaseTestInput
Set<Factor> levelFactors = pipelineTestInput().toLevel().toFactors().toFactor().uniqueVals(); Set<Factor> levelFactors = pipelineTestInput().toLevel().toFactors().toFactor().uniqueVals();
Filter<FactorQuestionLink> factorFilter = FactorQuestionLink.SearchByAll().andFactor(new InFilter(levelFactors)); Filter<FactorQuestionLink> factorFilter = FactorQuestionLink.SearchByAll().andFactor(new InFilter(levelFactors));
return ObjstoreUtils.sort(pipelineTestInput().toCandidates().toJobApplications().toProfileAssessmentAnswers().toQuestion().toFactors(factorFilter).toFactor().uniqueVals(), return ObjstoreUtils.sort(pipelineTestInput().toCandidates().toProfileAssessmentAnswers().toQuestion().toFactors(factorFilter).toFactor().uniqueVals(),
new ObjectTransform[]{Factor.pipesFactor().toDescription()}, new ObjectTransform[]{Factor.pipesFactor().toDescription()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR}); new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
} }
......
...@@ -230,13 +230,13 @@ public class AnalysisEngine ...@@ -230,13 +230,13 @@ public class AnalysisEngine
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> analyseAnswers completed for Candidate ", candidate, " Level:", level); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> analyseAnswers completed for Candidate ", candidate, " Level:", level);
} }
public static Map<CultureClass, Long> getCultureFit(Set<CultureCriteriaAnswer> cultureCriteriaAnswers) public static Map<CultureClass, Long> getCultureFit(Set<CultureCriteriaAnswer> cultureCriteriaAnswers, Job job)
{ {
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getCultureFit called"); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "AnalysisEngine --> getCultureFit called");
//Preloading data //Preloading data
CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals(); CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toSelectedQuestion().toNarratives().toCultureElementRating().uniqueVals();
CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toCultureCriteria().toCultureElementRating().toCultureElement().uniqueVals(); CultureCriteriaAnswer.pipesCultureCriteriaAnswer(cultureCriteriaAnswers).toCultureElement().uniqueVals();
Map<CultureClass, Integer> scoreMap = new HashMap(); Map<CultureClass, Integer> scoreMap = new HashMap();
Map<CultureClass, Integer> maxScoreMap = new HashMap(); Map<CultureClass, Integer> maxScoreMap = new HashMap();
...@@ -247,9 +247,10 @@ public class AnalysisEngine ...@@ -247,9 +247,10 @@ public class AnalysisEngine
maxScoreMap.put(cultureClass, 0); maxScoreMap.put(cultureClass, 0);
} }
for(CultureCriteriaAnswer answer : cultureCriteriaAnswers) for(CultureCriteriaAnswer answer : cultureCriteriaAnswers)
{ {
CultureCriteria criteria = answer.getCultureCriteria(); CultureCriteria criteria = answer.getCriteriaJob(job);
if(criteria != null && criteria.getImportance() != null && criteria.getImportance() != Importance.NOT_APPLICABLE) if(criteria != null && criteria.getImportance() != null && criteria.getImportance() != Importance.NOT_APPLICABLE)
{ {
......
...@@ -148,8 +148,7 @@ ...@@ -148,8 +148,7 @@
</div> </div>
<div class="tab-pane" id="2a"> <div class="tab-pane" id="2a">
<% <%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture(); Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
......
...@@ -124,6 +124,7 @@ ...@@ -124,6 +124,7 @@
for(JobApplication jobApplication : sortedApplications) for(JobApplication jobApplication : sortedApplications)
{ {
Candidate candidate = jobApplication.getCandidate();
String appID = "app-id-" + jobApplication.getID().toString(); String appID = "app-id-" + jobApplication.getID().toString();
%> %>
<div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> "> <div class="<%= "appl-c-box " + (i == 0 ? " cb-one" : "")%> ">
...@@ -137,7 +138,7 @@ ...@@ -137,7 +138,7 @@
<div class="checkbox-list"> <div class="checkbox-list">
<input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" > <input type="checkbox" name="IsSelected" value="<%= jobApplication.getObjectID().toString() %>" id="<%= appID %>" class="applicant" >
<label for="<%= appID %>"> <label for="<%= appID %>">
<oneit:toString value="<%= jobApplication.getCandidate() %>" mode="EscapeHTML" /> <oneit:toString value="<%= candidate %>" mode="EscapeHTML" />
</label> </label>
</div> </div>
</div> </div>
...@@ -185,8 +186,7 @@ ...@@ -185,8 +186,7 @@
</div> </div>
<div class="detail-box"> <div class="detail-box">
<% <%
JobApplication completeaApp = jobApplication.getAlreadyCompletedApplicationForCulture(); Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(candidate.getCultureCriteriaAnswersSet(), job);
Map<CultureClass, Long> cultureFitData = AnalysisEngine.getCultureFit(completeaApp!=null ? completeaApp.getCultureCriteriaAnswersSet() : jobApplication.getCultureCriteriaAnswersSet());
for(CultureClass cClass: cultureFitData.keySet()) for(CultureClass cClass: cultureFitData.keySet())
{ {
......
...@@ -27,25 +27,25 @@ ...@@ -27,25 +27,25 @@
jobApplication = JobApplication.createNewApplication(candidate, job); jobApplication = JobApplication.createNewApplication(candidate, job);
} }
//to store already completed culture or role data // //to store already completed culture or role data
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
//
if(alreadyCompletedCulture==null) // if(alreadyCompletedCulture==null)
{ // {
alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null; // alreadyCompletedCulture = jobApplication.getAlreadyCompletedApplicationForCulture()!=null;
process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture); // process.setAttribute("AlreadyCompletedCulture", alreadyCompletedCulture);
} // }
//
if(alreadyCompletedRole==null) // if(alreadyCompletedRole==null)
{ // {
alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null; // alreadyCompletedRole = jobApplication.getAlreadyCompletedApplicationForRole()!=null;
process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole); // process.setAttribute("AlreadyCompletedRole", alreadyCompletedRole);
} // }
Boolean isSelectionComplete = jobApplication.selectionCompleted(); Boolean isSelectionComplete = jobApplication.selectionCompleted();
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(!jobApplication.isIncludeAssessmentCriteria()) if(!jobApplication.isIncludeAssessmentCriteria())
......
...@@ -12,11 +12,11 @@ ...@@ -12,11 +12,11 @@
String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String thirdPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria(); boolean includeAssessment = jobApplication.isIncludeAssessmentCriteria();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ Boolean isSelectionComplete = jobApplication.selectionCompleted(); //REQ
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
%> %>
<oneit:dynIncluded> <oneit:dynIncluded>
......
...@@ -10,6 +10,7 @@ ...@@ -10,6 +10,7 @@
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();
Candidate candidate = jobApplication.getCandidate();
int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber(); int questionNumber = process.getAttribute("QuestionNumber")!= null ? (int) process.getAttribute("QuestionNumber") : jobApplication.getQuestionNumber();
int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber(); int actualNumber = process.getAttribute("ActualNumber")!= null ? (int) process.getAttribute("ActualNumber") : jobApplication.getActualQuestionNumber();
List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions"); List<Question> totalQuestions = (List<Question>) process.getAttribute("TotalQuestions");
......
...@@ -12,10 +12,10 @@ ...@@ -12,10 +12,10 @@
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page"); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page");
exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey(); exitPage = exitPage + "&id=" + job.getID() + "&key=" + job.getRandomKey();
Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture"); // Boolean alreadyCompletedCulture = (Boolean) process.getAttribute("AlreadyCompletedCulture");
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isCultureComplete = jobApplication.cultureCompleted() || alreadyCompletedCulture; Boolean isCultureComplete = jobApplication.cultureCompleted();
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
boolean toRedirect = jobApplication.createAssessmentCriteriaObjects(); boolean toRedirect = jobApplication.createAssessmentCriteriaObjects();
if(isCultureComplete && isAssesmentComplete) if(isCultureComplete && isAssesmentComplete)
......
...@@ -10,11 +10,12 @@ ...@@ -10,11 +10,12 @@
String nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment"); String nextPage = WebUtils.getSamePageInRenderMode(request, "JobMatchAssessment");
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
Job job = jobApplication.getJob(); Job job = jobApplication.getJob();
int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : jobApplication.getCultureCriteriaAnswersCount(); Candidate candidate = jobApplication.getCandidate();
int cultureQuestionNo = process.getAttribute("CultureQuestionNo")!= null ? (int) process.getAttribute("CultureQuestionNo") : candidate.getCultureCriteriaAnswersCount();
String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey(); String exitPage = WebUtils.getArticleLink(request, objTran, WebUtils.APPLY_JOB, "Page") + "&id=" + job.getID() + "&key=" + job.getRandomKey();
boolean toRedirect = jobApplication.createCultureCriteriaObjects(); boolean toRedirect = jobApplication.createCultureCriteriaObjects();
Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole"); // Boolean alreadyCompletedRole = (Boolean) process.getAttribute("AlreadyCompletedRole");
Boolean isAssesmentComplete = jobApplication.assessmentCompleted() || alreadyCompletedRole; Boolean isAssesmentComplete = jobApplication.assessmentCompleted();
if(isAssesmentComplete) if(isAssesmentComplete)
{ {
...@@ -28,7 +29,7 @@ ...@@ -28,7 +29,7 @@
%><%@include file="/saferedirect.jsp" %><% %><%@include file="/saferedirect.jsp" %><%
} }
int total = jobApplication.getCultureCriteriaAnswersCount(); int total = candidate.getCultureCriteriaAnswersCount();
boolean isLast = total == cultureQuestionNo; boolean isLast = total == cultureQuestionNo;
if(isLast) if(isLast)
...@@ -36,7 +37,7 @@ ...@@ -36,7 +37,7 @@
cultureQuestionNo = total -1; cultureQuestionNo = total -1;
} }
CultureCriteriaAnswer answer = jobApplication.getSortedCultureCriteriaAnswers().get(cultureQuestionNo); CultureCriteriaAnswer answer = candidate.getSortedCultureCriteriaAnswers().get(cultureQuestionNo);
String numberText = (cultureQuestionNo + 1) + "/" + total; String numberText = (cultureQuestionNo + 1) + "/" + total;
process.setAttribute("JobApplication", jobApplication); process.setAttribute("JobApplication", jobApplication);
...@@ -93,7 +94,7 @@ ...@@ -93,7 +94,7 @@
FormTag applicationForm = FormTag.getActiveFormTag(request); FormTag applicationForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = applicationForm.getFormBuilder(); FormBuilder formBuilder = applicationForm.getFormBuilder();
CultureCriteria criteria = answer.getCultureCriteria(); CultureCriteria criteria = answer.getCriteriaJob(job);
Collection<CultureElementQuestion> questions = criteria.pipelineCultureCriteria().toCultureElement().toQuestions().vals(); Collection<CultureElementQuestion> questions = criteria.pipelineCultureCriteria().toCultureElement().toQuestions().vals();
String optionKey = WebUtils.getRadioSingleAssocKey(request, answer, CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion); String optionKey = WebUtils.getRadioSingleAssocKey(request, answer, CultureCriteriaAnswer.SINGLEREFERENCE_SelectedQuestion);
String formValue = formBuilder.fieldValue (optionKey, answer.getSelectedQuestion() == null ? "" : String.valueOf(answer.getSelectedQuestionID())); String formValue = formBuilder.fieldValue (optionKey, answer.getSelectedQuestion() == null ? "" : String.valueOf(answer.getSelectedQuestionID()));
......
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_answer</tableName>
<column name="candidate_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_answer" indexName="idx_tl_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!-- @AutoRun -->
<OBJECTS name="" xmlns:oneit="http://www.1iT.com.au">
<NODE name="Script" factory="Vector">
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_culture_criteria_answer</tableName>
<column name="culture_element_id" type="Long" length="11" nullable="true"/>
<column name="candidate_id" type="Long" length="11" nullable="true"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_culture_criteria_answer" indexName="idx_tl_culture_criteria_answer_candidate_id" isUnique="false"><column name="candidate_id"/></NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
-- @AutoRun
UPDATE tl_answer AS an
SET candidate_id = ja.candidate_id
FROM tl_job_application AS ja
WHERE an.job_application_id = ja.object_id;
UPDATE tl_culture_criteria_answer AS ca
SET candidate_id = ja.candidate_id
FROM tl_job_application AS ja
WHERE ca.job_application_id = ja.object_id;
UPDATE tl_culture_criteria_answer AS ca
SET culture_element_id = cc.culture_element_id
FROM tl_culture_criteria AS cc
WHERE ca.culture_criteria_id = cc.object_id;
ALTER TABLE tl_answer ALTER COLUMN candidate_id SET NOT NULL;
ALTER TABLE tl_culture_criteria_answer ALTER COLUMN candidate_id SET NOT NULL;
ALTER TABLE tl_culture_criteria_answer ALTER COLUMN culture_element_id SET NOT NULL;
DROP INDEX idx_tl_culture_criteria_answer_job_application_id;
ALTER TABLE tl_answer DROP COLUMN job_application_id;
ALTER TABLE tl_culture_criteria_answer DROP COLUMN job_application_id;
ALTER TABLE tl_culture_criteria_answer DROP COLUMN culture_criteria_id;
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