Commit ad6d3de0 by Harsh Shah

Review changes

parent 5348c027
......@@ -14,6 +14,8 @@
<column name="job_application_id" type="Long" length="11" nullable="false"/>
</NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_assessment_criteria_answer" indexName="idx_tl_assessment_criteria_answer_assessment_criteria_id" isUnique="false"><column name="assessment_criteria_id"/></NODE>
<NODE name="INDEX" factory="Participant" class="oneit.sql.transfer.DefineIndexOperation" tableName="tl_assessment_criteria_answer" indexName="idx_tl_assessment_criteria_answer_job_application_id" isUnique="false"><column name="job_application_id"/></NODE>
</NODE></OBJECTS>
\ No newline at end of file
......@@ -13,6 +13,8 @@
<column name="job_application_id" type="Long" length="11" nullable="false"/>
</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_job_application_id" isUnique="false"><column name="job_application_id"/></NODE>
</NODE></OBJECTS>
\ No newline at end of file
......@@ -24,5 +24,8 @@ ALTER TABLE tl_assessment_criteria_answer ADD
CREATE INDEX idx_tl_assessment_criteria_answer_assessment_criteria_id
ON tl_assessment_criteria_answer (assessment_criteria_id);
CREATE INDEX idx_tl_assessment_criteria_answer_job_application_id
ON tl_assessment_criteria_answer (job_application_id);
......@@ -23,5 +23,8 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
......@@ -25,5 +25,8 @@ ALTER TABLE tl_assessment_criteria_answer ADD
CREATE INDEX idx_tl_assessment_criteria_answer_assessment_criteria_id
ON tl_assessment_criteria_answer (assessment_criteria_id);
CREATE INDEX idx_tl_assessment_criteria_answer_job_application_id
ON tl_assessment_criteria_answer (job_application_id);
......@@ -24,5 +24,8 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
......@@ -25,5 +25,8 @@ ALTER TABLE tl_assessment_criteria_answer ADD
CREATE INDEX idx_tl_assessment_criteria_answer_assessment_criteria_id
ON tl_assessment_criteria_answer (assessment_criteria_id);
CREATE INDEX idx_tl_assessment_criteria_answer_job_application_id
ON tl_assessment_criteria_answer (job_application_id);
......@@ -24,5 +24,8 @@ ALTER TABLE tl_culture_criteria_answer ADD
CREATE INDEX idx_tl_culture_criteria_answer_culture_criteria_id
ON tl_culture_criteria_answer (culture_criteria_id);
CREATE INDEX idx_tl_culture_criteria_answer_job_application_id
ON tl_culture_criteria_answer (job_application_id);
......@@ -12,16 +12,6 @@ import performa.orm.Job;
public class SignInCandidateFP extends NavigationFP
{
@Override
public SuccessfulResult processForm(SubmissionDetails submission, Map params) throws BusinessException
{
HttpServletRequest request = submission.getRequest();
Job job = (Job) request.getAttribute("Job");
return super.processForm(submission, params);
}
@Override
protected Map validate(SubmissionDetails submission, MultiException exceptions)
{
HttpServletRequest request = submission.getRequest();
......
......@@ -16,30 +16,26 @@ public class Answer extends BaseAnswer
{
// Do not add any code to this, always put it in initialiseNewObject
}
// @Override
// public String getObjectIDSpace()
// {
// return "Answer";
// }
@Override
protected void postAnswerNoChange() throws FieldException
{
super.postAnswerNoChange();
Question rightQuestion = this.getQuestion().getRightQuestion();
if(rightQuestion!=null)
if(getQuestion() != null)
{
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion));
Answer rightAnswer = CollectionFilter.getFirstMatch(this.getJobApplication().getProfileAssessmentAnswersSet(), filter);
if(rightAnswer!=null)
Question rightQuestion = getQuestion().getRightQuestion();
if(rightQuestion != null)
{
rightAnswer.setAnswerNo(this.calculateRightAnswerNo());
Filter<Answer> filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(rightQuestion));
Answer rightAnswer = CollectionFilter.getFirstMatch(getJobApplication().getProfileAssessmentAnswersSet(), filter);
if(rightAnswer!=null)
{
rightAnswer.setAnswerNo(calculateRightAnswerNo());
}
}
}
}
......@@ -47,11 +43,10 @@ public class Answer extends BaseAnswer
public Integer calculateRightAnswerNo()
{
if(this.getAnswerNo()!=null)
if(getAnswerNo()!=null)
{
return MAX_ANSWER_NO - this.getAnswerNo();
return MAX_ANSWER_NO - getAnswerNo();
}
return null;
}
}
\ No newline at end of file
......@@ -5,6 +5,8 @@
<BUSINESSCLASS name="AssessmentCriteria" package="performa.orm">
<IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="Answers" type="AssessmentCriteriaAnswer" backreferenceName="AssessmentCriteria"/>
<TABLE name="tl_assessment_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Name" type="String" dbcol="name" length="200" mandatory="true"/>
......
......@@ -16,8 +16,19 @@ public class AssessmentCriteriaAnswer extends BaseAssessmentCriteriaAnswer
@Override
public boolean filterCriteriaType(CriteriaType CriteriaType) throws StorageException
public boolean filterCriteriaType(CriteriaType criteriaType) throws StorageException
{
return Boolean.TRUE;
return checkCriteriaTypeMatches(criteriaType);
}
@Override
public boolean filterByCriteriaType(CriteriaType criteriaType) throws StorageException
{
return checkCriteriaTypeMatches(criteriaType);
}
private boolean checkCriteriaTypeMatches(CriteriaType criteriaType)
{
return (criteriaType == null ? true : (getAssessmentCriteria() != null && (getAssessmentCriteria().getCriteriaType() == criteriaType))); //Should bypass condition if input param is null
}
}
\ No newline at end of file
......@@ -10,18 +10,18 @@
<ATTRIB name="Answer" type="Boolean" dbcol="answer" mandatory="true"/>
<ATTRIB name="Notes" type="String" dbcol="notes"/>
<SINGLEREFERENCE name="AssessmentCriteria" type="AssessmentCriteria" dbcol="assessment_criteria_id" mandatory="true" />
<SINGLEREFERENCE name="AssessmentCriteria" type="AssessmentCriteria" dbcol="assessment_criteria_id" mandatory="true" backreferenceName="Answers"/>
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" mandatory="true" backreferenceName="AssessmentCriteriaAnswers"/>
</TABLE>
<SEARCH type="All" paramFilter="tl_assessment_criteria_answer.object_id is not null" orderBy="tl_assessment_criteria_answer.object_id" />
<SEARCH type="CriteriaType" paramFilter="tl_assessment_criteria_answer.object_id is not null"
orderBy="tl_assessment_criteria_answer.object_id" checkTXObjects="TRUE">
<SEARCH type="CriteriaType" paramFilter="tl_assessment_criteria_answer.object_id is not null" orderBy="tl_assessment_criteria_answer.object_id"
checkTXObjects="TRUE" allowByFilter="TRUE">
<TABLE name="tl_assessment_criteria" join="tl_assessment_criteria.object_id = tl_assessment_criteria_answer.assessment_criteria_id"/>
<PARAM name="CriteriaType" type="CriteriaType" paramFilter="tl_assessment_criteria.assessment_type >= ${CriteriaType}" />
<PARAM name="CriteriaType" type="CriteriaType" paramFilter="tl_assessment_criteria.assessment_type = ${CriteriaType}" />
</SEARCH>
</BUSINESSCLASS>
......
......@@ -145,6 +145,16 @@ public class AssessmentCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{
throw new RuntimeException ();
}
else if (refName.equals (AssessmentCriteriaAnswer.SINGLEREFERENCE_AssessmentCriteria))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_assessment_criteria_answer " +
"WHERE " + SELECT_JOINS + "assessment_criteria_id = ?";
BaseBusinessClass[] results = loadQuery (allPSets, sqlMgr, context, query, new Object[] { _objectID.longID () }, null, false);
return results;
}
else if (refName.equals (AssessmentCriteriaAnswer.SINGLEREFERENCE_JobApplication))
{
String query = "SELECT " + SELECT_COLUMNS +
......@@ -442,7 +452,7 @@ public class AssessmentCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
if (criteria.containsKey("CriteriaType"))
{
preFilter += " AND (tl_assessment_criteria.assessment_type >= ${CriteriaType}) ";
preFilter += " AND (tl_assessment_criteria.assessment_type = ${CriteriaType}) ";
preFilter += "";
}
......
......@@ -43,6 +43,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
public static final String FIELD_Answer = "Answer";
public static final String FIELD_Notes = "Notes";
public static final String SINGLEREFERENCE_AssessmentCriteria = "AssessmentCriteria";
public static final String BACKREF_AssessmentCriteria = "";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication";
public static final String BACKREF_JobApplication = "";
......@@ -85,6 +86,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
try
{
String tmp_AssessmentCriteria = AssessmentCriteria.BACKREF_Answers;
String tmp_JobApplication = JobApplication.BACKREF_AssessmentCriteriaAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
......@@ -112,6 +114,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Answers");
metaInfo.put ("dbcol", "assessment_criteria_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "AssessmentCriteria");
......@@ -212,7 +215,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
{
super._initialiseAssociations ();
_AssessmentCriteria = new SingleAssociation<AssessmentCriteriaAnswer, AssessmentCriteria> (this, SINGLEREFERENCE_AssessmentCriteria, null, AssessmentCriteria.REFERENCE_AssessmentCriteria, "tl_assessment_criteria_answer");
_AssessmentCriteria = new SingleAssociation<AssessmentCriteriaAnswer, AssessmentCriteria> (this, SINGLEREFERENCE_AssessmentCriteria, AssessmentCriteria.MULTIPLEREFERENCE_Answers, AssessmentCriteria.REFERENCE_AssessmentCriteria, "tl_assessment_criteria_answer");
_JobApplication = new SingleAssociation<AssessmentCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_AssessmentCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_assessment_criteria_answer");
}
......@@ -223,7 +226,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
{
super.initialiseReference ();
_AssessmentCriteria = new SingleAssociation<AssessmentCriteriaAnswer, AssessmentCriteria> (this, SINGLEREFERENCE_AssessmentCriteria, null, AssessmentCriteria.REFERENCE_AssessmentCriteria, "tl_assessment_criteria_answer");
_AssessmentCriteria = new SingleAssociation<AssessmentCriteriaAnswer, AssessmentCriteria> (this, SINGLEREFERENCE_AssessmentCriteria, AssessmentCriteria.MULTIPLEREFERENCE_Answers, AssessmentCriteria.REFERENCE_AssessmentCriteria, "tl_assessment_criteria_answer");
_JobApplication = new SingleAssociation<AssessmentCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_AssessmentCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_assessment_criteria_answer");
......@@ -476,7 +479,7 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
}
else if (assocName.equals (SINGLEREFERENCE_AssessmentCriteria))
{
return null ;
return AssessmentCriteria.MULTIPLEREFERENCE_Answers ;
}else if (assocName.equals (SINGLEREFERENCE_JobApplication))
{
return JobApplication.MULTIPLEREFERENCE_AssessmentCriteriaAnswers ;
......@@ -657,8 +660,21 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
assertValid();
Debug.assertion (getWriteability_AssessmentCriteria () != FieldWriteability.FALSE, "Assoc AssessmentCriteria is not writeable");
preAssessmentCriteriaChange (newAssessmentCriteria);
AssessmentCriteria oldAssessmentCriteria = getAssessmentCriteria ();
if (oldAssessmentCriteria != null)
{
// This is to stop validation from triggering when we are removed
_AssessmentCriteria.set (null);
oldAssessmentCriteria.removeFromAnswers ((AssessmentCriteriaAnswer)(this));
}
_AssessmentCriteria.set (newAssessmentCriteria);
if (newAssessmentCriteria != null)
{
newAssessmentCriteria.addToAnswers ((AssessmentCriteriaAnswer)(this));
}
postAssessmentCriteriaChange ();
}
......@@ -871,6 +887,20 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
try
{
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_AssessmentCriteria.isLoaded () || getTransaction ().isObjectLoaded (_AssessmentCriteria.getReferencedType (), getAssessmentCriteriaID ()))
{
AssessmentCriteria referenced = getAssessmentCriteria ();
if (referenced != null)
{
// Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Answers from ", getObjectID (), " to ", referenced.getObjectID ());
_AssessmentCriteria.set (null);
referenced.removeFromAnswers ((AssessmentCriteriaAnswer)this);
}
}
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_JobApplication.isLoaded () || getTransaction ().isObjectLoaded (_JobApplication.getReferencedType (), getJobApplicationID ()))
{
JobApplication referenced = getJobApplication ();
......@@ -1283,6 +1313,8 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
public abstract boolean filterCriteriaType(CriteriaType CriteriaType) throws StorageException;
public abstract boolean filterByCriteriaType(CriteriaType CriteriaType) throws StorageException;
public static SearchCriteriaType SearchByCriteriaType () { return new SearchCriteriaType (); }
public static class SearchCriteriaType extends SearchObject<AssessmentCriteriaAnswer>
......@@ -1377,6 +1409,13 @@ public abstract class BaseAssessmentCriteriaAnswer extends BaseBusinessClass
return ObjstoreUtils.removeDeleted(transaction, typedResults).toArray (new AssessmentCriteriaAnswer[0]);
}
@Override
public boolean accept(AssessmentCriteriaAnswer objToAccept)
{
return super.accept(objToAccept) && objToAccept.filterByCriteriaType((CriteriaType)criteria.get ("CriteriaType"));
}
}
......
......@@ -39,6 +39,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
// Static constants corresponding to field names
public static final String SINGLEREFERENCE_CultureCriteria = "CultureCriteria";
public static final String BACKREF_CultureCriteria = "";
public static final String SINGLEREFERENCE_SelectedQuestion = "SelectedQuestion";
public static final String SINGLEREFERENCE_JobApplication = "JobApplication";
public static final String BACKREF_JobApplication = "";
......@@ -76,6 +77,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
try
{
String tmp_CultureCriteria = CultureCriteria.BACKREF_Answers;
String tmp_JobApplication = JobApplication.BACKREF_CultureCriteriaAnswers;
Map validatorMapping = ((Map)ConfigMgr.getConfigObject ("CONFIG.ORMVALIDATOR", "ValidatorMapping"));
......@@ -102,6 +104,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
Map metaInfo = new HashMap ();
metaInfo.put ("backreferenceName", "Answers");
metaInfo.put ("dbcol", "culture_criteria_id");
metaInfo.put ("mandatory", "true");
metaInfo.put ("name", "CultureCriteria");
......@@ -178,7 +181,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
super._initialiseAssociations ();
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, null, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer");
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, CultureCriteria.MULTIPLEREFERENCE_Answers, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer");
_SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer");
_JobApplication = new SingleAssociation<CultureCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_culture_criteria_answer");
......@@ -190,7 +193,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
{
super.initialiseReference ();
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, null, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer");
_CultureCriteria = new SingleAssociation<CultureCriteriaAnswer, CultureCriteria> (this, SINGLEREFERENCE_CultureCriteria, CultureCriteria.MULTIPLEREFERENCE_Answers, CultureCriteria.REFERENCE_CultureCriteria, "tl_culture_criteria_answer");
_SelectedQuestion = new SingleAssociation<CultureCriteriaAnswer, CultureElementQuestion> (this, SINGLEREFERENCE_SelectedQuestion, null, CultureElementQuestion.REFERENCE_CultureElementQuestion, "tl_culture_criteria_answer");
_JobApplication = new SingleAssociation<CultureCriteriaAnswer, JobApplication> (this, SINGLEREFERENCE_JobApplication, JobApplication.MULTIPLEREFERENCE_CultureCriteriaAnswers, JobApplication.REFERENCE_JobApplication, "tl_culture_criteria_answer");
......@@ -252,7 +255,7 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
}
else if (assocName.equals (SINGLEREFERENCE_CultureCriteria))
{
return null ;
return CultureCriteria.MULTIPLEREFERENCE_Answers ;
}else if (assocName.equals (SINGLEREFERENCE_SelectedQuestion))
{
return null ;
......@@ -448,8 +451,21 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
assertValid();
Debug.assertion (getWriteability_CultureCriteria () != FieldWriteability.FALSE, "Assoc CultureCriteria is not writeable");
preCultureCriteriaChange (newCultureCriteria);
CultureCriteria oldCultureCriteria = getCultureCriteria ();
if (oldCultureCriteria != null)
{
// This is to stop validation from triggering when we are removed
_CultureCriteria.set (null);
oldCultureCriteria.removeFromAnswers ((CultureCriteriaAnswer)(this));
}
_CultureCriteria.set (newCultureCriteria);
if (newCultureCriteria != null)
{
newCultureCriteria.addToAnswers ((CultureCriteriaAnswer)(this));
}
postCultureCriteriaChange ();
}
......@@ -757,6 +773,20 @@ public abstract class BaseCultureCriteriaAnswer extends BaseBusinessClass
try
{
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_CultureCriteria.isLoaded () || getTransaction ().isObjectLoaded (_CultureCriteria.getReferencedType (), getCultureCriteriaID ()))
{
CultureCriteria referenced = getCultureCriteria ();
if (referenced != null)
{
// Stop the callback
LogMgr.log (BUSINESS_OBJECTS, LogLevel.DEBUG1, "Setting backreference to null Answers from ", getObjectID (), " to ", referenced.getObjectID ());
_CultureCriteria.set (null);
referenced.removeFromAnswers ((CultureCriteriaAnswer)this);
}
}
// Ensure we are removed from any loaded multi-associations that aren't mandatory
if (_JobApplication.isLoaded () || getTransaction ().isObjectLoaded (_JobApplication.getReferencedType (), getJobApplicationID ()))
{
JobApplication referenced = getJobApplication ();
......
......@@ -14,13 +14,13 @@ public class Candidate extends BaseCandidate
public String getFirstName()
{
return getUser().getFirstName();
return getUser() != null ? getUser().getFirstName() : null;
}
@Override
public String getToString()
{
return this.getUser().getName();
return getUser() != null ? getUser().getName() : null;
}
}
\ No newline at end of file
......@@ -4,7 +4,9 @@
<BUSINESSCLASS name="CultureCriteria" package="performa.orm">
<IMPORT value="performa.orm.types.*"/>
<MULTIPLEREFERENCE name="Answers" type="CultureCriteriaAnswer" backreferenceName="CultureCriteria"/>
<TABLE name="tl_culture_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="importance" attribHelper="EnumeratedAttributeHelper" mandatory="true" />
......
......@@ -6,7 +6,7 @@
<TABLE name="tl_culture_criteria_answer" tablePrefix="object" polymorphic="FALSE">
<SINGLEREFERENCE name="CultureCriteria" type="CultureCriteria" dbcol="culture_criteria_id" mandatory="true" />
<SINGLEREFERENCE name="CultureCriteria" type="CultureCriteria" dbcol="culture_criteria_id" mandatory="true" backreferenceName="Answers"/>
<SINGLEREFERENCE name="SelectedQuestion" type="CultureElementQuestion" dbcol="selected_question_id" mandatory="true" />
<SINGLEREFERENCE name="JobApplication" type="JobApplication" dbcol="job_application_id" mandatory="true" backreferenceName="CultureCriteriaAnswers"/>
......
......@@ -137,6 +137,16 @@ public class CultureCriteriaAnswerPersistenceMgr extends ObjectPersistenceMgr
{
throw new RuntimeException ();
}
else if (refName.equals (CultureCriteriaAnswer.SINGLEREFERENCE_CultureCriteria))
{
String query = "SELECT " + SELECT_COLUMNS +
"FROM {PREFIX}tl_culture_criteria_answer " +
"WHERE " + SELECT_JOINS + "culture_criteria_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 +
......
......@@ -106,7 +106,7 @@ public class Job extends BaseJob
//to get All Profile Assessment Questions
public Collection<Question> getAllProfileAssessmentQuestions()
{
return this.pipelineJob().toLevel().toFactors().toFactor().toQuestions().toQuestion().vals();
return pipelineJob().toLevel().toFactors().toFactor().toQuestions().toQuestion().vals();
}
......@@ -115,8 +115,8 @@ public class Job extends BaseJob
{
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});
return ObjstoreUtils.sort(CollectionFilter.filter(getAllProfileAssessmentQuestions(), filter),
new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(), Question.pipesQuestion().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR, CollectionUtils.DEFAULT_COMPARATOR});
}
}
\ No newline at end of file
package performa.orm;
import java.util.Collection;
import java.util.List;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.objstore.rdbms.filters.EqualsFilter;
import oneit.utils.filter.CollectionFilter;
import oneit.utils.filter.Filter;
......@@ -21,27 +21,38 @@ public class JobApplication extends BaseJobApplication
// Do not add any code to this, always put it in initialiseNewObject
}
public static JobApplication createNewApplication(Candidate candidate, Job job) throws StorageException, FieldException
{
JobApplication jobApplication = createJobApplication(job.getTransaction());
jobApplication.setCandidate(candidate);
jobApplication.setJob(job);
jobApplication.initACAnswers();
jobApplication.initCCAnswers();
return jobApplication;
}
public void initACAnswers() throws FieldException
private void initACAnswers()
{
for(AssessmentCriteria ac: getJob().getAssessmentCriteriasSet())
for(AssessmentCriteria assessmentCriteria : getJob().getAssessmentCriteriasSet())
{
AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction());
AssessmentCriteriaAnswer answer = AssessmentCriteriaAnswer.createAssessmentCriteriaAnswer(getTransaction());
answer.setJobApplication(this);
answer.setAssessmentCriteria(ac);
addToAssessmentCriteriaAnswers(answer);
assessmentCriteria.addToAnswers(answer);
}
}
public void initCCAnswers() throws FieldException
private void initCCAnswers()
{
for(CultureCriteria cc: getJob().getCultureCriteriasSet())
for(CultureCriteria cultureCriteria : getJob().getCultureCriteriasSet())
{
CultureCriteriaAnswer answer = CultureCriteriaAnswer.createCultureCriteriaAnswer(getTransaction());
answer.setJobApplication(this);
answer.setCultureCriteria(cc);
addToCultureCriteriaAnswers(answer);
cultureCriteria.addToAnswers(answer);
}
}
......@@ -70,12 +81,9 @@ public class JobApplication extends BaseJobApplication
return answer;
}
public Collection<AssessmentCriteriaAnswer> getACAnswersByType(CriteriaType criteria)
public Collection<AssessmentCriteriaAnswer> getACAnswersByType(CriteriaType criteriaType)
{
Filter filter = AssessmentCriteriaAnswer.SearchByCriteriaType()
.andJobApplication(new EqualsFilter<>(this))
.byCriteriaType(criteria);
Filter filter = AssessmentCriteriaAnswer.SearchByCriteriaType().byCriteriaType(criteriaType);
return CollectionFilter.filter(getAssessmentCriteriaAnswersSet(), filter);
}
......
......@@ -4,9 +4,9 @@
<BUSINESSCLASS name="JobApplication" package="performa.orm">
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="AssessmentCriteriaAnswers" type="AssessmentCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="CultureCriteriaAnswers" type="CultureCriteriaAnswer" backreferenceName="JobApplication" />
<MULTIPLEREFERENCE name="ProfileAssessmentAnswers" type="Answer" backreferenceName="JobApplication" />
<TABLE name="tl_job_application" tablePrefix="object" polymorphic="FALSE">
......
......@@ -20,7 +20,7 @@ public class Importance extends AbstractEnumerated
public static final EnumeratedFactory FACTORY_Importance = new ImportanceFactory();
public static final Importance ESSENTIAL = new Importance ("ESSENTIAL", "OPEN", "Essential", false);
public static final Importance ESSENTIAL = new Importance ("ESSENTIAL", "ESSENTIAL", "Essential", false);
public static final Importance HIGHLY_DESIRABLE = new Importance ("HIGHLY_DESIRABLE", "HIGHLY_DESIRABLE", "Highly Desirable", false);
......
......@@ -3,9 +3,9 @@
<ROOT>
<CONSTANT package="performa.orm.types" name="Importance">
<VALUE name="ESSENTIAL" value="OPEN" description="Essential"/>
<VALUE name="HIGHLY_DESIRABLE" value="HIGHLY_DESIRABLE" description="Highly Desirable"/>
<VALUE name="DESIRABLE" value="DESIRABLE" description="Desirable"/>
<VALUE name="ESSENTIAL" description="Essential"/>
<VALUE name="HIGHLY_DESIRABLE" description="Highly Desirable"/>
<VALUE name="DESIRABLE" description="Desirable"/>
</CONSTANT>
</ROOT>
\ No newline at end of file
......@@ -660,7 +660,7 @@ span.checkbox.checked + .slider:before {-webkit-transform: translateX(18px);-ms-
margin-bottom: 28px;
font-weight: 800;
}
.btn.btn-primary{
.btn.btn-primary.largeBtn{
border-radius: 100px;
background-color: #03a0e7;
font-size: 15px;
......@@ -671,7 +671,7 @@ span.checkbox.checked + .slider:before {-webkit-transform: translateX(18px);-ms-
margin-top: 10px;
font-weight: 500;
}
.btn.btn-primary:hover{
.btn.btn-primary.largeBtn:hover{
background-color: #0e87be;
}
.btn.active, .btn:active{
......@@ -3802,7 +3802,7 @@ img.alert-icon {float: left;}
.applicant-tab ul li a{margin-left: 0;}
.applicant-progress{margin: 29px 0 0;}
.fixed-width {margin-bottom: 30px;}
.btn.btn-primary{height: 46px;font-size: 13px;width: 50%;}
.btn.btn-primary.largeBtn{height: 46px;font-size: 13px;width: 50%;}
.welcome-title{font-size: 12px;text-align: center;}
.welcome-aust-logo {text-align: center;margin-bottom: 33px;}
.appli-aust-title{margin: 11px 0 21px;font-size: 15px;text-align: center;}
......
......@@ -6,6 +6,9 @@
<oneit:dynIncluded>
<%
Job job = (Job) process.getAttribute("Job");
Debug.assertion(job != null, "Job is null in admin portal create job");
String secondPage = WebUtils.getSamePageInRenderMode(request, WebUtils.ASSESSMENT_CRITERIA);
String thirdPage = WebUtils.getSamePageInRenderMode(request, WebUtils.WORKPLACE_CULTURE);
%>
......@@ -49,6 +52,9 @@
}
});
$("#assessmentCriteriaSection").on("ormtable_row_post_delete", function (){
recalcFunction();
});
});
function addCriteria(criteria)
......@@ -60,22 +66,22 @@
});
}
function deleteCriteria(deleteVarKey, criteria)
function deleteCriteria(deleteVarKey)
{
var divID = "#" + criteria;
ajaxProcessDeleteJQ("<%= request.getContextPath() %>/genericDelete_AJAX.jsp", divID , { varKey: deleteVarKey });
ajaxProcessDeleteJQ("<%= request.getContextPath() %>/genericDelete_AJAX.jsp", "#assessmentCriteriaSection" , { varKey: deleteVarKey });
return false;
}
</script>
<oneit:form name="editJob" method="post" enctype="multipart/form-data" action="<%= thirdPage %>">
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid">
<h1 class="page-title">Create a job <span class="active-time">(Active for 30 days)</span> </h1>
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title">Create a job <span class="active-time">(Active for 30 days)</span></h1>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="2" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="2" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="form-page-area">
<div class="create-job">
......@@ -97,14 +103,13 @@
<option>One 1</option>
<option>One 2</option>
<option>One 3</option>
</select>
</div>
</select>
</div>
<div class="form-brack-line-sub"></div>
<%
for(CriteriaType criteria : CriteriaType.getCriteriaTypeArray())
{
Collection<AssessmentCriteria> assessmentCriterias = job.getAssessmentCriteraByType(criteria);
String name = criteria.getName();
String name = criteria.getName();
%>
<div class="form-group">
<div class="form-medium-title qualification-title" id="<%= name%>">
......@@ -124,21 +129,21 @@
</span>
</div>
<div id="assessmentCriteriaSection">
<%
for (AssessmentCriteria assessmentCriteria : assessmentCriterias)
for (AssessmentCriteria assessmentCriteria : job.getAssessmentCriteraByType(criteria))
{
%>
<oneit:dynInclude page="/extensions/adminportal/inc/job_assessment_criteria_add.jsp" AssessmentCriteria="<%= assessmentCriteria %>"
data="<%= CollectionUtils.EMPTY_MAP%>"/>
<%
}
%>
<div class="main-add-more">
<oneit:button value="<%= "Add " + name%>" name="newAssessmentCriteria" cssClass="add-more-btn" skin="link"
onClick="<%="addCriteria('" + name + "'); return false;"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage)
.toMap() %>"/>
<div class="main-add-more">
<oneit:button value="<%= "Add " + name%>" name="newAssessmentCriteria" cssClass="add-more-btn" skin="link"
onClick="<%="addCriteria('" + name + "'); return false;"%>"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", secondPage).toMap() %>"/>
</div>
</div>
</div>
<div class="form-brack-line-sub"></div>
......@@ -162,15 +167,16 @@
<input type="text" placeholder="Template Name" class="form-control" id="email">
</div>
<span class="input-group-btn">
<oneit:button value="SAVE" name="gotoPage" cssClass="btn btn-primary"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", thirdPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap()).toMap() %>"/>
<a href="#" class="btn btn-primary">SAVE</a> <!-- todo -->
</span>
</div>
</div>
</div>
<div class="text-center">
<input type="button" class="btn btn-primary top-margin-25" value="Proceed to Workplace Culture" />
<oneit:button value="Proceed to Workplace Culture" name="gotoPage" cssClass="btn btn-primary top-margin-25 largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", thirdPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>" />
</div>
</div>
</div>
......
......@@ -38,7 +38,7 @@
<div class="main-qualification" id="<%= criteria.getID() %>">
<span class="delete-qualification" onclick="return deleteCriteria (<%= deleteVarKey %>, '<%= criteria.getCriteriaType().getName() %>')"><span></span></span>
<span class="delete-qualification" onclick="return deleteCriteria (<%= deleteVarKey %>)"><span></span></span>
<oneit:ormInput obj="<%= criteria %>" type="text" attributeName="Name" cssClass="form-control" />
<%
......
......@@ -7,34 +7,22 @@
<oneit:dynIncluded>
<%
Job job = (Job) process.getAttribute("Job");
boolean toRedirect = GenericObjDF.getOrCreateObject (request, "Job", Job.REFERENCE_Job);
Job job = (Job) process.getAttribute("Job");
if(job == null)
Debug.assertion(job != null, "Job is null in admin portal create job");
if(toRedirect)
{
job = Job.createJob(transaction);
process.setAttribute("Job", job);
%><%@include file="/saferedirect.jsp" %><%
}
Level[] levels = Level.SearchByAll().search(transaction);
String nextPage = WebUtils.getSamePageInRenderMode(request, WebUtils.ASSESSMENT_CRITERIA);
%>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid">
<%
oneit.servlets.jsp.FormInformation fi = oneit.servlets.jsp.FormJSP.getFormInformation (request);
if (fi != null && fi.hasErrors ())
{
%>
<div class="alert alert-danger">
<oneit:multifieldtext prefixTextName="pageHeader_errorPrefix" suffixTextName="pageHeader_errorSuffix" fieldTextName="pageHeader_errorText" deriveAllFields="true"/>
</div>
<%
}
%>
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title">Create a job <span class="active-time">(Active for 30 days)</span> </h1>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="1" data="<%= CollectionUtils.EMPTY_MAP%>"/>
......@@ -74,10 +62,10 @@
<label>Reference Number</label>
<input type="text" class="form-control" />
</div>
</div>
</div>
</div>
<div class="text-center">
<oneit:button value="Proceed to Assessment Criteria" name="gotoPage" cssClass="btn btn-primary"
<oneit:button value="Proceed to Assessment Criteria" name="gotoPage" cssClass="btn btn-primary largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>"/>
......
......@@ -5,13 +5,17 @@
<oneit:dynIncluded>
<%
Job job = (Job) process.getAttribute("Job");
String fifthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_REVIEW);
Job job = (Job) process.getAttribute("Job");
String fifthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_REVIEW);
Debug.assertion(job != null, "Job is null in admin portal create job");
%>
<oneit:form name="editJob" method="post" enctype="multipart/form-data" action="<%= fifthPage %>">
<div class="container-fluid">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title">Create a job <span class="active-time">(Active for 30 days)</span> </h1>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="4" data="<%= CollectionUtils.EMPTY_MAP%>"/>
......@@ -73,11 +77,11 @@
</label>
</div>
<div class="text-center">
<oneit:button value="Review Details" name="gotoPage" cssClass="btn btn-primary top-margin-37"
<oneit:button value="Review Details" name="gotoPage" cssClass="btn btn-primary top-margin-37 largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", fifthPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>"/>
</div>
</div>
</div>
</div>
</div>
......
......@@ -8,8 +8,10 @@
Job job = (Job) process.getAttribute("Job");
%>
<oneit:form name="editJob" method="post" enctype="multipart/form-data">
<div class="container-fluid">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title review-title">Review Job</h1>
......
......@@ -5,10 +5,11 @@
<oneit:dynIncluded>
<%
Job job = (Job) process.getAttribute("Job");
String fourthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_MATCH);
String secondPage = WebUtils.getSamePageInRenderMode(request, WebUtils.ASSESSMENT_CRITERIA);
Job job = (Job) process.getAttribute("Job");
String fourthPage = WebUtils.getSamePageInRenderMode(request, WebUtils.JOB_MATCH);
String secondPage = WebUtils.getSamePageInRenderMode(request, WebUtils.ASSESSMENT_CRITERIA);
Debug.assertion(job != null, "Job is null in admin portal create job");
%>
<script type="text/javascript">
......@@ -47,6 +48,8 @@
<div class="container-fluid">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<h1 class="page-title">Create a job <span class="active-time">(Active for 30 days)</span> </h1>
<oneit:dynInclude page="/extensions/adminportal/inc/job_main_tabs.jsp" PageNumber="3" data="<%= CollectionUtils.EMPTY_MAP%>"/>
......@@ -167,12 +170,15 @@
<input type="text" placeholder="Template Name" class="form-control" id="email">
</div>
<span class="input-group-btn">
<button class="btn btn-primary" type="button">SAVE</button>
<a href="#" class="btn btn-primary">SAVE</a> <!-- todo -->
</span>
</div>
</div>
<div class="text-center">
<input type="button" class="btn btn-primary top-margin-25" value="Proceed to Job Match" />
<oneit:button value="Proceed to Job Match" name="gotoPage" cssClass="btn btn-primary top-margin-25 largeBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", fourthPage)
.mapEntry("procParams", CollectionUtils.mapEntry("Job", job).toMap())
.toMap() %>" />
</div>
</div>
</div>
......
......@@ -13,11 +13,7 @@
if(jobApplication==null)
{
jobApplication = JobApplication.createJobApplication(objTran);
jobApplication.setCandidate(candidate);
jobApplication.setJob(job);
jobApplication.initACAnswers();
jobApplication.initCCAnswers();
jobApplication = JobApplication.createNewApplication(candidate, job);
}
process.setAttribute("JobApplication", jobApplication);
......
......@@ -11,9 +11,10 @@
{
%>
<div class="alert alert-danger">
<oneit:multifieldtext prefixTextName="pageHeader_errorPrefix"
suffixTextName="pageHeader_errorSuffix"
fieldTextName="pageHeader_errorText" deriveAllFields="true"/>
<oneit:multifieldtext prefixTextName="pageHeader_errorPrefix"
suffixTextName="pageHeader_errorSuffix"
fieldTextName="pageHeader_errorText"
deriveAllFields="true"/>
</div>
<%
}
......
......@@ -43,6 +43,8 @@
<oneit:form name="editApplication" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/application_main_tabs.jsp" PageNumber="3" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-page-area section-job-match">
......
......@@ -33,6 +33,8 @@
<oneit:form name="editApplication" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/application_main_tabs.jsp" PageNumber="1" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-page-area">
......@@ -46,7 +48,7 @@
<%
for(CriteriaType ct: CriteriaType.getCriteriaTypeArray())
{
Collection<AssessmentCriteriaAnswer> answerList = jobApplication.getACAnswersByType(ct);
Collection<AssessmentCriteriaAnswer> answerList = jobApplication.getACAnswersByType(ct);
if(!answerList.isEmpty())
{
......
......@@ -16,7 +16,7 @@
<oneit:form name="applyJob" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/notifications.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="main-verify-identity">
<div class="verify-aust-logo"><img src="images/australia-post.png"></div>
......
......@@ -31,7 +31,7 @@
<oneit:form name="signIn" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/notifications.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="main-verify-identity">
<div class="verify-aust-logo"><img src="images/australia-post.png"></div>
......
......@@ -33,6 +33,8 @@
<oneit:form name="editApplication" method="post" enctype="multipart/form-data">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<oneit:dynInclude page="/extensions/applicantportal/inc/application_main_tabs.jsp" PageNumber="2" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="section-page-area">
......
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