Commit 33eed4ce by Harsh Shah

Finish Release-20180206

parents 1e3d04ab 19607e6d
...@@ -19,6 +19,8 @@ ...@@ -19,6 +19,8 @@
<column name="post_code" type="String" nullable="true" length="10"/> <column name="post_code" type="String" nullable="true" length="10"/>
<column name="city" type="String" nullable="true" length="100"/> <column name="city" type="String" nullable="true" length="100"/>
<column name="has_client_support" type="Boolean" nullable="true"/> <column name="has_client_support" type="Boolean" nullable="true"/>
<column name="stripe_reference" type="String" nullable="true" length="100"/>
<column name="stripe_subscription" type="String" nullable="true" length="100"/>
<column name="added_by_user_id" type="Long" length="11" nullable="false"/> <column name="added_by_user_id" type="Long" length="11" nullable="false"/>
</NODE> </NODE>
......
...@@ -12,6 +12,7 @@ ...@@ -12,6 +12,7 @@
<column name="forgot_password_mail_send_date" type="Date" nullable="true"/> <column name="forgot_password_mail_send_date" type="Date" nullable="true"/>
<column name="forgot_password_key" type="String" nullable="true" length="10"/> <column name="forgot_password_key" type="String" nullable="true" length="10"/>
<column name="role_type" type="String" nullable="true" length="200"/> <column name="role_type" type="String" nullable="true" length="200"/>
<column name="roles" type="String" nullable="true" length="200"/>
<column name="phone" type="String" nullable="true" length="30"/> <column name="phone" type="String" nullable="true" length="30"/>
<column name="verification_mail_send_date" type="Date" nullable="true"/> <column name="verification_mail_send_date" type="Date" nullable="true"/>
<column name="verification_key" type="String" nullable="true" length="10"/> <column name="verification_key" type="String" nullable="true" length="10"/>
......
...@@ -11,6 +11,9 @@ ...@@ -11,6 +11,9 @@
<column name="level_desc" type="String" nullable="true" length="30"/> <column name="level_desc" type="String" nullable="true" length="30"/>
<column name="level_notes" type="CLOB" nullable="true"/> <column name="level_notes" type="CLOB" nullable="true"/>
<column name="rpt_hdr" type="CLOB" nullable="true"/> <column name="rpt_hdr" type="CLOB" nullable="true"/>
<column name="applied_to_express" type="Boolean" nullable="true"/>
<column name="css_class" type="String" nullable="true" length="100"/>
<column name="enabled" type="Boolean" nullable="true"/>
</NODE> </NODE>
</NODE></OBJECTS> </NODE></OBJECTS>
\ No newline at end of file
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<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="weighting" type="String" nullable="false" length="200"/> <column name="weighting" type="String" nullable="true" length="200"/>
<column name="class_code" type="String" nullable="false" length="200"/> <column name="class_code" type="String" nullable="false" length="200"/>
<column name="level_number" type="Long" length="11" nullable="true"/> <column name="level_number" type="Long" length="11" nullable="true"/>
</NODE> </NODE>
......
...@@ -10,6 +10,8 @@ ...@@ -10,6 +10,8 @@
<column name="object_created_date" type="Date" nullable="false" length="22"/> <column name="object_created_date" type="Date" nullable="false" length="22"/>
<column name="description" type="String" nullable="true" length="80"/> <column name="description" type="String" nullable="true" length="80"/>
<column name="is_right_quest" type="Boolean" nullable="true"/> <column name="is_right_quest" type="Boolean" nullable="true"/>
<column name="is_express_question" type="Boolean" nullable="true"/>
<column name="inner_sort_order" type="Long" nullable="true"/>
<column name="section_number" type="Long" length="11" nullable="true"/> <column name="section_number" type="Long" length="11" nullable="true"/>
<column name="right_quest_number" type="Long" length="11" nullable="true"/> <column name="right_quest_number" type="Long" length="11" nullable="true"/>
<column name="high_low_factor_id" type="Long" length="11" nullable="true"/> <column name="high_low_factor_id" type="Long" length="11" nullable="true"/>
......
...@@ -19,6 +19,8 @@ CREATE TABLE tl_company ( ...@@ -19,6 +19,8 @@ CREATE TABLE tl_company (
post_code varchar(10) NULL, post_code varchar(10) NULL,
city varchar(100) NULL, city varchar(100) NULL,
has_client_support char(1) NULL, has_client_support char(1) NULL,
stripe_reference varchar(100) NULL,
stripe_subscription varchar(100) NULL,
added_by_user_id numeric(12) NOT NULL added_by_user_id numeric(12) NOT NULL
); );
......
...@@ -11,6 +11,7 @@ CREATE TABLE oneit_sec_user_extension ( ...@@ -11,6 +11,7 @@ CREATE TABLE oneit_sec_user_extension (
forgot_password_mail_send_date datetime NULL, forgot_password_mail_send_date datetime NULL,
forgot_password_key varchar(10) NULL, forgot_password_key varchar(10) NULL,
role_type varchar(200) NULL, role_type varchar(200) NULL,
roles varchar(200) NULL,
phone varchar(30) NULL, phone varchar(30) NULL,
verification_mail_send_date datetime NULL, verification_mail_send_date datetime NULL,
verification_key varchar(10) NULL, verification_key varchar(10) NULL,
......
...@@ -10,7 +10,10 @@ CREATE TABLE tl_level ( ...@@ -10,7 +10,10 @@ CREATE TABLE tl_level (
, ,
level_desc varchar(30) NULL, level_desc varchar(30) NULL,
level_notes text NULL, level_notes text NULL,
rpt_hdr text NULL rpt_hdr text NULL,
applied_to_express char(1) NULL,
css_class varchar(100) NULL,
enabled char(1) NULL
); );
......
...@@ -8,7 +8,7 @@ CREATE TABLE tl_level_class_criteria ( ...@@ -8,7 +8,7 @@ CREATE TABLE tl_level_class_criteria (
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
, ,
weighting varchar(200) NOT NULL, weighting varchar(200) NULL,
class_code varchar(200) NOT NULL, class_code varchar(200) NOT NULL,
level_number numeric(12) NULL level_number numeric(12) NULL
); );
......
...@@ -10,6 +10,8 @@ CREATE TABLE tl_quest_lin ( ...@@ -10,6 +10,8 @@ CREATE TABLE tl_quest_lin (
, ,
description varchar(80) NULL, description varchar(80) NULL,
is_right_quest char(1) NULL, is_right_quest char(1) NULL,
is_express_question char(1) NULL,
inner_sort_order numeric(12) NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
right_quest_number numeric(12) NULL, right_quest_number numeric(12) NULL,
high_low_factor_id numeric(12) NULL high_low_factor_id numeric(12) NULL
......
...@@ -20,6 +20,8 @@ CREATE TABLE tl_company ( ...@@ -20,6 +20,8 @@ CREATE TABLE tl_company (
post_code varchar2(10) NULL, post_code varchar2(10) NULL,
city varchar2(100) NULL, city varchar2(100) NULL,
has_client_support char(1) NULL, has_client_support char(1) NULL,
stripe_reference varchar2(100) NULL,
stripe_subscription varchar2(100) NULL,
added_by_user_id number(12) NOT NULL added_by_user_id number(12) NOT NULL
); );
......
...@@ -12,6 +12,7 @@ CREATE TABLE oneit_sec_user_extension ( ...@@ -12,6 +12,7 @@ CREATE TABLE oneit_sec_user_extension (
forgot_password_mail_send_date date NULL, forgot_password_mail_send_date date NULL,
forgot_password_key varchar2(10) NULL, forgot_password_key varchar2(10) NULL,
role_type varchar2(200) NULL, role_type varchar2(200) NULL,
roles varchar2(200) NULL,
phone varchar2(30) NULL, phone varchar2(30) NULL,
verification_mail_send_date date NULL, verification_mail_send_date date NULL,
verification_key varchar2(10) NULL, verification_key varchar2(10) NULL,
......
...@@ -11,7 +11,10 @@ CREATE TABLE tl_level ( ...@@ -11,7 +11,10 @@ CREATE TABLE tl_level (
, ,
level_desc varchar2(30) NULL, level_desc varchar2(30) NULL,
level_notes clob NULL, level_notes clob NULL,
rpt_hdr clob NULL rpt_hdr clob NULL,
applied_to_express char(1) NULL,
css_class varchar2(100) NULL,
enabled char(1) NULL
); );
......
...@@ -9,7 +9,7 @@ CREATE TABLE tl_level_class_criteria ( ...@@ -9,7 +9,7 @@ CREATE TABLE tl_level_class_criteria (
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
, ,
weighting varchar2(200) NOT NULL, weighting varchar2(200) NULL,
class_code varchar2(200) NOT NULL, class_code varchar2(200) NOT NULL,
level_number number(12) NULL level_number number(12) NULL
); );
......
...@@ -11,6 +11,8 @@ CREATE TABLE tl_quest_lin ( ...@@ -11,6 +11,8 @@ CREATE TABLE tl_quest_lin (
, ,
description varchar2(80) NULL, description varchar2(80) NULL,
is_right_quest char(1) NULL, is_right_quest char(1) NULL,
is_express_question char(1) NULL,
inner_sort_order number(12) NULL,
section_number number(12) NULL, section_number number(12) NULL,
right_quest_number number(12) NULL, right_quest_number number(12) NULL,
high_low_factor_id number(12) NULL high_low_factor_id number(12) NULL
......
...@@ -20,6 +20,8 @@ CREATE TABLE tl_company ( ...@@ -20,6 +20,8 @@ CREATE TABLE tl_company (
post_code varchar(10) NULL, post_code varchar(10) NULL,
city varchar(100) NULL, city varchar(100) NULL,
has_client_support char(1) NULL, has_client_support char(1) NULL,
stripe_reference varchar(100) NULL,
stripe_subscription varchar(100) NULL,
added_by_user_id numeric(12) NOT NULL added_by_user_id numeric(12) NOT NULL
); );
......
...@@ -12,6 +12,7 @@ CREATE TABLE oneit_sec_user_extension ( ...@@ -12,6 +12,7 @@ CREATE TABLE oneit_sec_user_extension (
forgot_password_mail_send_date timestamp NULL, forgot_password_mail_send_date timestamp NULL,
forgot_password_key varchar(10) NULL, forgot_password_key varchar(10) NULL,
role_type varchar(200) NULL, role_type varchar(200) NULL,
roles varchar(200) NULL,
phone varchar(30) NULL, phone varchar(30) NULL,
verification_mail_send_date timestamp NULL, verification_mail_send_date timestamp NULL,
verification_key varchar(10) NULL, verification_key varchar(10) NULL,
......
...@@ -11,7 +11,10 @@ CREATE TABLE tl_level ( ...@@ -11,7 +11,10 @@ CREATE TABLE tl_level (
, ,
level_desc varchar(30) NULL, level_desc varchar(30) NULL,
level_notes text NULL, level_notes text NULL,
rpt_hdr text NULL rpt_hdr text NULL,
applied_to_express char(1) NULL,
css_class varchar(100) NULL,
enabled char(1) NULL
); );
......
...@@ -9,7 +9,7 @@ CREATE TABLE tl_level_class_criteria ( ...@@ -9,7 +9,7 @@ CREATE TABLE tl_level_class_criteria (
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
, ,
weighting varchar(200) NOT NULL, weighting varchar(200) NULL,
class_code varchar(200) NOT NULL, class_code varchar(200) NOT NULL,
level_number numeric(12) NULL level_number numeric(12) NULL
); );
......
...@@ -11,6 +11,8 @@ CREATE TABLE tl_quest_lin ( ...@@ -11,6 +11,8 @@ CREATE TABLE tl_quest_lin (
, ,
description varchar(80) NULL, description varchar(80) NULL,
is_right_quest char(1) NULL, is_right_quest char(1) NULL,
is_express_question char(1) NULL,
inner_sort_order numeric(12) NULL,
section_number numeric(12) NULL, section_number numeric(12) NULL,
right_quest_number numeric(12) NULL, right_quest_number numeric(12) NULL,
high_low_factor_id numeric(12) NULL high_low_factor_id numeric(12) NULL
......
...@@ -24,16 +24,15 @@ public class CompleteApplicationFP extends SaveFP ...@@ -24,16 +24,15 @@ public class CompleteApplicationFP extends SaveFP
HttpServletRequest request = submission.getRequest(); HttpServletRequest request = submission.getRequest();
ObjectTransaction objTran = ObjectTransaction.getTransaction(); ObjectTransaction objTran = ObjectTransaction.getTransaction();
JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication"); JobApplication jobApplication = (JobApplication) process.getAttribute("JobApplication");
jobApplication = (JobApplication) jobApplication.getInTransaction (objTran); jobApplication = (JobApplication) jobApplication.getInTransaction (objTran);
jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED); jobApplication.setApplicationStatus(ApplicationStatus.SUBMITTED);
jobApplication.setSubmittedDate(new Date()); jobApplication.setSubmittedDate(new Date());
AnalysisEngine.analyseAnswers(jobApplication.getCandidate(), jobApplication.getJob().getLevel(), jobApplication.getCompletedAnswers()); AnalysisEngine.analyseAnswers(jobApplication.getCandidate(), jobApplication.getJob().getLevel(), jobApplication.getCompletedAnswers()); //getCompletedAnswers() returns collection now
//TODO: set application status as UNSUITABLE if not scored if(jobApplication.hasFailedEssentialRequirements())
if(false)
{ {
jobApplication.setApplicationStatus(ApplicationStatus.UNSUITABLE); jobApplication.setApplicationStatus(ApplicationStatus.UNSUITABLE);
} }
......
...@@ -45,6 +45,11 @@ public class ProcessCultureFP extends SaveFP ...@@ -45,6 +45,11 @@ public class ProcessCultureFP extends SaveFP
if(fromJobMatch) if(fromJobMatch)
{ {
BusinessObjectParser.assertFieldCondition(job.getLevel()!= null, job , Job.SINGLEREFERENCE_Level, "mandatory", exceptions, true, request); BusinessObjectParser.assertFieldCondition(job.getLevel()!= null, job , Job.SINGLEREFERENCE_Level, "mandatory", exceptions, true, request);
if(job.getLevel() != null)
{
BusinessObjectParser.assertFieldCondition(job.showLevelOption(job.getLevel()), job , Job.SINGLEREFERENCE_Level, "invalid", exceptions, true, request);
}
} }
} }
} }
\ No newline at end of file
...@@ -17,8 +17,7 @@ import oneit.utils.BusinessException; ...@@ -17,8 +17,7 @@ import oneit.utils.BusinessException;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import oneit.utils.MultiException; import oneit.utils.MultiException;
import performa.intercom.utils.IntercomUtils; import performa.intercom.utils.IntercomUtils;
import performa.orm.CompanyUser; import performa.orm.*;
import performa.orm.Job;
import performa.orm.types.JobStatus; import performa.orm.types.JobStatus;
...@@ -90,6 +89,11 @@ public class SaveJobFP extends SaveFP ...@@ -90,6 +89,11 @@ public class SaveJobFP extends SaveFP
if(job.getJobStatus() != JobStatus.DRAFT || openJob == Boolean.TRUE) if(job.getJobStatus() != JobStatus.DRAFT || openJob == Boolean.TRUE)
{ {
BusinessObjectParser.assertFieldCondition(job.getLevel() != null, job , Job.SINGLEREFERENCE_Level, "mandatory", exceptions, true, request); BusinessObjectParser.assertFieldCondition(job.getLevel() != null, job , Job.SINGLEREFERENCE_Level, "mandatory", exceptions, true, request);
if(job.getLevel() != null)
{
BusinessObjectParser.assertFieldCondition(job.showLevelOption(job.getLevel()), job , Job.SINGLEREFERENCE_Level, "invalid", exceptions, true, request);
}
} }
super.validate(process, submission, exceptions, params); super.validate(process, submission, exceptions, params);
......
package performa.form; package performa.form;
import com.stripe.Stripe;
import com.stripe.exception.APIConnectionException;
import com.stripe.exception.APIException;
import com.stripe.exception.AuthenticationException;
import com.stripe.exception.CardException;
import com.stripe.exception.InvalidRequestException;
import com.stripe.model.Customer;
import java.util.Date; import java.util.Date;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.appservices.config.ConfigMgr;
import oneit.business.content.Article; import oneit.business.content.Article;
import oneit.components.ParticipantInitialisationContext; import oneit.components.ParticipantInitialisationContext;
import oneit.email.ConfigurableArticleTemplateEmailer; import oneit.email.ConfigurableArticleTemplateEmailer;
...@@ -20,6 +31,7 @@ import oneit.utils.*; ...@@ -20,6 +31,7 @@ import oneit.utils.*;
import performa.intercom.utils.IntercomUtils; import performa.intercom.utils.IntercomUtils;
import performa.orm.*; import performa.orm.*;
import performa.orm.types.RoleType; import performa.orm.types.RoleType;
import performa.utils.StripeUtils;
import performa.utils.Utils; import performa.utils.Utils;
import performa.utils.WebUtils; import performa.utils.WebUtils;
...@@ -99,7 +111,19 @@ public class SendCompanyUserInvitesFP extends SaveFP ...@@ -99,7 +111,19 @@ public class SendCompanyUserInvitesFP extends SaveFP
if(companyUser == company.getAddedByUser()) if(companyUser == company.getAddedByUser())
{ {
companyUser.setRole(RoleType.ADMIN); companyUser.setRole(RoleType.ADMIN);
companyUser.setRoleTypes(RoleType.OWNER, RoleType.BILLING);
// Create customer in Stripe and subscribe for plan 0001 and coupon EAP. Only for 0.0.4.1 release
// Need to handle properly when plan and billing screens are added
StripeUtils.createCustomer(companyUser);
LogMgr.log(LOG, LogLevel.PROCESSING1,"Created customer in Stripe, customer reference ", company.getStripeReference());
StripeUtils.subscribeCustomer(company);
LogMgr.log(LOG, LogLevel.PROCESSING1,"Subscribed customer to default plan in Stripe, subscription reference ", company.getStripeSubscription());
//process user invitations //process user invitations
for(CompanyUser cUser : company.getUsersSet()) for(CompanyUser cUser : company.getUsersSet())
{ {
......
...@@ -125,7 +125,7 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass ...@@ -125,7 +125,7 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass
metaInfo.put ("attribHelper", "EnumeratedAttributeHelper"); metaInfo.put ("attribHelper", "EnumeratedAttributeHelper");
metaInfo.put ("dbcol", "weighting"); metaInfo.put ("dbcol", "weighting");
metaInfo.put ("mandatory", "true"); metaInfo.put ("mandatory", "false");
metaInfo.put ("name", "Importance"); metaInfo.put ("name", "Importance");
metaInfo.put ("type", "Importance"); metaInfo.put ("type", "Importance");
...@@ -271,7 +271,6 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass ...@@ -271,7 +271,6 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass
oldAndNewIdentical = HELPER_Importance.compare (_Importance, newImportance); oldAndNewIdentical = HELPER_Importance.compare (_Importance, newImportance);
} }
BusinessObjectParser.assertFieldCondition (newImportance != null, this, FIELD_Importance, "mandatory");
if (FIELD_Importance_Validators.length > 0) if (FIELD_Importance_Validators.length > 0)
...@@ -1241,7 +1240,7 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass ...@@ -1241,7 +1240,7 @@ public abstract class BaseLevelClassCriteria extends BaseBusinessClass
List result = super.getAttributes (); List result = super.getAttributes ();
result.add(HELPER_Importance.getAttribObject (getClass (), _Importance, true, FIELD_Importance)); result.add(HELPER_Importance.getAttribObject (getClass (), _Importance, false, FIELD_Importance));
result.add(HELPER_FactorClass.getAttribObject (getClass (), _FactorClass, true, FIELD_FactorClass)); result.add(HELPER_FactorClass.getAttribObject (getClass (), _FactorClass, true, FIELD_FactorClass));
return result; return result;
......
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.Collection;
import java.util.Comparator; import java.util.Comparator;
...@@ -18,7 +17,8 @@ import oneit.utils.CollectionUtils; ...@@ -18,7 +17,8 @@ import oneit.utils.CollectionUtils;
import oneit.utils.DateDiff; import oneit.utils.DateDiff;
import oneit.utils.ObjectTransform; import oneit.utils.ObjectTransform;
import oneit.utils.StringUtils; import oneit.utils.StringUtils;
import oneit.utils.filter.Filter; import oneit.utils.filter.*;
import performa.utils.ExpressAnswerFilter;
public class Candidate extends BaseCandidate public class Candidate extends BaseCandidate
...@@ -109,6 +109,10 @@ public class Candidate extends BaseCandidate ...@@ -109,6 +109,10 @@ public class Candidate extends BaseCandidate
return false; return false;
} }
public Collection<Answer> getCompletedAnswers(Job job)
{
return CollectionFilter.filter(getProfileAssessmentAnswersSet(), new ExpressAnswerFilter(job.isExpressJob()));
}
public boolean assessmentCompleted(Job job) //role public boolean assessmentCompleted(Job job) //role
{ {
...@@ -116,12 +120,10 @@ public class Candidate extends BaseCandidate ...@@ -116,12 +120,10 @@ public class Candidate extends BaseCandidate
if(allAnswersCount > 0) if(allAnswersCount > 0)
{ {
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>()); Collection selectedAnswers = getCompletedAnswers(job);
Collection selectedAnswers = pipelineCandidate().toProfileAssessmentAnswers(filter).vals();
return (selectedAnswers.size() >= allAnswersCount); return (selectedAnswers.size() >= allAnswersCount);
} }
return false; return false;
} }
......
...@@ -20,18 +20,20 @@ ...@@ -20,18 +20,20 @@
<TABLE name="tl_company" tablePrefix="object"> <TABLE name="tl_company" tablePrefix="object">
<ATTRIB name="CompanyName" type="String" dbcol="company_name" mandatory="true" length="100" /> <ATTRIB name="CompanyName" type="String" dbcol="company_name" mandatory="true" length="100" />
<ATTRIB name="CompanyLogo" type="BinaryContent" dbcol="company_logo" mandatory="false" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" /> <ATTRIB name="CompanyLogo" type="BinaryContent" dbcol="company_logo" mandatory="false" binaryHandler="loggedin" attribHelper="BLOBAttributeHelper" attribHelperInstance="BLOBAttributeHelper.INSTANCE" />
<ATTRIB name="HiringTeamType" type="HiringTeamType" dbcol="hiring_team_type" mandatory="false" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="HiringTeamType" type="HiringTeamType" dbcol="hiring_team_type" mandatory="false" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="Industry" type="Industry" dbcol="industry" mandatory="false" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="Industry" type="Industry" dbcol="industry" mandatory="false" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="TimeZone" type="TimeZone" dbcol="time_zone" mandatory="false" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="TimeZone" type="TimeZone" dbcol="time_zone" mandatory="false" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="IsVerified" type="Boolean" dbcol="is_verified" defaultValue="Boolean.FALSE"/> <ATTRIB name="IsVerified" type="Boolean" dbcol="is_verified" defaultValue="Boolean.FALSE"/>
<ATTRIB name="State" type="State" dbcol="state" mandatory="false" defaultValue="State.WA" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="State" type="State" dbcol="state" mandatory="false" defaultValue="State.WA" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="Country" type="Countries" dbcol="country" mandatory="false" defaultValue="Countries.AU" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="Country" type="Countries" dbcol="country" mandatory="false" defaultValue="Countries.AU" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="PostCode" type="String" dbcol="post_code" mandatory="false" length="10"/> <ATTRIB name="PostCode" type="String" dbcol="post_code" mandatory="false" length="10"/>
<ATTRIB name="City" type="String" dbcol="city" mandatory="false" length="100"/> <ATTRIB name="City" type="String" dbcol="city" mandatory="false" length="100"/>
<ATTRIB name="HasClientSupport" type="Boolean" dbcol="has_client_support" mandatory="false" defaultValue="Boolean.FALSE"/> <ATTRIB name="HasClientSupport" type="Boolean" dbcol="has_client_support" mandatory="false" defaultValue="Boolean.FALSE"/>
<ATTRIB name="StripeReference" type="String" dbcol="stripe_reference" length="100"/>
<ATTRIB name="StripeSubscription" type="String" dbcol="stripe_subscription" length="100"/>
<SINGLEREFERENCE name="AddedByUser" type="CompanyUser" dbcol="added_by_user_id" mandatory="true"/> <SINGLEREFERENCE name="AddedByUser" type="CompanyUser" dbcol="added_by_user_id" mandatory="true"/>
</TABLE> </TABLE>
......
package performa.orm; package performa.orm;
import java.util.Arrays;
import java.util.HashSet;
import java.util.Set;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import oneit.logging.LogLevel; import oneit.logging.LogLevel;
import oneit.logging.LogMgr; import oneit.logging.LogMgr;
...@@ -66,6 +69,9 @@ public class CompanyUser extends BaseCompanyUser ...@@ -66,6 +69,9 @@ public class CompanyUser extends BaseCompanyUser
} }
secUser.addRole(Utils.getRole(Utils.ROLE_COMPANY_ADMIN, getTransaction())); secUser.addRole(Utils.getRole(Utils.ROLE_COMPANY_ADMIN, getTransaction()));
setRoleTypes(RoleType.ADMIN);
removeRoleTypes(RoleType.STANDARD);
} }
else if(getRole()==RoleType.STANDARD) else if(getRole()==RoleType.STANDARD)
{ {
...@@ -75,12 +81,38 @@ public class CompanyUser extends BaseCompanyUser ...@@ -75,12 +81,38 @@ public class CompanyUser extends BaseCompanyUser
} }
secUser.addRole(Utils.getRole(Utils.ROLE_COMPANY_USER, getTransaction())); secUser.addRole(Utils.getRole(Utils.ROLE_COMPANY_USER, getTransaction()));
setRoleTypes(RoleType.STANDARD);
removeRoleTypes(RoleType.ADMIN);
} }
super.postRoleChange(); super.postRoleChange();
} }
public void setRoleTypes(RoleType... roleType) throws FieldException
{
Set<RoleType> roles = getRoles() != null ? getRoles() : new HashSet();
roles.addAll(Arrays.asList(roleType));
setRoles(roles);
}
public void removeRoleTypes(RoleType... roleType) throws FieldException
{
Set<RoleType> roles = getRoles();
if(roles != null)
{
roles.removeAll(Arrays.asList(roleType));
setRoles(roles);
}
}
@Override @Override
public FieldWriteability getWriteability_Role() public FieldWriteability getWriteability_Role()
{ {
......
...@@ -13,14 +13,15 @@ ...@@ -13,14 +13,15 @@
<TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE"> <TABLE name="oneit_sec_user_extension" tablePrefix="object" polymorphic="TRUE">
<ATTRIB name="ForgotPasswordMailSendDate" type="Date" dbcol="forgot_password_mail_send_date" /> <ATTRIB name="ForgotPasswordMailSendDate" type="Date" dbcol="forgot_password_mail_send_date" />
<ATTRIB name="ForgotPasswordKey" type="String" dbcol="forgot_password_key" length="10"/> <ATTRIB name="ForgotPasswordKey" type="String" dbcol="forgot_password_key" length="10"/>
<ATTRIB name="Role" type="RoleType" dbcol="role_type" mandatory="false" attribHelper="EnumeratedAttributeHelper"/> <ATTRIB name="Role" type="RoleType" dbcol="role_type" mandatory="false" attribHelper="EnumeratedAttributeHelper"/>
<ATTRIB name="Phone" type="String" dbcol="phone" mandatory="false" length="30" /> <ATTRIB name="Roles" type="Set&lt;RoleType&gt;" dbcol="roles" mandatory="false" attribHelper="DelimitedEnumsAttributeHelper" attribHelperInstance="new DelimitedEnumsAttributeHelper (RoleType.FACTORY_RoleType)"/>
<ATTRIB name="VerificationMailSendDate" type="Date" dbcol="verification_mail_send_date" /> <ATTRIB name="Phone" type="String" dbcol="phone" mandatory="false" length="30" />
<ATTRIB name="VerificationKey" type="String" dbcol="verification_key" length="10"/> <ATTRIB name="VerificationMailSendDate" type="Date" dbcol="verification_mail_send_date" />
<ATTRIB name="IsAccountVerified" type="Boolean" dbcol="is_account_verified" defaultValue="Boolean.FALSE"/> <ATTRIB name="VerificationKey" type="String" dbcol="verification_key" length="10"/>
<ATTRIB name="IsEmailChanged" type="Boolean" dbcol="is_email_changed" defaultValue="Boolean.FALSE"/> <ATTRIB name="IsAccountVerified" type="Boolean" dbcol="is_account_verified" defaultValue="Boolean.FALSE"/>
<ATTRIB name="IsEmailChanged" type="Boolean" dbcol="is_email_changed" defaultValue="Boolean.FALSE"/>
<SINGLEREFERENCE name="User" type="SecUser" dbcol="user_id" backreferenceName="Extensions" inSuper='TRUE'/> <SINGLEREFERENCE name="User" type="SecUser" dbcol="user_id" backreferenceName="Extensions" inSuper='TRUE'/>
<SINGLEREFERENCE name="Company" type="Company" dbcol="company_id" backreferenceName="Users"/> <SINGLEREFERENCE name="Company" type="Company" dbcol="company_id" backreferenceName="Users"/>
......
...@@ -162,9 +162,14 @@ public class Job extends BaseJob ...@@ -162,9 +162,14 @@ public class Job extends BaseJob
return getAssessmentCriteraByType(criteria).size(); return getAssessmentCriteraByType(criteria).size();
} }
public boolean isExpressJob()
{
return getAssessmentType() == AssessmentType.EXPRESS;
}
public List<Question> getAllQuestions() public List<Question> getAllQuestions()
{ {
return Arrays.asList(Question.searchAll(getTransaction())); return Arrays.asList(Question.SearchByAll().andIsExpressQuestion(new EqualsFilter(isExpressJob())).search(getTransaction()));
} }
public List<Question> getAllLeftQuestions() public List<Question> getAllLeftQuestions()
...@@ -178,8 +183,8 @@ public class Job extends BaseJob ...@@ -178,8 +183,8 @@ public class Job extends BaseJob
Filter filter = Question.SearchByAll().andIsRightQuestion(new EqualsFilter<>(Boolean.FALSE)); Filter filter = Question.SearchByAll().andIsRightQuestion(new EqualsFilter<>(Boolean.FALSE));
return ObjstoreUtils.sort(CollectionFilter.filter(totalQuestions , filter), return ObjstoreUtils.sort(CollectionFilter.filter(totalQuestions , filter),
new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(), Question.pipesQuestion().toObjectID()}, new ObjectTransform[] {Question.pipesQuestion().toSection().toObjectID(),Question.pipesQuestion().toInnerSortOrder(),Question.pipesQuestion().toObjectID()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR, CollectionUtils.DEFAULT_COMPARATOR}); new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR,CollectionUtils.DEFAULT_COMPARATOR,CollectionUtils.DEFAULT_COMPARATOR});
} }
...@@ -195,17 +200,6 @@ public class Job extends BaseJob ...@@ -195,17 +200,6 @@ public class Job extends BaseJob
} }
public Level[] getAllLevels()
{
List<Level> levels = new ArrayList<>();
Utils.getLevelsForComprehensive(getTransaction()).stream().forEach((tuple) -> {
levels.add((Level)tuple.get0());
});
return levels.toArray(new Level[0]);
}
public int getNoOfCandidatesApplied() public int getNoOfCandidatesApplied()
{ {
return getNoOfCandidatesFor(ApplicationStatus.SUBMITTED, ApplicationStatus.SHORTLISTED, ApplicationStatus.UNSUITABLE); return getNoOfCandidatesFor(ApplicationStatus.SUBMITTED, ApplicationStatus.SHORTLISTED, ApplicationStatus.UNSUITABLE);
...@@ -549,4 +543,27 @@ public class Job extends BaseJob ...@@ -549,4 +543,27 @@ public class Job extends BaseJob
{ {
return LoopbackHTTP.getRemoteAccessURL("/j/" + (getShortenedURL() != null ? getShortenedURL().getCode() : "")); return LoopbackHTTP.getRemoteAccessURL("/j/" + (getShortenedURL() != null ? getShortenedURL().getCode() : ""));
} }
public String getLevelClass(Level level)
{
if(!showLevelOption(level))
{
return "hide";
}
if(CollectionUtils.equals(level, getLevel()))
{
return "active";
}
return "";
}
public boolean showLevelOption(Level level)
{
if(isExpressJob())
{
return isTrue(level.getAppliedToExpress());
}
return !isTrue(level.getAppliedToExpress());
}
} }
\ No newline at end of file
...@@ -14,7 +14,7 @@ import oneit.utils.math.NullArith; ...@@ -14,7 +14,7 @@ import oneit.utils.math.NullArith;
import oneit.utils.math.Rounding; import oneit.utils.math.Rounding;
import oneit.utils.parsers.FieldException; import oneit.utils.parsers.FieldException;
import performa.orm.types.*; import performa.orm.types.*;
import performa.utils.AnalysisEngine; import performa.utils.*;
public class JobApplication extends BaseJobApplication public class JobApplication extends BaseJobApplication
...@@ -128,49 +128,6 @@ public class JobApplication extends BaseJobApplication ...@@ -128,49 +128,6 @@ public class JobApplication extends BaseJobApplication
} }
public boolean initAssessmentAnswers(List<Question> questions) throws StorageException, FieldException
{
boolean redirect = false;
List<Question> allQuestions = new ArrayList<>();
Candidate candidate = getCandidate();
for(Question question : questions)
{
allQuestions.add(question);
if(question.getRightQuestion() != null)
{
allQuestions.add(question.getRightQuestion());
}
}
for(Question question : allQuestions)
{
boolean available = false;
for(Answer answer : candidate.getProfileAssessmentAnswersSet())
{
if(question.equals(answer.getQuestion()))
{
available = true;
break;
}
}
if(!available)
{
Answer answer = Answer.createAnswer(getTransaction());
candidate.addToProfileAssessmentAnswers(answer);
answer.setQuestion(question);
redirect = true;
}
}
return redirect;
}
public Answer getAnswerForQuestion(Question question) throws FieldException public Answer getAnswerForQuestion(Question question) throws FieldException
{ {
Filter filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question)); Filter filter = Answer.SearchByAll().andQuestion(new EqualsFilter<>(question));
...@@ -230,7 +187,7 @@ public class JobApplication extends BaseJobApplication ...@@ -230,7 +187,7 @@ public class JobApplication extends BaseJobApplication
public int getActualQuestionNumber() public int getActualQuestionNumber()
{ {
Filter<Answer> filter = Answer.SearchByAll().andAnswerNo(new NotEqualsFilter<>(0)); Filter<Answer> filter = new ExpressAnswerFilter(getJob().isExpressJob());
return getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).uniqueVals().size() + 1; return getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).uniqueVals().size() + 1;
} }
...@@ -238,7 +195,7 @@ public class JobApplication extends BaseJobApplication ...@@ -238,7 +195,7 @@ public class JobApplication extends BaseJobApplication
public int getQuestionNumber() public int getQuestionNumber()
{ {
Filter<Answer> filter = Answer.SearchByAll().andAnswerNo(new NotEqualsFilter<>(0)); Filter<Answer> filter = new ExpressAnswerFilter(getJob().isExpressJob());
return getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).uniqueVals().size() return getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).uniqueVals().size()
- getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).toQuestion().toRightQuestion().uniqueVals().size(); - getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).toQuestion().toRightQuestion().uniqueVals().size();
...@@ -330,7 +287,7 @@ public class JobApplication extends BaseJobApplication ...@@ -330,7 +287,7 @@ public class JobApplication extends BaseJobApplication
for(FactorClass factorClass : getSortedFactorClasses()) for(FactorClass factorClass : getSortedFactorClasses())
{ {
if(roleScoreMap.get(factorClass) != null && roleScoreMap.get(factorClass).get0() > 0d) if(getJob().isExpressJob() || (roleScoreMap.get(factorClass) != null && roleScoreMap.get(factorClass).get0() > 0d))
{ {
factorScoreDetails.put(factorClass, AnalysisEngine.getFactorScoreDetails(getCandidate(), getJob().getLevel(), factorClass)); factorScoreDetails.put(factorClass, AnalysisEngine.getFactorScoreDetails(getCandidate(), getJob().getLevel(), factorClass));
} }
...@@ -370,23 +327,27 @@ public class JobApplication extends BaseJobApplication ...@@ -370,23 +327,27 @@ public class JobApplication extends BaseJobApplication
public String getRequirementFitColor() public String getRequirementFitColor()
{ {
long score = getRequirementFitScore(); long score = getRequirementFitScore();
Filter filter = AssessmentCriteria.SearchByAll().andImportance(new EqualsFilter<>(Importance.ESSENTIAL));
return hasFailedEssentialRequirements() ? "red-b" : (score >= 80 ? "green" : (score >= 60 ? "yellow" : "red-b"));
Collection<AssessmentCriteria> essentialRequirements = CollectionFilter.filter(getJob().getAssessmentCriteriasSet(), filter); }
public Boolean hasFailedEssentialRequirements()
{
Filter filter = AssessmentCriteria.SearchByAll().andImportance(new EqualsFilter<>(Importance.ESSENTIAL));
Collection<AssessmentCriteria> essentialRequirements = CollectionFilter.filter(getJob().getAssessmentCriteriasSet(), filter);
if(essentialRequirements.size() > 0) if(essentialRequirements.size() > 0)
{ {
Filter negativeFilter = AssessmentCriteriaAnswer.SearchByAll().andAnswer(new EqualsFilter<>(Boolean.FALSE)); Filter negativeFilter = AssessmentCriteriaAnswer.SearchByAll().andAnswer(new EqualsFilter<>(Boolean.FALSE));
if(CollectionFilter.filter(getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL), negativeFilter).size() > 0) return CollectionFilter.filter(getRequirementAnswersByImportance().getValuesForKey(Importance.ESSENTIAL), negativeFilter).size() > 0;
{
return "red-b";
}
} }
return score >= 80 ? "green" : (score >= 60 ? "yellow" : "red-b"); return Boolean.FALSE;
} }
public Double getRoleFitPercentage() public Double getRoleFitPercentage()
{ {
return getRoleFit() != null && getRoleFit().get(null) != null ? ((Tuple.T3<Double, ColorCode, Double>)getRoleFit().get(null)).get2() : 0d; return getRoleFit() != null && getRoleFit().get(null) != null ? ((Tuple.T3<Double, ColorCode, Double>)getRoleFit().get(null)).get2() : 0d;
...@@ -442,9 +403,9 @@ public class JobApplication extends BaseJobApplication ...@@ -442,9 +403,9 @@ public class JobApplication extends BaseJobApplication
} }
public Set<Answer> getCompletedAnswers() public Collection<Answer> getCompletedAnswers()
{ {
return getCandidate().getProfileAssessmentAnswersSet(); return getCandidate().getCompletedAnswers(getJob());
} }
...@@ -500,11 +461,12 @@ public class JobApplication extends BaseJobApplication ...@@ -500,11 +461,12 @@ public class JobApplication extends BaseJobApplication
//to get remaining time for role test //to get remaining time for role test
public Integer getRoleTestRemainingTime() public Integer getRoleTestRemainingTime()
{ {
int remainingTime = 20; int totalTime = getJob() != null && getJob().getAssessmentType() != null ? getJob().getAssessmentType().getTotalTime() : 20; //Default to 20 as per current code
int remainingTime = totalTime;
if(assessmentCompleted()) if(assessmentCompleted())
{ {
remainingTime -= 20; remainingTime -= totalTime;
} }
else //partially completed test for role else //partially completed test for role
{ {
...@@ -512,14 +474,14 @@ public class JobApplication extends BaseJobApplication ...@@ -512,14 +474,14 @@ public class JobApplication extends BaseJobApplication
if(allAnswersCount > 0) if(allAnswersCount > 0)
{ {
Filter filter = Answer.SearchByAll().andAnswerNo(new IsNotNullFilter<>()); Filter filter = new ExpressAnswerFilter(getJob().isExpressJob());
Collection selectedAnswers = getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).vals(); Collection selectedAnswers = getCandidate().pipelineCandidate().toProfileAssessmentAnswers(filter).vals();
if(selectedAnswers!=null && selectedAnswers.size()>0) if(selectedAnswers!=null && selectedAnswers.size()>0)
{ {
Double answerrate = NullArith.divide(selectedAnswers.size(), allAnswersCount); Double answerrate = NullArith.divide(selectedAnswers.size(), allAnswersCount);
remainingTime -= Rounding.roundDouble( NullArith.multiply(answerrate, 20), 0); remainingTime -= Rounding.roundDouble(NullArith.multiply(answerrate, totalTime), 0);
} }
} }
} }
......
package performa.orm; package performa.orm;
import java.util.*; import java.util.*;
import oneit.objstore.rdbms.filters.EqualsFilter; import oneit.objstore.ObjectTransaction;
import oneit.objstore.rdbms.filters.*;
import oneit.objstore.utils.ObjstoreUtils; import oneit.objstore.utils.ObjstoreUtils;
import oneit.utils.*; import oneit.utils.*;
import oneit.utils.filter.*; import oneit.utils.filter.*;
import performa.orm.types.AssessmentType;
import performa.orm.types.FactorClass; import performa.orm.types.FactorClass;
...@@ -68,4 +70,15 @@ public class Level extends BaseLevel ...@@ -68,4 +70,15 @@ public class Level extends BaseLevel
new ObjectTransform[]{FactorScoreResult.pipesFactorScoreResult().toFromScore()}, new ObjectTransform[]{FactorScoreResult.pipesFactorScoreResult().toFromScore()},
new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR}); new Comparator[]{CollectionUtils.DEFAULT_COMPARATOR});
} }
public static Level[] getAllLevels(ObjectTransaction objTran)
{
return Level.SearchByAll().andEnabled(new EqualsFilter(Boolean.TRUE)).search(objTran);
}
public static Level[] getAllLevelsforAssessmentType(ObjectTransaction objTran, AssessmentType assessmentType)
{
return Level.SearchByAll().andEnabled(new EqualsFilter(Boolean.TRUE)).andAppliedToExpress(new EqualsFilter<>(assessmentType == AssessmentType.EXPRESS)).search(objTran);
}
} }
\ No newline at end of file
...@@ -18,6 +18,9 @@ ...@@ -18,6 +18,9 @@
<ATTRIB name="LevelDescription" type="String" dbcol="level_desc" length="30"/> <ATTRIB name="LevelDescription" type="String" dbcol="level_desc" length="30"/>
<ATTRIB name="LevelNotes" type="String" dbcol="level_notes"/> <ATTRIB name="LevelNotes" type="String" dbcol="level_notes"/>
<ATTRIB name="ReportHeader" type="String" dbcol="rpt_hdr"/> <ATTRIB name="ReportHeader" type="String" dbcol="rpt_hdr"/>
<ATTRIB name="AppliedToExpress" type="Boolean" dbcol="applied_to_express" defaultValue="Boolean.FALSE"/>
<ATTRIB name="CSSClass" type="String" dbcol="css_class" length="100"/>
<ATTRIB name="Enabled" type="Boolean" dbcol="enabled" defaultValue="Boolean.FALSE"/>
</TABLE> </TABLE>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
<TABLE name="tl_level_class_criteria" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_level_class_criteria" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Importance" type="Importance" dbcol="weighting" attribHelper="EnumeratedAttributeHelper" mandatory="true"/> <ATTRIB name="Importance" type="Importance" dbcol="weighting" attribHelper="EnumeratedAttributeHelper" mandatory="false"/> <!--Mandatory removed for newly added express data-->
<ATTRIB name="FactorClass" type="FactorClass" dbcol="class_code" attribHelper="EnumeratedAttributeHelper" mandatory="true"/> <ATTRIB name="FactorClass" type="FactorClass" dbcol="class_code" attribHelper="EnumeratedAttributeHelper" mandatory="true"/>
<SINGLEREFERENCE name="Level" type="Level" dbcol="level_number" backreferenceName="LevelClassCriterias"/> <SINGLEREFERENCE name="Level" type="Level" dbcol="level_number" backreferenceName="LevelClassCriterias"/>
......
...@@ -29,12 +29,18 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -29,12 +29,18 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
private String dummyLevelDescription; private String dummyLevelDescription;
private String dummyLevelNotes; private String dummyLevelNotes;
private String dummyReportHeader; private String dummyReportHeader;
private Boolean dummyAppliedToExpress;
private String dummyCSSClass;
private Boolean dummyEnabled;
// Static constants corresponding to attribute helpers // Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper HELPER_LevelDescription = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_LevelDescription = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_LevelNotes = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_LevelNotes = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_ReportHeader = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_ReportHeader = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_AppliedToExpress = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_CSSClass = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_Enabled = DefaultAttributeHelper.INSTANCE;
...@@ -44,10 +50,13 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -44,10 +50,13 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
dummyLevelDescription = (String)(HELPER_LevelDescription.initialise (dummyLevelDescription)); dummyLevelDescription = (String)(HELPER_LevelDescription.initialise (dummyLevelDescription));
dummyLevelNotes = (String)(HELPER_LevelNotes.initialise (dummyLevelNotes)); dummyLevelNotes = (String)(HELPER_LevelNotes.initialise (dummyLevelNotes));
dummyReportHeader = (String)(HELPER_ReportHeader.initialise (dummyReportHeader)); dummyReportHeader = (String)(HELPER_ReportHeader.initialise (dummyReportHeader));
dummyAppliedToExpress = (Boolean)(HELPER_AppliedToExpress.initialise (dummyAppliedToExpress));
dummyCSSClass = (String)(HELPER_CSSClass.initialise (dummyCSSClass));
dummyEnabled = (Boolean)(HELPER_Enabled.initialise (dummyEnabled));
} }
private String SELECT_COLUMNS = "{PREFIX}tl_level.object_id as id, {PREFIX}tl_level.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_level.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_level.level_desc, {PREFIX}tl_level.level_notes, {PREFIX}tl_level.rpt_hdr, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_level.object_id as id, {PREFIX}tl_level.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_level.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_level.level_desc, {PREFIX}tl_level.level_notes, {PREFIX}tl_level.rpt_hdr, {PREFIX}tl_level.applied_to_express, {PREFIX}tl_level.css_class, {PREFIX}tl_level.enabled, 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
...@@ -100,7 +109,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -100,7 +109,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_levelPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_levelPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_levelPSet.containsAttrib(Level.FIELD_LevelDescription)|| !tl_levelPSet.containsAttrib(Level.FIELD_LevelDescription)||
!tl_levelPSet.containsAttrib(Level.FIELD_LevelNotes)|| !tl_levelPSet.containsAttrib(Level.FIELD_LevelNotes)||
!tl_levelPSet.containsAttrib(Level.FIELD_ReportHeader)) !tl_levelPSet.containsAttrib(Level.FIELD_ReportHeader)||
!tl_levelPSet.containsAttrib(Level.FIELD_AppliedToExpress)||
!tl_levelPSet.containsAttrib(Level.FIELD_CSSClass)||
!tl_levelPSet.containsAttrib(Level.FIELD_Enabled))
{ {
// We will need to retrieve it // We will need to retrieve it
idsToFetch.add (id.longValue()); idsToFetch.add (id.longValue());
...@@ -170,10 +182,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -170,10 +182,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_level " + "UPDATE {PREFIX}tl_level " +
"SET level_desc = ?, level_notes = ?, rpt_hdr = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET level_desc = ?, level_notes = ?, rpt_hdr = ?, applied_to_express = ?, css_class = ?, enabled = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_level.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_level.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_LevelDescription.getForSQL(dummyLevelDescription, tl_levelPSet.getAttrib (Level.FIELD_LevelDescription))).listEntry (HELPER_LevelNotes.getForSQL(dummyLevelNotes, tl_levelPSet.getAttrib (Level.FIELD_LevelNotes))).listEntry (HELPER_ReportHeader.getForSQL(dummyReportHeader, tl_levelPSet.getAttrib (Level.FIELD_ReportHeader))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_LevelDescription.getForSQL(dummyLevelDescription, tl_levelPSet.getAttrib (Level.FIELD_LevelDescription))).listEntry (HELPER_LevelNotes.getForSQL(dummyLevelNotes, tl_levelPSet.getAttrib (Level.FIELD_LevelNotes))).listEntry (HELPER_ReportHeader.getForSQL(dummyReportHeader, tl_levelPSet.getAttrib (Level.FIELD_ReportHeader))).listEntry (HELPER_AppliedToExpress.getForSQL(dummyAppliedToExpress, tl_levelPSet.getAttrib (Level.FIELD_AppliedToExpress))).listEntry (HELPER_CSSClass.getForSQL(dummyCSSClass, tl_levelPSet.getAttrib (Level.FIELD_CSSClass))).listEntry (HELPER_Enabled.getForSQL(dummyEnabled, tl_levelPSet.getAttrib (Level.FIELD_Enabled))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -481,6 +493,9 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -481,6 +493,9 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
tl_levelPSet.setAttrib(Level.FIELD_LevelDescription, HELPER_LevelDescription.getFromRS(dummyLevelDescription, r, "level_desc")); tl_levelPSet.setAttrib(Level.FIELD_LevelDescription, HELPER_LevelDescription.getFromRS(dummyLevelDescription, r, "level_desc"));
tl_levelPSet.setAttrib(Level.FIELD_LevelNotes, HELPER_LevelNotes.getFromRS(dummyLevelNotes, r, "level_notes")); tl_levelPSet.setAttrib(Level.FIELD_LevelNotes, HELPER_LevelNotes.getFromRS(dummyLevelNotes, r, "level_notes"));
tl_levelPSet.setAttrib(Level.FIELD_ReportHeader, HELPER_ReportHeader.getFromRS(dummyReportHeader, r, "rpt_hdr")); tl_levelPSet.setAttrib(Level.FIELD_ReportHeader, HELPER_ReportHeader.getFromRS(dummyReportHeader, r, "rpt_hdr"));
tl_levelPSet.setAttrib(Level.FIELD_AppliedToExpress, HELPER_AppliedToExpress.getFromRS(dummyAppliedToExpress, r, "applied_to_express"));
tl_levelPSet.setAttrib(Level.FIELD_CSSClass, HELPER_CSSClass.getFromRS(dummyCSSClass, r, "css_class"));
tl_levelPSet.setAttrib(Level.FIELD_Enabled, HELPER_Enabled.getFromRS(dummyEnabled, r, "enabled"));
} }
...@@ -498,10 +513,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr ...@@ -498,10 +513,10 @@ public class LevelPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_level " + "INSERT INTO {PREFIX}tl_level " +
" (level_desc, level_notes, rpt_hdr, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (level_desc, level_notes, rpt_hdr, applied_to_express, css_class, enabled, 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_LevelDescription.getForSQL(dummyLevelDescription, tl_levelPSet.getAttrib (Level.FIELD_LevelDescription))).listEntry (HELPER_LevelNotes.getForSQL(dummyLevelNotes, tl_levelPSet.getAttrib (Level.FIELD_LevelNotes))).listEntry (HELPER_ReportHeader.getForSQL(dummyReportHeader, tl_levelPSet.getAttrib (Level.FIELD_ReportHeader))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_LevelDescription.getForSQL(dummyLevelDescription, tl_levelPSet.getAttrib (Level.FIELD_LevelDescription))).listEntry (HELPER_LevelNotes.getForSQL(dummyLevelNotes, tl_levelPSet.getAttrib (Level.FIELD_LevelNotes))).listEntry (HELPER_ReportHeader.getForSQL(dummyReportHeader, tl_levelPSet.getAttrib (Level.FIELD_ReportHeader))).listEntry (HELPER_AppliedToExpress.getForSQL(dummyAppliedToExpress, tl_levelPSet.getAttrib (Level.FIELD_AppliedToExpress))).listEntry (HELPER_CSSClass.getForSQL(dummyCSSClass, tl_levelPSet.getAttrib (Level.FIELD_CSSClass))).listEntry (HELPER_Enabled.getForSQL(dummyEnabled, tl_levelPSet.getAttrib (Level.FIELD_Enabled))) .listEntry (objectID.longID ()).toList().toArray());
tl_levelPSet.setStatus (PersistentSetStatus.PROCESSED); tl_levelPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -21,7 +21,11 @@ public class Question extends BaseQuestion ...@@ -21,7 +21,11 @@ public class Question extends BaseQuestion
public QuestionType getQuestionType() public QuestionType getQuestionType()
{ {
if(getSection() != null) if(isTrue(getIsExpressQuestion()))
{
return QuestionType.SCALAR; //Express doesnt support Ipsative
}
else if(getSection() != null)
{ {
return getSection().getQuestionType(); return getSection().getQuestionType();
} }
......
...@@ -9,8 +9,10 @@ ...@@ -9,8 +9,10 @@
<TABLE name="tl_quest_lin" tablePrefix="object" polymorphic="FALSE"> <TABLE name="tl_quest_lin" tablePrefix="object" polymorphic="FALSE">
<ATTRIB name="Description" type="String" dbcol="description" length="80"/> <ATTRIB name="Description" type="String" dbcol="description" length="80"/>
<ATTRIB name="IsRightQuestion" type="Boolean" dbcol="is_right_quest" defaultValue="Boolean.FALSE"/> <ATTRIB name="IsRightQuestion" type="Boolean" dbcol="is_right_quest" defaultValue="Boolean.FALSE"/>
<ATTRIB name="IsExpressQuestion" type="Boolean" dbcol="is_express_question" defaultValue="Boolean.FALSE"/>
<ATTRIB name="InnerSortOrder" type="Integer" dbcol="inner_sort_order" defaultValue="1"/> <!-- Added mainly for express question PERSONAL VALUES section, question #1073 -->
<SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" backreferenceName="Questions"/> <SINGLEREFERENCE name="Section" type="Section" dbcol="section_number" backreferenceName="Questions"/>
<SINGLEREFERENCE name="RightQuestion" type="Question" dbcol="right_quest_number" backreferenceName="LeftQuestions"/> <SINGLEREFERENCE name="RightQuestion" type="Question" dbcol="right_quest_number" backreferenceName="LeftQuestions"/>
......
...@@ -28,11 +28,15 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -28,11 +28,15 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
// Private attributes corresponding to business object data // Private attributes corresponding to business object data
private String dummyDescription; private String dummyDescription;
private Boolean dummyIsRightQuestion; private Boolean dummyIsRightQuestion;
private Boolean dummyIsExpressQuestion;
private Integer dummyInnerSortOrder;
// Static constants corresponding to attribute helpers // Static constants corresponding to attribute helpers
private static final DefaultAttributeHelper HELPER_Description = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_Description = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_IsRightQuestion = DefaultAttributeHelper.INSTANCE; private static final DefaultAttributeHelper HELPER_IsRightQuestion = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_IsExpressQuestion = DefaultAttributeHelper.INSTANCE;
private static final DefaultAttributeHelper HELPER_InnerSortOrder = DefaultAttributeHelper.INSTANCE;
...@@ -41,10 +45,12 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -41,10 +45,12 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
{ {
dummyDescription = (String)(HELPER_Description.initialise (dummyDescription)); dummyDescription = (String)(HELPER_Description.initialise (dummyDescription));
dummyIsRightQuestion = (Boolean)(HELPER_IsRightQuestion.initialise (dummyIsRightQuestion)); dummyIsRightQuestion = (Boolean)(HELPER_IsRightQuestion.initialise (dummyIsRightQuestion));
dummyIsExpressQuestion = (Boolean)(HELPER_IsExpressQuestion.initialise (dummyIsExpressQuestion));
dummyInnerSortOrder = (Integer)(HELPER_InnerSortOrder.initialise (dummyInnerSortOrder));
} }
private String SELECT_COLUMNS = "{PREFIX}tl_quest_lin.object_id as id, {PREFIX}tl_quest_lin.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_quest_lin.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_quest_lin.description, {PREFIX}tl_quest_lin.is_right_quest, {PREFIX}tl_quest_lin.section_number, {PREFIX}tl_quest_lin.right_quest_number, {PREFIX}tl_quest_lin.high_low_factor_id, 1 AS commasafe "; private String SELECT_COLUMNS = "{PREFIX}tl_quest_lin.object_id as id, {PREFIX}tl_quest_lin.object_LAST_UPDATED_DATE as LAST_UPDATED_DATE, {PREFIX}tl_quest_lin.object_CREATED_DATE as CREATED_DATE, {PREFIX}tl_quest_lin.description, {PREFIX}tl_quest_lin.is_right_quest, {PREFIX}tl_quest_lin.is_express_question, {PREFIX}tl_quest_lin.inner_sort_order, {PREFIX}tl_quest_lin.section_number, {PREFIX}tl_quest_lin.right_quest_number, {PREFIX}tl_quest_lin.high_low_factor_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
...@@ -97,6 +103,8 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -97,6 +103,8 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
if (false || !tl_quest_linPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) || if (false || !tl_quest_linPSet.containsAttrib(BaseBusinessClass.FIELD_ObjectLastModified) ||
!tl_quest_linPSet.containsAttrib(Question.FIELD_Description)|| !tl_quest_linPSet.containsAttrib(Question.FIELD_Description)||
!tl_quest_linPSet.containsAttrib(Question.FIELD_IsRightQuestion)|| !tl_quest_linPSet.containsAttrib(Question.FIELD_IsRightQuestion)||
!tl_quest_linPSet.containsAttrib(Question.FIELD_IsExpressQuestion)||
!tl_quest_linPSet.containsAttrib(Question.FIELD_InnerSortOrder)||
!tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_Section)|| !tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_Section)||
!tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_RightQuestion)|| !tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_RightQuestion)||
!tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_HighLowFactor)) !tl_quest_linPSet.containsAttrib(Question.SINGLEREFERENCE_HighLowFactor))
...@@ -199,10 +207,10 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -199,10 +207,10 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
{ {
int rowsUpdated = executeStatement (sqlMgr, int rowsUpdated = executeStatement (sqlMgr,
"UPDATE {PREFIX}tl_quest_lin " + "UPDATE {PREFIX}tl_quest_lin " +
"SET description = ?, is_right_quest = ?, section_number = ? , right_quest_number = ? , high_low_factor_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " + "SET description = ?, is_right_quest = ?, is_express_question = ?, inner_sort_order = ?, section_number = ? , right_quest_number = ? , high_low_factor_id = ? , object_LAST_UPDATED_DATE = " + sqlMgr.getPortabilityServices ().getTimestampExpression () + " " +
"WHERE tl_quest_lin.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ", "WHERE tl_quest_lin.object_id = ? AND " + getConcurrencyCheck (sqlMgr, "object_LAST_UPDATED_DATE", obj.getObjectLastModified ()) + " ",
CollectionUtils.listEntry (HELPER_Description.getForSQL(dummyDescription, tl_quest_linPSet.getAttrib (Question.FIELD_Description))).listEntry (HELPER_IsRightQuestion.getForSQL(dummyIsRightQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsRightQuestion))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_RightQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_HighLowFactor)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray()); CollectionUtils.listEntry (HELPER_Description.getForSQL(dummyDescription, tl_quest_linPSet.getAttrib (Question.FIELD_Description))).listEntry (HELPER_IsRightQuestion.getForSQL(dummyIsRightQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsRightQuestion))).listEntry (HELPER_IsExpressQuestion.getForSQL(dummyIsExpressQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsExpressQuestion))).listEntry (HELPER_InnerSortOrder.getForSQL(dummyInnerSortOrder, tl_quest_linPSet.getAttrib (Question.FIELD_InnerSortOrder))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_RightQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_HighLowFactor)))).listEntry (objectID.longID ()).listEntry (obj.getObjectLastModified ()).toList().toArray());
if (rowsUpdated != 1) if (rowsUpdated != 1)
{ {
...@@ -460,6 +468,8 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -460,6 +468,8 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
tl_quest_linPSet.setAttrib(Question.FIELD_Description, HELPER_Description.getFromRS(dummyDescription, r, "description")); tl_quest_linPSet.setAttrib(Question.FIELD_Description, HELPER_Description.getFromRS(dummyDescription, r, "description"));
tl_quest_linPSet.setAttrib(Question.FIELD_IsRightQuestion, HELPER_IsRightQuestion.getFromRS(dummyIsRightQuestion, r, "is_right_quest")); tl_quest_linPSet.setAttrib(Question.FIELD_IsRightQuestion, HELPER_IsRightQuestion.getFromRS(dummyIsRightQuestion, r, "is_right_quest"));
tl_quest_linPSet.setAttrib(Question.FIELD_IsExpressQuestion, HELPER_IsExpressQuestion.getFromRS(dummyIsExpressQuestion, r, "is_express_question"));
tl_quest_linPSet.setAttrib(Question.FIELD_InnerSortOrder, HELPER_InnerSortOrder.getFromRS(dummyInnerSortOrder, r, "inner_sort_order"));
tl_quest_linPSet.setAttrib(Question.SINGLEREFERENCE_Section, r.getObject ("section_number")); tl_quest_linPSet.setAttrib(Question.SINGLEREFERENCE_Section, r.getObject ("section_number"));
tl_quest_linPSet.setAttrib(Question.SINGLEREFERENCE_RightQuestion, r.getObject ("right_quest_number")); tl_quest_linPSet.setAttrib(Question.SINGLEREFERENCE_RightQuestion, r.getObject ("right_quest_number"));
...@@ -480,10 +490,10 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr ...@@ -480,10 +490,10 @@ public class QuestionPersistenceMgr extends ObjectPersistenceMgr
{ {
executeStatement (sqlMgr, executeStatement (sqlMgr,
"INSERT INTO {PREFIX}tl_quest_lin " + "INSERT INTO {PREFIX}tl_quest_lin " +
" (description, is_right_quest, section_number, right_quest_number, high_low_factor_id, object_id, object_LAST_UPDATED_DATE, object_CREATED_DATE) " + " (description, is_right_quest, is_express_question, inner_sort_order, section_number, right_quest_number, high_low_factor_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 (HELPER_Description.getForSQL(dummyDescription, tl_quest_linPSet.getAttrib (Question.FIELD_Description))).listEntry (HELPER_IsRightQuestion.getForSQL(dummyIsRightQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsRightQuestion))) .listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_RightQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_HighLowFactor)))) .listEntry (objectID.longID ()).toList().toArray()); CollectionUtils.listEntry (HELPER_Description.getForSQL(dummyDescription, tl_quest_linPSet.getAttrib (Question.FIELD_Description))).listEntry (HELPER_IsRightQuestion.getForSQL(dummyIsRightQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsRightQuestion))).listEntry (HELPER_IsExpressQuestion.getForSQL(dummyIsExpressQuestion, tl_quest_linPSet.getAttrib (Question.FIELD_IsExpressQuestion))).listEntry (HELPER_InnerSortOrder.getForSQL(dummyInnerSortOrder, tl_quest_linPSet.getAttrib (Question.FIELD_InnerSortOrder))) .listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_Section)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_RightQuestion)))).listEntry (SQLManager.CheckNull((Long)(tl_quest_linPSet.getAttrib (Question.SINGLEREFERENCE_HighLowFactor)))) .listEntry (objectID.longID ()).toList().toArray());
tl_quest_linPSet.setStatus (PersistentSetStatus.PROCESSED); tl_quest_linPSet.setStatus (PersistentSetStatus.PROCESSED);
} }
......
...@@ -22,7 +22,7 @@ public class AssessmentType extends AbstractEnumerated ...@@ -22,7 +22,7 @@ public class AssessmentType extends AbstractEnumerated
public static final AssessmentType COMPREHENSIVE = new AssessmentType ("COMPREHENSIVE", "COMPREHENSIVE", "Talentology Comprehensive", false); public static final AssessmentType COMPREHENSIVE = new AssessmentType ("COMPREHENSIVE", "COMPREHENSIVE", "Talentology Comprehensive", false);
public static final AssessmentType EXPRESS = new AssessmentType ("EXPRESS", "EXPRESS", "Talentology Express", true); public static final AssessmentType EXPRESS = new AssessmentType ("EXPRESS", "EXPRESS", "Talentology Express", false);
private static final AssessmentType[] allAssessmentTypes = private static final AssessmentType[] allAssessmentTypes =
new AssessmentType[] { COMPREHENSIVE,EXPRESS}; new AssessmentType[] { COMPREHENSIVE,EXPRESS};
...@@ -33,9 +33,7 @@ public class AssessmentType extends AbstractEnumerated ...@@ -33,9 +33,7 @@ public class AssessmentType extends AbstractEnumerated
return allAssessmentTypes; return allAssessmentTypes;
} }
private transient String HeaderDesc; private transient Integer TotalTime;
private transient String AdditionalDesc;
private transient String QuestionDetails; private transient String QuestionDetails;
...@@ -46,14 +44,9 @@ public class AssessmentType extends AbstractEnumerated ...@@ -46,14 +44,9 @@ public class AssessmentType extends AbstractEnumerated
super (name, value, description, disabled); super (name, value, description, disabled);
} }
public String getHeaderDesc() public Integer getTotalTime()
{
return HeaderDesc;
}
public String getAdditionalDesc()
{ {
return AdditionalDesc; return TotalTime;
} }
public String getQuestionDetails() public String getQuestionDetails()
...@@ -133,13 +126,11 @@ public class AssessmentType extends AbstractEnumerated ...@@ -133,13 +126,11 @@ public class AssessmentType extends AbstractEnumerated
public static void defineAdditionalData () public static void defineAdditionalData ()
{ {
COMPREHENSIVE.HeaderDesc = ""; COMPREHENSIVE.TotalTime = 20;
COMPREHENSIVE.AdditionalDesc = "";
COMPREHENSIVE.QuestionDetails = " (250 Questions - 20 Minutes)"; COMPREHENSIVE.QuestionDetails = " (250 Questions - 20 Minutes)";
COMPREHENSIVE.TestDescr = "Comprehensive Assessment"; COMPREHENSIVE.TestDescr = "Comprehensive Assessment";
EXPRESS.HeaderDesc = ""; EXPRESS.TotalTime = 5;
EXPRESS.AdditionalDesc = ""; EXPRESS.QuestionDetails = " (48 Questions - 5 Minutes)";
EXPRESS.QuestionDetails = " (30 Questions - 5 Minutes)";
EXPRESS.TestDescr = "Express Assessment"; EXPRESS.TestDescr = "Express Assessment";
} }
...@@ -168,8 +159,7 @@ public class AssessmentType extends AbstractEnumerated ...@@ -168,8 +159,7 @@ public class AssessmentType extends AbstractEnumerated
{ {
Map attribs = new HashMap (); Map attribs = new HashMap ();
attribs.put ("HeaderDesc", ArrayFormatter.toObject(getHeaderDesc())); attribs.put ("TotalTime", ArrayFormatter.toObject(getTotalTime()));
attribs.put ("AdditionalDesc", ArrayFormatter.toObject(getAdditionalDesc()));
attribs.put ("QuestionDetails", ArrayFormatter.toObject(getQuestionDetails())); attribs.put ("QuestionDetails", ArrayFormatter.toObject(getQuestionDetails()));
attribs.put ("TestDescr", ArrayFormatter.toObject(getTestDescr())); attribs.put ("TestDescr", ArrayFormatter.toObject(getTestDescr()));
......
...@@ -3,18 +3,15 @@ ...@@ -3,18 +3,15 @@
<ROOT> <ROOT>
<CONSTANT package="performa.orm.types" name="AssessmentType"> <CONSTANT package="performa.orm.types" name="AssessmentType">
<DATA name="HeaderDesc" type="String" /> <DATA name="TotalTime" type="Integer" />
<DATA name="AdditionalDesc" type="String" />
<DATA name="QuestionDetails" type="String" /> <DATA name="QuestionDetails" type="String" />
<DATA name="TestDescr" type="String" /> <DATA name="TestDescr" type="String" />
<VALUE name="COMPREHENSIVE" description="Talentology Comprehensive" HeaderDesc='""' <VALUE name="COMPREHENSIVE" description="Talentology Comprehensive" TotalTime="20"
AdditionalDesc='""'
QuestionDetails='" (250 Questions - 20 Minutes)"' QuestionDetails='" (250 Questions - 20 Minutes)"'
TestDescr='"Comprehensive Assessment"'/> TestDescr='"Comprehensive Assessment"'/>
<VALUE name="EXPRESS" description="Talentology Express" HeaderDesc='""' disabled="true" <VALUE name="EXPRESS" description="Talentology Express" TotalTime="5"
AdditionalDesc='""' QuestionDetails='" (48 Questions - 5 Minutes)"'
QuestionDetails='" (30 Questions - 5 Minutes)"'
TestDescr='"Express Assessment"'/> TestDescr='"Express Assessment"'/>
</CONSTANT> </CONSTANT>
</ROOT> </ROOT>
\ No newline at end of file
...@@ -52,7 +52,7 @@ public class FactorClass extends AbstractEnumerated ...@@ -52,7 +52,7 @@ public class FactorClass extends AbstractEnumerated
public static final FactorClass ACTINTER = new FactorClass ("ACTINTER", "ACTINTER", "Act Interdependently", false); public static final FactorClass ACTINTER = new FactorClass ("ACTINTER", "ACTINTER", "Act Interdependently", false);
public static final FactorClass INNOVSPIR = new FactorClass ("INNOVSPIR", "INNOVSPIR", "iNnovative Spirit", false); public static final FactorClass INNOVSPIR = new FactorClass ("INNOVSPIR", "INNOVSPIR", "Innovative Spirit", false);
public static final FactorClass EMPATHRESP = new FactorClass ("EMPATHRESP", "EMPATHRESP", "Empathy & Respect", false); public static final FactorClass EMPATHRESP = new FactorClass ("EMPATHRESP", "EMPATHRESP", "Empathy & Respect", false);
...@@ -77,9 +77,17 @@ public class FactorClass extends AbstractEnumerated ...@@ -77,9 +77,17 @@ public class FactorClass extends AbstractEnumerated
public static final FactorClass SHOWADAP = new FactorClass ("SHOWADAP", "SHOWADAP", "Show Adaptability", false); public static final FactorClass SHOWADAP = new FactorClass ("SHOWADAP", "SHOWADAP", "Show Adaptability", false);
public static final FactorClass ENGINSP = new FactorClass ("ENGINSP", "ENGINSP", "Engage And Inspire", false); public static final FactorClass ENGINSP = new FactorClass ("ENGINSP", "ENGINSP", "Engage And Inspire", false);
public static final FactorClass INFLUENCING = new FactorClass ("INFLUENCING", "INFLUENCING", "Influencing", false);
public static final FactorClass CONSGRP = new FactorClass ("CONSGRP", "CONSGRP", "Conscientious Group", false);
public static final FactorClass EMOTSTAB = new FactorClass ("EMOTSTAB", "EMOTSTAB", "Emotional Stability", false);
public static final FactorClass SOCIALGRP = new FactorClass ("SOCIALGRP", "SOCIALGRP", "Social Group", false);
private static final FactorClass[] allFactorClasss = private static final FactorClass[] allFactorClasss =
new FactorClass[] { CARDRV,CONFL,COPING,INTPER,LEADINFL,NEGOT,OPER,PEOPLE,POWERINFL,PROBLEM,STRATEGIC,VALUES,WORKSTYLE,CONSISTENCY,HIGHQUAL,ACTINTER,INNOVSPIR,EMPATHRESP,LEADER,OTHERS,ANSSCALE,LEVINNOV,LEADCOUR,SOUNDDEC,DRVINNIT,FOSTCOMM,PROMCOLL,SHOWADAP,ENGINSP}; new FactorClass[] { CARDRV,CONFL,COPING,INTPER,LEADINFL,NEGOT,OPER,PEOPLE,POWERINFL,PROBLEM,STRATEGIC,VALUES,WORKSTYLE,CONSISTENCY,HIGHQUAL,ACTINTER,INNOVSPIR,EMPATHRESP,LEADER,OTHERS,ANSSCALE,LEVINNOV,LEADCOUR,SOUNDDEC,DRVINNIT,FOSTCOMM,PROMCOLL,SHOWADAP,ENGINSP,INFLUENCING,CONSGRP,EMOTSTAB,SOCIALGRP};
private static FactorClass[] getAllFactorClasss () private static FactorClass[] getAllFactorClasss ()
...@@ -195,6 +203,10 @@ public class FactorClass extends AbstractEnumerated ...@@ -195,6 +203,10 @@ public class FactorClass extends AbstractEnumerated
PROMCOLL.SortOrder = 250; PROMCOLL.SortOrder = 250;
SHOWADAP.SortOrder = 260; SHOWADAP.SortOrder = 260;
ENGINSP.SortOrder = 270; ENGINSP.SortOrder = 270;
INFLUENCING.SortOrder = 280;
CONSGRP.SortOrder = 290;
EMOTSTAB.SortOrder = 300;
SOCIALGRP.SortOrder = 310;
} }
......
...@@ -21,7 +21,7 @@ ...@@ -21,7 +21,7 @@
<VALUE name="CONSISTENCY" description="Consistency" SortOrder="100"/> <VALUE name="CONSISTENCY" description="Consistency" SortOrder="100"/>
<VALUE name="HIGHQUAL" description="Highest Quality" SortOrder="110"/> <VALUE name="HIGHQUAL" description="Highest Quality" SortOrder="110"/>
<VALUE name="ACTINTER" description="Act Interdependently" SortOrder="120"/> <VALUE name="ACTINTER" description="Act Interdependently" SortOrder="120"/>
<VALUE name="INNOVSPIR" description="iNnovative Spirit" SortOrder="130"/> <VALUE name="INNOVSPIR" description="Innovative Spirit" SortOrder="130"/>
<VALUE name="EMPATHRESP" description="Empathy &amp; Respect" SortOrder="140"/> <VALUE name="EMPATHRESP" description="Empathy &amp; Respect" SortOrder="140"/>
<VALUE name="LEADER" description="Leadership" SortOrder="150"/> <VALUE name="LEADER" description="Leadership" SortOrder="150"/>
<VALUE name="OTHERS" description="Other Factors" SortOrder="160"/> <VALUE name="OTHERS" description="Other Factors" SortOrder="160"/>
...@@ -34,6 +34,10 @@ ...@@ -34,6 +34,10 @@
<VALUE name="PROMCOLL" description="Promote Collaboration and Team" SortOrder="250"/> <VALUE name="PROMCOLL" description="Promote Collaboration and Team" SortOrder="250"/>
<VALUE name="SHOWADAP" description="Show Adaptability" SortOrder="260"/> <VALUE name="SHOWADAP" description="Show Adaptability" SortOrder="260"/>
<VALUE name="ENGINSP" description="Engage And Inspire" SortOrder="270"/> <VALUE name="ENGINSP" description="Engage And Inspire" SortOrder="270"/>
<VALUE name="INFLUENCING" description="Influencing" SortOrder="280"/>
<VALUE name="CONSGRP" description="Conscientious Group" SortOrder="290"/>
<VALUE name="EMOTSTAB" description="Emotional Stability" SortOrder="300"/>
<VALUE name="SOCIALGRP" description="Social Group" SortOrder="310"/>
</CONSTANT> </CONSTANT>
</ROOT> </ROOT>
\ No newline at end of file
...@@ -24,9 +24,13 @@ public class RoleType extends AbstractEnumerated ...@@ -24,9 +24,13 @@ public class RoleType extends AbstractEnumerated
public static final RoleType ADMIN = new RoleType ("ADMIN", "ADMIN", "Admin", false); public static final RoleType ADMIN = new RoleType ("ADMIN", "ADMIN", "Admin", false);
public static final RoleType STANDARD = new RoleType ("STANDARD", "STANDARD", "Standard", false); public static final RoleType STANDARD = new RoleType ("STANDARD", "STANDARD", "Standard", false);
public static final RoleType OWNER = new RoleType ("OWNER", "OWNER", "Owner", false);
public static final RoleType BILLING = new RoleType ("BILLING", "BILLING", "Billing", false);
private static final RoleType[] allRoleTypes = private static final RoleType[] allRoleTypes =
new RoleType[] { ADMIN,STANDARD}; new RoleType[] { ADMIN,STANDARD,OWNER,BILLING};
private static RoleType[] getAllRoleTypes () private static RoleType[] getAllRoleTypes ()
......
...@@ -6,6 +6,8 @@ ...@@ -6,6 +6,8 @@
<VALUE name="ADMIN" value="ADMIN" description="Admin"/> <VALUE name="ADMIN" value="ADMIN" description="Admin"/>
<VALUE name="STANDARD" value="STANDARD" description="Standard"/> <VALUE name="STANDARD" value="STANDARD" description="Standard"/>
<VALUE name="OWNER" value="OWNER" description="Owner"/>
<VALUE name="BILLING" value="BILLING" description="Billing"/>
</CONSTANT> </CONSTANT>
......
...@@ -20,7 +20,7 @@ public class AnalysisEngine ...@@ -20,7 +20,7 @@ public class AnalysisEngine
{ {
private static final Long MAX_VALID_FACTOR_NUMBER = 49L; //Don't consider unusally high/low answer factors i.e 50/51 private static final Long MAX_VALID_FACTOR_NUMBER = 49L; //Don't consider unusally high/low answer factors i.e 50/51
public static void analyseAnswers(Candidate candidate, Level level, Set<Answer> answers) throws StorageException, FieldException public static void analyseAnswers(Candidate candidate, Level level, Collection<Answer> answers) throws StorageException, FieldException
{ {
LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "Inside AnalysisEngine --> analyseAnswers for candidate ", candidate, " Level ", level); LogMgr.log(JobApplication.LOG, LogLevel.PROCESSING1, "Inside AnalysisEngine --> analyseAnswers for candidate ", candidate, " Level ", level);
...@@ -213,8 +213,12 @@ public class AnalysisEngine ...@@ -213,8 +213,12 @@ public class AnalysisEngine
candidateClassScore.setClassScore(classScore); candidateClassScore.setClassScore(classScore);
candidateClassScore.setWghtdClassScore(wghtdclassScore); candidateClassScore.setWghtdClassScore(wghtdclassScore);
candidateClassScore.setMaxWghtdClassScore(maxWghtdClassScore); candidateClassScore.setMaxWghtdClassScore(maxWghtdClassScore);
candidateClassScore.setColorCode(NullArith.lessThan(classScore, classNormalisation.getLeftMeanScore()) ? ColorCode.RED : (NullArith.lessThan(classScore, classNormalisation.getMeanScore()) ? ColorCode.AMBER : ColorCode.GREEN));
candidateClassScore.setWghtdColorCode(NullArith.lessThan(wghtdclassScore, classNormalisation.getWghtLeftMeanScore()) ? ColorCode.RED : (NullArith.lessThan(wghtdclassScore, classNormalisation.getWghtMeanScore()) ? ColorCode.AMBER : ColorCode.GREEN)); if(classNormalisation != null)
{
candidateClassScore.setColorCode(NullArith.lessThan(classScore, classNormalisation.getLeftMeanScore()) ? ColorCode.RED : (NullArith.lessThan(classScore, classNormalisation.getMeanScore()) ? ColorCode.AMBER : ColorCode.GREEN));
candidateClassScore.setWghtdColorCode(NullArith.lessThan(wghtdclassScore, classNormalisation.getWghtLeftMeanScore()) ? ColorCode.RED : (NullArith.lessThan(wghtdclassScore, classNormalisation.getWghtMeanScore()) ? ColorCode.AMBER : ColorCode.GREEN));
}
testAnalysis.addToCandidateClassScores(candidateClassScore); testAnalysis.addToCandidateClassScores(candidateClassScore);
} }
} }
......
package performa.utils;
import oneit.utils.filter.Filter;
import performa.orm.Answer;
/**
*
* @author Harsh
*/
public class ExpressAnswerFilter implements Filter<Answer>
{
private final boolean isExpressJob;
public ExpressAnswerFilter(boolean isExpressJob)
{
this.isExpressJob = isExpressJob;
}
@Override
public boolean accept(Answer answer)
{
if(answer != null && answer.getQuestion() != null)
{
return answer.getAnswerNo() != null && answer.getAnswerNo() != 0 && (answer.getQuestion().getIsExpressQuestion() == isExpressJob);
}
return false;
}
}
\ No newline at end of file
package performa.utils;
import com.stripe.Stripe;
import com.stripe.exception.APIConnectionException;
import com.stripe.exception.APIException;
import com.stripe.exception.AuthenticationException;
import com.stripe.exception.CardException;
import com.stripe.exception.InvalidRequestException;
import com.stripe.model.Customer;
import com.stripe.model.Plan;
import com.stripe.model.Subscription;
import java.util.Calendar;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import oneit.appservices.config.ConfigMgr;
import oneit.logging.LogLevel;
import oneit.logging.LogMgr;
import oneit.logging.LoggingArea;
import oneit.objstore.StorageException;
import oneit.security.SecUser;
import oneit.utils.DateDiff;
import oneit.utils.parsers.FieldException;
import performa.orm.Company;
import performa.orm.CompanyUser;
public class StripeUtils
{
public static final String STRIPE_KEY = ConfigMgr.getKeyfileString("stripe.key","");
public static final String STRIPE_PUB_KEY = ConfigMgr.getKeyfileString("stripe.pubkey","");
public static final String STRIPE_PLAN_ID = ConfigMgr.getKeyfileString("stripe.plan.id","0001");
public static final String STRIPE_COUPON_ID = ConfigMgr.getKeyfileString("stripe.coupon.id","EAP");
static
{
Stripe.apiKey = STRIPE_KEY;
}
public static void createCustomer(CompanyUser companyUser) throws FieldException
{
try
{
Company company = companyUser.getCompany();
SecUser secUser = companyUser.getUser();
Map<String, Object> customerParams = new HashMap<>();
customerParams.put("description", company);
customerParams.put("email", secUser.getEmail());
Customer customer = Customer.create(customerParams);
company.setStripeReference(customer.getId());
}
catch (StorageException | AuthenticationException | InvalidRequestException | APIConnectionException | CardException | APIException ex)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, ex, "Error while creating a customer in stripe");
}
}
public static void subscribeCustomer(Company company) throws FieldException
{
try
{
Plan plan = Plan.retrieve(STRIPE_PLAN_ID);
Date today = new Date();
Date trialExpiry = DateDiff.add(today, Calendar.DATE, plan.getTrialPeriodDays());
Map<String, Object> item = new HashMap<>();
item.put("plan", STRIPE_PLAN_ID);
Map<String, Object> items = new HashMap<>();
items.put("0", item);
Map<String, Object> params = new HashMap<>();
params.put("items", items);
params.put("coupon", STRIPE_COUPON_ID);
params.put("customer", company.getStripeReference());
params.put("trial_end", trialExpiry.getTime() / 1000L);
Subscription subscription = Subscription.create(params);
company.setStripeSubscription(subscription.getId());
}
catch (StorageException | AuthenticationException | InvalidRequestException | APIConnectionException | CardException | APIException ex)
{
LogMgr.log(LoggingArea.ALL, LogLevel.PROCESSING1, ex, "Error while creating subscrition in stripe");
}
}
}
...@@ -40,13 +40,9 @@ public class Utils ...@@ -40,13 +40,9 @@ public class Utils
public static final String PRIV_ACCESS_APPLICANT_PORTAL = "TL_AccessApplicantPortal"; public static final String PRIV_ACCESS_APPLICANT_PORTAL = "TL_AccessApplicantPortal";
public static final String PRIV_ACCESS_COMPANY_ADMIN = "TL_AccessCompanyAdmin"; public static final String PRIV_ACCESS_COMPANY_ADMIN = "TL_AccessCompanyAdmin";
public static final String PRIV_ACCESS_COMPANY = "TL_AccessCompany"; public static final String PRIV_ACCESS_COMPANY = "TL_AccessCompany";
public static final String LEVEL_GENERAL_PURPOSE = "General Purpose";
public static final String LEVEL_SALES = "Sales";
public static final String LEVEL_MANAGEMENT = "Management";
public static final String LEVEL_EXECUTIVE = "Executive";
public static final String HEAP_ANALYSIS_ID = ConfigMgr.getKeyfileString("heap.analysis.id", "3411110378"); public static final String HEAP_ANALYSIS_ID = ConfigMgr.getKeyfileString("heap.analysis.id", "3411110378");
public static final String INTERCOM_APP_ID = ConfigMgr.getKeyfileString("intercom.appId", ""); public static final String INTERCOM_APP_ID = ConfigMgr.getKeyfileString("intercom.appId", "");
public static final String INTERCOM_TOKEN = ConfigMgr.getKeyfileString("intercom.token", ""); public static final String INTERCOM_TOKEN = ConfigMgr.getKeyfileString("intercom.token", "");
public static Role getRole(String role, ObjectTransaction transaction) public static Role getRole(String role, ObjectTransaction transaction)
{ {
...@@ -90,20 +86,6 @@ public class Utils ...@@ -90,20 +86,6 @@ public class Utils
return importances.toArray(new Importance[0]); return importances.toArray(new Importance[0]);
} }
// TODO: Levels hardcoded for this phase, needs to be changed later!
public static List<Tuple.T3> getLevelsForComprehensive(ObjectTransaction objTran)
{
List<Tuple.T3> levels = new ArrayList();
levels.add(new Tuple.T3(Level.searchName(objTran, LEVEL_GENERAL_PURPOSE), "General Purpose", "gn-pu"));
levels.add(new Tuple.T3(Level.searchName(objTran, LEVEL_SALES), "Sales", "sales-pic"));
levels.add(new Tuple.T3(Level.searchName(objTran, LEVEL_MANAGEMENT), "Management", "manag-pic"));
levels.add(new Tuple.T3(Level.searchName(objTran, LEVEL_EXECUTIVE), "Executive", "exe-pic"));
return levels;
}
//to sort jobs list //to sort jobs list
public static List<Job> getJobsSorted(Job[] jobs, JobSortOption jobSortOption, JobStatus jobStatus) public static List<Job> getJobsSorted(Job[] jobs, JobSortOption jobSortOption, JobStatus jobStatus)
{ {
......
...@@ -2557,6 +2557,46 @@ a.forgot-pass { ...@@ -2557,6 +2557,46 @@ a.forgot-pass {
color: #4a4a4a; color: #4a4a4a;
padding: 0 60px; padding: 0 60px;
} }
.reponsive-alert {
display: block;
width: 100%;
height: 100%;
padding: 2.5%;
box-sizing: border-box;
}
.responsive-alert-top {
height: 100%;
}
.reponsive-alert .responsive-alert-body {
height: 100%;
padding: 15% 0;
}
.grin-with-sweat{
font-size: 100px;
}
.responsive-alert-body{
border-radius: 2px;
background-color: #ffffff;
box-shadow: 0 0 30px 5px rgba(0, 0, 0, 0.2);
border: 1px solid #e8e8eb;
margin: 0 auto;
text-align: center;
padding: 0;
}
.responsive-alert-body h2{
font-size: 22px;
font-weight: 600;
color: #4a4a4a;
margin: 0 0 22px;
}
.responsive-alert-body p {
font-size: 16px;
font-weight: 300;
line-height: 1.56;
text-align: center;
color: #4a4a4a;
padding: 0 60px;
}
.create-y-f-job{ .create-y-f-job{
width: 100%; width: 100%;
border-top: 1px solid #ededef; border-top: 1px solid #ededef;
...@@ -2981,11 +3021,16 @@ span.export-candidate,span.appli-status-short{ ...@@ -2981,11 +3021,16 @@ span.export-candidate,span.appli-status-short{
width: 25%; width: 25%;
font-family: "Usual-Bold"; font-family: "Usual-Bold";
} }
.pro-bar { .score-bar {
padding: 28px 38px 22px 62px;
text-align: left; text-align: left;
cursor: pointer; cursor: pointer;
} }
.pro-bar {
padding: 28px 38px 22px 62px;
}
.express-bar {
padding: 10px 38px 35px 62px;
}
.pro-bar:hover{ .pro-bar:hover{
box-shadow: 3px 3px 15px #666; box-shadow: 3px 3px 15px #666;
border-color:#C76C0C; border-color:#C76C0C;
...@@ -3044,7 +3089,7 @@ span.appli-progress-bar { ...@@ -3044,7 +3089,7 @@ span.appli-progress-bar {
.hasarrow img{ .hasarrow img{
margin-top: -1px; margin-top: -1px;
} }
.main-pro-bar{ .main-score-bar{
border-bottom: solid 1px #e3e3e3; border-bottom: solid 1px #e3e3e3;
display: inline-block; display: inline-block;
width: 100%; width: 100%;
...@@ -3216,10 +3261,12 @@ input.add-note-btn:hover{ ...@@ -3216,10 +3261,12 @@ input.add-note-btn:hover{
padding-top: 0px; padding-top: 0px;
} }
.expand-hide-tag{ .expand-hide-tag{
display: none;
}
.core-values{
background-color: #f2f3f4; background-color: #f2f3f4;
float: left; float: left;
width: 100%; width: 100%;
display: none;
} }
.tab-row{ .tab-row{
float: left; float: left;
...@@ -4440,6 +4487,7 @@ img.alert-icon {float: left;} ...@@ -4440,6 +4487,7 @@ img.alert-icon {float: left;}
.job-filter li{margin: 0 8px;} .job-filter li{margin: 0 8px;}
.job-filter > ul {padding-right: 10%;} .job-filter > ul {padding-right: 10%;}
.pro-bar {padding: 25px 15px 22px;} .pro-bar {padding: 25px 15px 22px;}
.express-bar {padding: 10px 10px 30px;}
.app-right-b {padding: 20px 0 5px 15px;} .app-right-b {padding: 20px 0 5px 15px;}
.applicant-contact-info{padding: 20px 15px 5px;} .applicant-contact-info{padding: 20px 15px 5px;}
.applicant-note {padding: 20px 15px;} .applicant-note {padding: 20px 15px;}
...@@ -4459,7 +4507,6 @@ img.alert-icon {float: left;} ...@@ -4459,7 +4507,6 @@ img.alert-icon {float: left;}
.contact-value a{font-size: 11px;} .contact-value a{font-size: 11px;}
.applicant-tab ul li a{font-size: 9px;line-height: 40px;} .applicant-tab ul li a{font-size: 9px;line-height: 40px;}
.applicant-sidebar li {line-height: 38px;} .applicant-sidebar li {line-height: 38px;}
.pro-bar{padding: 20px 10px 15px;}
.chief-officer{font-size: 19px;} .chief-officer{font-size: 19px;}
.off-name{font-size: 12px;} .off-name{font-size: 12px;}
.appli-progress-bar .progress {height: 16px;} .appli-progress-bar .progress {height: 16px;}
...@@ -4940,7 +4987,7 @@ img.alert-icon {float: left;} ...@@ -4940,7 +4987,7 @@ img.alert-icon {float: left;}
.lable-job-shorting{font-size: 9px;} .lable-job-shorting{font-size: 9px;}
.applicant-header {padding: 18px 0;} .applicant-header {padding: 18px 0;}
.appli-label {font-size: 13px;text-align: center;width: 100%;margin-bottom: 5px;} .appli-label {font-size: 13px;text-align: center;width: 100%;margin-bottom: 5px;}
.pro-bar {padding: 10px 10px 8px;text-align: center;} .score-bar {padding: 10px 10px 8px;text-align: center;}
.rateing-title{font-size: 13px;padding: 23px 30px;width: 75%;position: relative;} .rateing-title{font-size: 13px;padding: 23px 30px;width: 75%;position: relative;}
.rateing-title span {font-size: 12px;position: absolute;right: -23%;top: 6px;} .rateing-title span {font-size: 12px;position: absolute;right: -23%;top: 6px;}
.int-timeline li,.int-timeline li a,.int-timeline{width: 100%;border-radius: 0;margin: 0;} .int-timeline li,.int-timeline li a,.int-timeline{width: 100%;border-radius: 0;margin: 0;}
......
...@@ -94,9 +94,24 @@ ...@@ -94,9 +94,24 @@
<NODE name="sign_up_jsp" factory="Participant"> <NODE name="sign_up_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/> <INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
<!--
TODO: uncomment when plans and billing screens are available for all users
<FORM name="*.send" factory="Participant" class="performa.form.SendVerificationMailFP"> <FORM name="*.send" factory="Participant" class="performa.form.SendVerificationMailFP">
<AccountVerificationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="CompanyAccountVerificationMail"/> <AccountVerificationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="CompanyAccountVerificationMail"/>
</FORM> </FORM>
-->
</NODE>
<!--TODO: delete when plans and billing screens are available for all users-->
<NODE name="sign_up_eap_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
<FORM name="*.send" factory="Participant" class="performa.form.SendVerificationMailFP">
<AccountVerificationEmailer factory="Participant" class="oneit.email.ConfigurableArticleTemplateEmailer" templateShortcut="CompanyAccountVerificationMail"/>
</FORM>
</NODE>
<NODE name="responsive_alert_jsp" factory="Participant">
<INHERITS factory="Named" nodename="CoreORMAdminNoPriv"/>
</NODE> </NODE>
<NODE name="verification_sent_jsp" factory="Participant"> <NODE name="verification_sent_jsp" factory="Participant">
......
<footer class="power-footer"> <footer class="power-footer">
<div class="footer-link text-center"> <div class="footer-link text-center">
<ul> <ul>
<li><a href="#">&COPY; <%= Calendar.getInstance().get(Calendar.YEAR) %> Talentology</a></li> <li><a href="https://www.talentology.com/" target="_blank">&COPY; <%= Calendar.getInstance().get(Calendar.YEAR) %> Talentology</a></li>
<li><a href="#">Privacy Policy</a></li> <li><a href="https://www.talentology.com/privacy/" target="_blank">Privacy Policy</a></li>
</ul> </ul>
</div> </div>
</footer> </footer>
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
<%@include file="/inc/std_imports.jsp" %> <%@include file="/inc/std_imports.jsp" %>
<%@include file="/hotjar.jsp" %> <%@include file="/hotjar.jsp" %>
<%@include file="/heapAnalysis.jsp" %> <%@include file="/heapAnalysis.jsp" %>
<%@page import="oneit.servlets.portability.BrowserServices"%>
</head> </head>
<script> <script>
window.intercomSettings = { window.intercomSettings = {
...@@ -32,6 +34,13 @@ ...@@ -32,6 +34,13 @@
</script> </script>
<body> <body>
<% <%
boolean isMobile = BrowserServices.isMobile(request);
if(isMobile)
{
response.sendRedirect(request.getContextPath() + "/extensions/adminportal/responsive_alert.jsp");
}
Article home = WebUtils.getArticleByShortCut(objTran, WebUtils.ADMIN_HOME); Article home = WebUtils.getArticleByShortCut(objTran, WebUtils.ADMIN_HOME);
String homeUrl = home.getLink(request); String homeUrl = home.getLink(request);
String signoutUrl = "logout.jsp?nextURL=" + homeUrl; String signoutUrl = "logout.jsp?nextURL=" + homeUrl;
......
...@@ -282,23 +282,30 @@ ...@@ -282,23 +282,30 @@
Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass); Map<FactorLevelLink, Map> factorDetails = factorClassDtls.get(factorClass);
Double rating = roleScoreMap.get(factorClass).get2(); Double rating = roleScoreMap.get(factorClass).get2();
ColorCode colorCode = roleScoreMap.get(factorClass).get1(); ColorCode colorCode = roleScoreMap.get(factorClass).get1();
String cssClass = colorCode.getCSSClass(); String cssClass = colorCode != null ? colorCode.getCSSClass() : "";
%> %>
<div class="main-pro-bar"> <div class="main-score-bar <%= job.isExpressJob() ? "" : "main-pro-bar"%>">
<div class="pro-bar"> <div class="score-bar <%= job.isExpressJob() ? "express-bar" : "pro-bar"%>">
<span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span> <span class="appli-label"><oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber"/></span> <%
<span class="appli-progress-bar"> if(!job.isExpressJob())
<div class="progress"> {
<div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div> %>
</div> <span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber"/></span>
</span> <span class="appli-progress-bar">
<span class="expand-box"> <div class="progress">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span> <div class="progress-bar <%= cssClass %>" role="progressbar" aria-valuenow="<%= rating %>" aria-valuemin="0" aria-valuemax="100" style="width:<%= rating %>%"></div>
</span> </div>
</span>
<span class="expand-box">
<span class="hasarrow"><img src="images/select-down-arrow.svg"></span>
</span>
<%
}
%>
</div> </div>
<div class="expand-hide-tag"> <div class="core-values <%= job.isExpressJob() ? "" : "expand-hide-tag"%>">
<% <%
for(FactorLevelLink factorLevelLink : factorDetails.keySet()) for(FactorLevelLink factorLevelLink : factorDetails.keySet())
{ {
...@@ -358,8 +365,8 @@ ...@@ -358,8 +365,8 @@
Long rating = cultureFitData.get(cClass).get0(); Long rating = cultureFitData.get(cClass).get0();
%> %>
<div class="main-pro-bar"> <div class="main-score-bar main-pro-bar">
<div class="pro-bar"> <div class="score-bar pro-bar">
<span class="appli-label"><oneit:toString value="<%= cClass %>" mode="EscapeHTML"/></span> <span class="appli-label"><oneit:toString value="<%= cClass %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber" /></span> <span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber" /></span>
<span class="appli-progress-bar"> <span class="appli-progress-bar">
...@@ -371,7 +378,7 @@ ...@@ -371,7 +378,7 @@
<span class="hasarrow"><img src="images/select-down-arrow.svg" /></span> <span class="hasarrow"><img src="images/select-down-arrow.svg" /></span>
</span> </span>
</div> </div>
<div class="expand-hide-tag"> <div class="core-values expand-hide-tag">
<% <%
for(Tuple.T3 tuple : cultureFitData.get(cClass).get1()) for(Tuple.T3 tuple : cultureFitData.get(cClass).get1())
{ {
...@@ -409,8 +416,8 @@ ...@@ -409,8 +416,8 @@
{ {
Long rating = requirementFitData.get(importance); Long rating = requirementFitData.get(importance);
%> %>
<div class="main-pro-bar <%= importance %>"> <div class="main-score-bar main-pro-bar <%= importance %>">
<div class="pro-bar"> <div class="score-bar pro-bar">
<span class="appli-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></span> <span class="appli-label"><oneit:toString value="<%= importance %>" mode="EscapeHTML"/></span>
<span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber" /></span> <span class="appli-percen gray"><oneit:toString value="<%= rating %>" mode="PercentageWholeNumber" /></span>
<span class="appli-progress-bar"> <span class="appli-progress-bar">
...@@ -433,7 +440,7 @@ ...@@ -433,7 +440,7 @@
if(reqAnswersByImportance.getValuesForKey(importance)!=null) if(reqAnswersByImportance.getValuesForKey(importance)!=null)
{ {
%> %>
<div class="expand-hide-tag"> <div class="core-values expand-hide-tag">
<% <%
for(AssessmentCriteriaAnswer answer: reqAnswersByImportance.getValuesForKey(importance)) for(AssessmentCriteriaAnswer answer: reqAnswersByImportance.getValuesForKey(importance))
{ {
......
...@@ -13,16 +13,7 @@ ...@@ -13,16 +13,7 @@
%> %>
<script> <script>
$(document).ready(function(){ $(document).ready(function(){
setupRecalc ($("form"), {'recalcOnError':true});
$('.type_radio').click(function(){
return false;
});
$(".level_radio").change(function(){
$('.form-page-area li.active').removeClass("active" );
$("input.level_radio:checked").closest('li').addClass("active" );
});
}); });
</script> </script>
<oneit:form name="editJob" method="post" enctype="multipart/form-data"> <oneit:form name="editJob" method="post" enctype="multipart/form-data">
...@@ -48,66 +39,58 @@ ...@@ -48,66 +39,58 @@
<% <%
FormTag jobForm = FormTag.getActiveFormTag(request); FormTag jobForm = FormTag.getActiveFormTag(request);
FormBuilder formBuilder = jobForm.getFormBuilder(); FormBuilder formBuilder = jobForm.getFormBuilder();
String assessmentTypeKey = WebUtils.getInputKey(request, job, Job.FIELD_AssessmentType); String assessmentTypeKey = WebUtils.getInputKey(request, job, Job.FIELD_AssessmentType);
String assessmentTypeValue = formBuilder.fieldValue (assessmentTypeKey, job.getAssessmentType() == null ? "" : job.getAssessmentType().getName()); String assessmentTypeValue = formBuilder.fieldValue (assessmentTypeKey, job.getAssessmentType() == null ? "" : job.getAssessmentType().getName());
for(AssessmentType assessmentType : AssessmentType.getAssessmentTypeArray()) for(AssessmentType assessmentType : AssessmentType.getAssessmentTypeArray())
{ {
if(assessmentType.getDisabled() == Boolean.TRUE)
{
continue;
}
String assessmentTypeId = assessmentType.getName(); String assessmentTypeId = assessmentType.getName();
String selectedStr = CollectionUtils.equals(assessmentTypeValue, assessmentTypeId) ? "checked" : ""; String selectedStr = CollectionUtils.equals(assessmentTypeValue, assessmentTypeId) ? "checked" : "";
String levelKey = WebUtils.getRadioSingleAssocKey(request, job, Job.SINGLEREFERENCE_Level);
String levelValue = formBuilder.fieldValue (levelKey, job.getLevel() == null ? "" : String.valueOf(job.getLevelID()));
%> %>
<div class="radio radio-primary job-match-radio"> <div class="radio radio-primary job-match-radio">
<input type="radio" name="<%= assessmentTypeKey %>" id="<%= assessmentTypeId %>" class="type_radio" value="<%= assessmentType.getName() %>" <%= selectedStr %>/> <input type="radio" name="<%= assessmentTypeKey %>" id="<%= assessmentTypeId %>" class="type_radio" value="<%= assessmentType.getName() %>" <%= selectedStr %>/>
<label for="<%= assessmentTypeId %>"> <label for="<%= assessmentTypeId %>">
<span class="label-title"><oneit:toString value="<%= assessmentType %>" mode="EscapeHTML" /></span> <span class="label-title"><oneit:toString value="<%= assessmentType %>" mode="EscapeHTML" /></span>
<oneit:toString value="<%= assessmentType.getHeaderDesc() %>" mode="EscapeHTML"/>
<oneit:toString value="<%= assessmentType.getQuestionDetails() %>" mode="EscapeHTML"/><br /> <oneit:toString value="<%= assessmentType.getQuestionDetails() %>" mode="EscapeHTML"/><br />
<span class="sub-radio-title"><oneit:toString value="<%= assessmentType.getAdditionalDesc() %>" mode="EscapeHTML" /></span>
</label> </label>
</div> </div>
<%
if(assessmentType == AssessmentType.COMPREHENSIVE) <oneit:recalcClass htmlTag="div" classScript="job.getAssessmentType() == assessmentType ? 'main-pack-type' : '' " job="<%= job %>" assessmentType="<%= assessmentType %>">
{ <ul>
String levelKey = WebUtils.getRadioSingleAssocKey(request, job, Job.SINGLEREFERENCE_Level); <%
String levelValue = formBuilder.fieldValue (levelKey, job.getLevel() == null ? "" : String.valueOf(job.getLevelID())); for(Level level : Level.getAllLevelsforAssessmentType(transaction, assessmentType))
%> {
<div class="main-pack-type"> String levelId = String.valueOf(level.getID().longID());
<ul> boolean isSelected = CollectionUtils.equals(levelId, levelValue);
<% String selected = isSelected ? "checked" : "";
for(Tuple.T3 tuple : Utils.getLevelsForComprehensive(transaction)) %>
{ <oneit:recalcClass htmlTag="li" classScript="job.getLevelClass(level)" job="<%= job %>" level="<%= level %>">
Level level = (Level)tuple.get0(); <a href="javascript:void(0)">
String levelId = String.valueOf(level.getID().longID()); <input type="radio" name="<%= levelKey %>" id="<%= levelId %>" class="level_radio" value="<%= levelId %>" <%= selected %>/>
boolean isSelected = CollectionUtils.equals(levelId, levelValue); <label for="<%= levelId %>">
String selected = isSelected ? "checked" : ""; <span class="talen">Talentology</span>
String liClass = isSelected ? "active" : ""; <span class="pack-type"><oneit:toString value="<%= level %>" mode="EscapeHTML" /></span>
%> <span class="pack-img <%= level.getCSSClass() %>"></span>
<li class="<%= liClass %>" > </label>
<a href="javascript:void(0)"> </a>
<input type="radio" name="<%= levelKey %>" id="<%= levelId %>" class="level_radio" value="<%= levelId %>" <%= selected %>/> </oneit:recalcClass>
<label for="<%= levelId %>"> <%
<span class="talen">Talentology</span> }
<span class="pack-type"><oneit:toString value="<%= tuple.get1() %>" mode="EscapeHTML" /></span> %>
<span class="pack-img <%= tuple.get2() %>"></span> </ul>
</label> </oneit:recalcClass>
</a> <div class="clearfix"></div>
</li>
<%
}
%>
</ul>
</div>
<div class="clearfix"></div>
<% <%
}
} }
String levelKey = WebUtils.getRadioSingleAssocKey(request, job, Job.SINGLEREFERENCE_Level);
String levelValue = formBuilder.fieldValue (levelKey, job.getLevel() == null ? "" : String.valueOf(job.getLevelID()));
%> %>
<div class="clearfix"></div>
<div class="text-center"> <div class="text-center">
<oneit:button value="Save as draft" name="saveJob" cssClass="btn btn-primary top-margin-37 largeBtn greyBtn" <oneit:button value="Save as draft" name="saveJob" cssClass="btn btn-primary top-margin-37 largeBtn greyBtn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", jobPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", jobPage)
......
...@@ -147,7 +147,7 @@ ...@@ -147,7 +147,7 @@
</div> </div>
</div> </div>
<div class="m-user-right"> <div class="m-user-right">
<oneit:ormEnum obj="<%= companyUser %>" attributeName="Role" cssClass="form-control user-role"/> <oneit:ormEnum obj="<%= companyUser %>" attributeName="Role" cssClass="form-control user-role" enums="<%= Arrays.asList(new RoleType[]{RoleType.ADMIN, RoleType.STANDARD}) %>"/>
</div> </div>
<oneit:button name="save" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>" <oneit:button name="save" value="Save" cssClass="<%= "save-user" + companyUser.getID().toString() + " hidden"%>"
requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser).mapEntry("nextPage", usersPage + "&UserSortOption=" + userSortOpt).toMap() %>" /> requestAttribs="<%= CollectionUtils.mapEntry("CompanyUser", companyUser).mapEntry("nextPage", usersPage + "&UserSortOption=" + userSortOpt).toMap() %>" />
......
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ page extends="oneit.servlets.jsp.FormJSP" %>
<%@ include file="/setuprequest.jsp" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%! protected String getName (ServletConfig config) { return "responsive_alert_jsp"; } %>
<%@ include file="inc/htmlheader_nopriv.jsp" %>
<%
String fromPage = request.getParameter("fromPage") != null ? (String) request.getParameter("fromPage") : "";
%>
<div class="modal reponsive-alert" role="dialog">
<div class="responsive-alert-top">
<div class="responsive-alert-body">
<div class="responsive-alert-wrapper">
<div class="grin-with-sweat">😅</div>
<h2>Uh oh</h2>
<p> Talentology for Hiring Teams is currently available on desktop computers only.</p>
<p>Sorry about that!</p>
<%
if(fromPage.trim().equals("signin"))
{
%>
<p>On your desktop, please return to our sign in and you’ll be on your way.</p>
<%
}
else
{
%>
<p>On your desktop, check your email for our "Welcome to Talentology" message, and follow its link to get started!</p>
<%
}
%>
<div class="create-y-f-job">
<img src="<%= request.getContextPath() %>/images/logo.svg">
</div>
</div>
</div>
</div>
</div>
<%@ include file="inc/htmlfooter_nopriv.jsp" %>
\ No newline at end of file
...@@ -3,9 +3,17 @@ ...@@ -3,9 +3,17 @@
<%@ include file="/setuprequest.jsp" %> <%@ include file="/setuprequest.jsp" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%> <%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %> <%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%@page import="oneit.servlets.portability.BrowserServices"%>
<%! protected String getName (ServletConfig config) { return "signin_jsp"; } %> <%! protected String getName (ServletConfig config) { return "signin_jsp"; } %>
<% <%
boolean isMobile = BrowserServices.isMobile(request);
if(isMobile)
{
response.sendRedirect(request.getContextPath() + "/extensions/adminportal/responsive_alert.jsp?fromPage=signin");
}
ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request); ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = process.getTransaction (); ObjectTransaction objTran = process.getTransaction ();
String nextPage = WebUtils.getArticleByShortCut(objTran, WebUtils.ADMIN_HOME).getLink(request); String nextPage = WebUtils.getArticleByShortCut(objTran, WebUtils.ADMIN_HOME).getLink(request);
......
<%@ page extends="oneit.servlets.jsp.FormJSP" %>
<%@ include file="/setuprequest.jsp" %>
<%@ include file="/inc/stdimports50.jsp" %><%-- This is in cougar --%>
<%@ include file="/extensions/performa/inc/stdimports.jsp" %>
<%! protected String getName (ServletConfig config) { return "sign_up_eap_jsp"; } %>
<%@ include file="inc/htmlheader_nopriv.jsp" %>
<%
ORMProcessState process = (ORMProcessState) ProcessDecorator.getDefaultProcess(request);
ObjectTransaction objTran = process.getTransaction ();
Boolean toRedirect = GenericObjDF.getOrCreateObject (request, "Company", Company.REFERENCE_Company);
Company company = (Company) process.getAttribute("Company");
SecUser secUser = null;
CompanyUser companyUser = company.getAddedByUser();
if(companyUser == null)
{
secUser = SecUser.createSecUser(objTran);
companyUser = secUser.getExtensionOrCreate(CompanyUser.REFERENCE_CompanyUser);
company.setAddedByUser(companyUser);
companyUser.setCompany(company);
}
secUser = companyUser.getUser();
if(toRedirect)
{
%><%@include file="/saferedirect.jsp"%><%
}
Debug.assertion(companyUser != null, "CompanyUser is null in admin portal");
%>
<script type="text/javascript">
$(document).ready(function() {
validate();
$('input').on('change keyup', function() { validate() });
});
function validate() {
var empty = false;
$('input[required]').each(function() {
if ( $.trim($( this ).val()) == '') {
empty = true;
if ($( this ).css('background-color') == 'rgb(250, 255, 189)') {
empty = false;
}
}
});
if (empty) {
$('.send-btn').attr('disabled', 'disabled');
} else {
$('.send-btn').removeAttr('disabled');
}
}
</script>
<style>
button[disabled] {
opacity: 0.6;
background-color: #0582ba;
}
</style>
<div class="hire-the-right-candi">Hire the right candidate</div>
<div>&nbsp;</div>
<oneit:form name="sign_up" method="post">
<oneit:dynInclude page="/extensions/applicantportal/inc/multifieldtext.jsp" data="<%= CollectionUtils.EMPTY_MAP%>"/>
<div class="main-box-layout login-box">
<oneit:dynInclude page="/extensions/adminportal/inc/company_user_data.jsp" data="<%= CollectionUtils.EMPTY_MAP%>" CompanyUser="<%= companyUser %>"/>
<oneit:button value="Sign up" name="send" cssClass="box-btn send-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", "verification_sent.jsp")
.mapEntry(NotificationUtils.NOTIFICATION_MSG_PARAM, "emailSent")
.mapEntry("Company", company)
.toMap() %>"/>
</div>
</oneit:form>
<%@ include file="inc/htmlfooter_nopriv.jsp" %>
\ 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">oneit_sec_user_extension</tableName>
<column name="stripe_reference" type="String" nullable="true" length="100"/>
<column name="stripe_subscription" type="String" nullable="true" length="100"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
...@@ -130,7 +130,7 @@ ...@@ -130,7 +130,7 @@
if(companyUser.getCompany().getAddedByUser() == companyUser) if(companyUser.getCompany().getAddedByUser() == companyUser)
{ {
%> %>
<oneit:button value="Verify and proceed" name="gotoPage" cssClass="box-btn verify-btn" <oneit:button value="Create my account" name="gotoPage" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin) requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin)
.mapEntry("procParams", CollectionUtils.mapEntry("Company", companyUser.getCompany()).toMap()) .mapEntry("procParams", CollectionUtils.mapEntry("Company", companyUser.getCompany()).toMap())
.mapEntry("nextPage", nextPage).toMap() %>"/> .mapEntry("nextPage", nextPage).toMap() %>"/>
...@@ -139,7 +139,7 @@ ...@@ -139,7 +139,7 @@
else else
{ {
%> %>
<oneit:button value="Verify and proceed" name="sendCompanyUserInvites" cssClass="box-btn verify-btn" <oneit:button value="Create my account" name="sendCompanyUserInvites" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin) requestAttribs="<%= CollectionUtils.mapEntry("socialLogin", socialLogin)
.mapEntry("CompanyUser", companyUser) .mapEntry("CompanyUser", companyUser)
.mapEntry("nextPage", homePage) .mapEntry("nextPage", homePage)
...@@ -147,6 +147,11 @@ ...@@ -147,6 +147,11 @@
<% <%
} }
%> %>
<div class="box-label" style="padding-top: 20px;">
By selecting 'Create my account' I agree to Talentology's
<a href="https://www.talentology.com/privacy/" target="_blank">privacy policy</a> and
<a href="https://www.talentology.com/terms-of-service/" target="_blank">terms of service</a>
</div>
</div> </div>
</oneit:form> </oneit:form>
</oneit:dynIncluded> </oneit:dynIncluded>
......
...@@ -145,26 +145,33 @@ ...@@ -145,26 +145,33 @@
<img src="images/app-job-match-icon.svg"> Role fit <img src="images/app-job-match-icon.svg"> Role fit
<span><oneit:toString value="<%= jobApplication.getRoleFitPercentage() %>" mode="PercentageTwoDP" /></span> <span><oneit:toString value="<%= jobApplication.getRoleFitPercentage() %>" mode="PercentageTwoDP" /></span>
</div> </div>
<div class="detail-box"> <%
<% if(!job.isExpressJob())
for(FactorClass factorClass : jobApplication.getSortedFactorClasses()) {
{ %>
if(factorClass != null && roleScoreMap.get(factorClass) != null) <div class="detail-box">
<%
for(FactorClass factorClass : jobApplication.getSortedFactorClasses())
{ {
%> if(factorClass != null && roleScoreMap.get(factorClass) != null)
<div class="detail-row"> {
<div class="detail-label"> %>
<oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/> <div class="detail-row">
</div> <div class="detail-label">
<div class="detail-no"> <oneit:toString value="<%= factorClass %>" mode="EscapeHTML"/>
<oneit:toString value="<%= roleScoreMap.get(factorClass).get2() %>" mode="PercentageWholeNumber"/> </div>
</div> <div class="detail-no">
</div> <oneit:toString value="<%= roleScoreMap.get(factorClass).get2() %>" mode="PercentageWholeNumber"/>
<% </div>
</div>
<%
}
} }
} %>
%> </div>
</div> <%
}
%>
<div class="culture jcc"> <div class="culture jcc">
<img src="images/culture-icon.svg"> culture fit <img src="images/culture-icon.svg"> culture fit
<span> <span>
......
...@@ -6,12 +6,12 @@ ...@@ -6,12 +6,12 @@
Powered by Powered by
</div> </div>
<div class="footer-site-logo"> <div class="footer-site-logo">
<a href="http://talentology.com/"><img src="images/logo.svg"></a> <a href="https://www.talentology.com/candidates-about-talentology/"><img src="images/logo.svg"></a>
</div> </div>
<div class="footer-link text-center"> <div class="footer-link text-center">
<ul> <ul>
<li><a href="http://talentology.com/">&copy; 2017 Talentology</a></li> <li><a href="https://www.talentology.com/candidates-about-talentology/">&copy; <%= Calendar.getInstance().get(Calendar.YEAR) %> Talentology</a></li>
<li><a href="#">Privacy Policy</a></li> <li><a href="https://www.talentology.com/privacy/" target="_blank">Privacy Policy</a></li>
</ul> </ul>
</div> </div>
</footer> </footer>
......
...@@ -25,44 +25,82 @@ ...@@ -25,44 +25,82 @@
String currentPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "JobMatchAssessment"); String currentPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "JobMatchAssessment");
String nextPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "SubmitApplication"); String nextPage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "SubmitApplication");
String culturePage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "WorkplaceCulture"); String culturePage = WebUtils.getArticleLink(request, objTran, WebUtils.JOB_APPLICATION, "WorkplaceCulture");
boolean isExpress = job.isExpressJob();
%> %>
<oneit:form name="editApplication" method="POST"> <oneit:form name="editApplication" method="POST">
<oneit:evalBody buffer="<%= getBuffer(request) %>"> <oneit:evalBody buffer="<%= getBuffer(request) %>">
<% <%
if(actualNumber == 1 ) if(actualNumber == 1 )
{ {
int maxRating = 7; int maxRating = 7;
int midRating = 4; int midRating = 4;
String otherRating = "2, 3, 5, 6"; String otherRating = "2, 3, 5, 6";
%> %>
<div class="main-sc-section sj-1"> <div class="main-sc-section sj-1">
<p>Using the scale given, indicate how important to you are the following aspects in your work life. Use the following system:</p> <p>Using the scale given, indicate how important to you are the following aspects in your work life. Use the following system:</p>
<ul class="security-level"> <ul class="security-level">
<li><span>1</span> means of very little importance to you</li> <li><span>1</span> means of very little importance to you</li>
<li><oneit:toString value="<%= midRating %>" mode="EscapeHTML"/> means about average in importance to you</li> <li><oneit:toString value="<%= midRating %>" mode="EscapeHTML"/> means about average in importance to you</li>
<li><oneit:toString value="<%= maxRating %>" mode="EscapeHTML"/> means of high importance to you</li> <li><oneit:toString value="<%= maxRating %>" mode="EscapeHTML"/> means of high importance to you</li>
</ul> </ul>
<p>Use the other numbers (<oneit:toString value="<%= otherRating %>" mode="EscapeHTML"/>) to indicate in-between levels of importance to you.</p> <p>Use the other numbers (<oneit:toString value="<%= otherRating %>" mode="EscapeHTML"/>) to indicate in-between levels of importance to you.</p>
</div> </div>
<div class="selection-br-line"></div> <div class="selection-br-line"></div>
<% <%
} }
else if(questionType == QuestionType.IPSATIVE && actualNumber == 31) else if(!isExpress && questionType == QuestionType.IPSATIVE && actualNumber == 31)
{
%>
<div class="main-sc-section sj-1">
<p>
For questions like these, indicate your preference by selecting the number closest to the term or idea that's most like you. We know that it can be challenging to make a choice sometimes, but try to avoid selecting the middle value.
</p>
</div>
<div class="selection-br-line"></div>
<%
}
else if(isExpress)
{
if(actualNumber == 17 || actualNumber == 30 || actualNumber == 34 || actualNumber == 37)
{ {
%> %>
<div class="main-sc-section sj-1"> <div class="main-sc-section sj-1">
<p> <p>
For questions like these, indicate your preference by selecting the number closest to the term or idea that's most like you. We know that it can be challenging to make a choice sometimes, but try to avoid selecting the middle value. <%
if(actualNumber == 17)
{
%>
To what extent would you like each of the following activities to be <strong>required</strong> in your work?
A score of 1 means &quot;not very much at all&quot;, 4 means &quot;an average amount&quot;, while 7 means &quot;very greatly indeed&quot;.
The other numbers indicate in-between scores in your view.
<%
}
else if(actualNumber == 30 || actualNumber == 37)
{
%>
To what extent are the following statements true about you?
Use the same scale with 1 meaning not at all like you, 4 meaning middling or rather like you and 7 meaning definitely like you.
<%
}
else if(actualNumber == 34)
{
%>
To what extent would you agree with each of the following statements about work life?
Mark your answer on the 7-point scale, with 1 meaning very little agreement with the statement, 4 meaning &quot;average&quot; or middling agreement and 7 meaning very strong agreement.
<%
}
%>
</p> </p>
</div> </div>
<div class="selection-br-line"></div> <div class="selection-br-line"></div>
<% <%
} }
%> }
%>
<div class="main-sc-section main-rate-section"> <div class="main-sc-section main-rate-section">
<% <%
int totNoOfQuestions = totalQuestions.size(); int totNoOfQuestions = totalQuestions.size();
...@@ -144,28 +182,28 @@ ...@@ -144,28 +182,28 @@
} }
%> %>
</div> </div>
<% <%
if(!jobApplication.cultureCompleted()) if(!jobApplication.cultureCompleted())
{ {
%> %>
<oneit:button value=" " name="gotoPage" id="gotoPageNext" cssClass="box-btn" <oneit:button value=" " name="gotoPage" id="gotoPageNext" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", culturePage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", culturePage)
.mapEntry ("restartProcess", Boolean.TRUE) .mapEntry ("restartProcess", Boolean.TRUE)
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication")) .mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.toMap() %>"/> .toMap() %>"/>
<% <%
} }
else else
{ {
%> %>
<oneit:button value=" " name="completeApplication" id="gotoPageNext" cssClass="box-btn" <oneit:button value=" " name="completeApplication" id="gotoPageNext" cssClass="box-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry ("restartProcess", Boolean.TRUE) .mapEntry ("restartProcess", Boolean.TRUE)
.mapEntry("attribNamesToRestore", Collections.singleton("JobApplication")) .mapEntry("attribNamesToRestore", Collections.singleton("JobApplication"))
.toMap() %>"/> .toMap() %>"/>
<% <%
} }
%> %>
</oneit:evalBody> </oneit:evalBody>
</oneit:form> </oneit:form>
\ No newline at end of file
...@@ -31,6 +31,9 @@ ...@@ -31,6 +31,9 @@
process.setAttribute("JobApplicationID" , jobApplication.getID().longValue()); process.setAttribute("JobApplicationID" , jobApplication.getID().longValue());
} }
//preloading
jobApplication.pipelineJobApplication().toCandidate().toProfileAssessmentAnswers().toQuestion().toRightQuestion().uniqueVals();
Job job = jobApplication.getJob(); Job job = jobApplication.getJob();
Candidate candidate = jobApplication.getCandidate(); Candidate candidate = jobApplication.getCandidate();
int questionNumber = jobApplication.getQuestionNumber(); int questionNumber = jobApplication.getQuestionNumber();
......
...@@ -18,8 +18,6 @@ ...@@ -18,8 +18,6 @@
} }
Debug.assertion(job != null, "Job is null in applicant portal"); Debug.assertion(job != null, "Job is null in applicant portal");
String socialLoginNextPage = nextPage + "&JobID=" + job.getID().toString();
%> %>
<script type="text/javascript"> <script type="text/javascript">
var interval; var interval;
...@@ -44,37 +42,7 @@ ...@@ -44,37 +42,7 @@
<oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML"/> <oneit:toString value="<%= job.getJobTitle() %>" mode="EscapeHTML"/>
</div> </div>
<div class="main-box-layout verify-i-setpone"> <div class="main-box-layout verify-i-setpone">
<div class="box-label">Sign in using your social network of choice</div>
<oneit:form name="socialLogin" method="post">
<ul class="social-login">
<li>
<oneit:button value=" " name="linkedinOAuthLogin" skin="link" cssClass="social_login_btn"
disabled="<%= Utils.linkedInAvailable() ? "false" : "true" %>"
requestAttribs="<%= CollectionUtils.mapEntry ("nextPage", socialLoginNextPage).toMap() %>">
<img src="<%= request.getContextPath() %>/images/login-linkedin-icon.svg" />
</oneit:button>
</li>
<li>
<oneit:button value=" " name="facebookOAuthLogin" skin="link" cssClass="social_login_btn"
disabled="<%= Utils.facebookAvailable() ? "false" : "true" %>"
requestAttribs="<%= CollectionUtils.mapEntry ("nextPage", socialLoginNextPage).toMap() %>">
<img src="<%= request.getContextPath() %>/images/login-facebok-icon.svg" />
</oneit:button>
</li>
<li>
<oneit:button value=" " name="googleOAuthLogin" skin="link" cssClass="social_login_btn"
disabled="<%= Utils.googleAvailable() ? "false" : "true" %>"
requestAttribs="<%= CollectionUtils.mapEntry ("nextPage", socialLoginNextPage).toMap() %>">
<img src="<%= request.getContextPath() %>/images/login-google.png" />
</oneit:button>
</li>
</ul>
</oneit:form>
<div class="box-br-line"><span></span></div>
<div class="box-label">Sent! Check your email now 😀</div> <div class="box-label">Sent! Check your email now 😀</div>
</div> </div>
</div> </div>
</oneit:dynIncluded> </oneit:dynIncluded>
\ No newline at end of file
...@@ -158,13 +158,18 @@ ...@@ -158,13 +158,18 @@
%> %>
<div class="text-center"> <div class="text-center">
<oneit:button value="<%= isVerify ? "Create my account" : "Verify and proceed"%>" name="verifyIdentity" cssClass="box-btn verify-btn" <oneit:button value="Create my account" name="verifyIdentity" cssClass="box-btn verify-btn"
requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage) requestAttribs="<%= CollectionUtils.mapEntry("nextPage", nextPage)
.mapEntry("Job",job) .mapEntry("Job",job)
.mapEntry("Candidate",candidate) .mapEntry("Candidate",candidate)
.mapEntry("isVerify",isVerify) .mapEntry("isVerify",isVerify)
.toMap() %>"/> .toMap() %>"/>
</div> </div>
<div class="box-label" style="padding-top: 20px;">
By selecting 'Create my account' I agree to Talentology's
<a href="https://www.talentology.com/privacy/" target="_blank">privacy policy</a> and
<a href="https://www.talentology.com/terms-of-service/" target="_blank">terms of service</a>
</div>
</div> </div>
</div> </div>
</oneit:form> </oneit:form>
......
<?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_level</tableName>
<column name="applied_to_express" type="Boolean" nullable="true"/>
</NODE>
<NODE name="DDL" factory="Participant" class="oneit.sql.transfer.RedefineTableOperation">
<tableName factory="String">tl_quest_lin</tableName>
<column name="is_express_question" type="Boolean" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
-- @AutoRun
update tl_level set applied_to_express = 'N';
update tl_quest_lin set is_express_question = 'N';
This source diff could not be displayed because it is too large. You can view the blob instead.
alter table tl_level_class_criteria alter column weighting drop not null;
<?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_level</tableName>
<column name="css_class" type="String" nullable="true" length="100"/>
<column name="enabled" type="Boolean" nullable="true"/>
</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_quest_lin</tableName>
<column name="inner_sort_order" type="Long" nullable="true"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
update tl_level set enabled = 'N';
update tl_level set enabled = 'Y' where level_desc in ('Management', 'General Purpose', 'Sales', 'Executive', 'Customer Service', 'Non-Managers');
update tl_level set css_class = 'manag-pic' where level_desc = 'Management';
update tl_level set css_class = 'exe-pic' where level_desc = 'Executive';
update tl_level set css_class = 'sales-pic' where level_desc in ('Sales', 'Customer Service');
update tl_level set css_class = 'gn-pu' where level_desc in ('Non-Managers', 'General Purpose');
update tl_quest_lin set inner_sort_order = 1;
update tl_quest_lin set inner_sort_order = 0 where object_id in (1051, 1056, 1073);
<?xml version="1.0"?>
<!-- @AutoRun -->
<OBJECTS name="">
<NODE name="Script" factory="Vector">
<NODE name="insertOp" factory="Participant" class="oneit.sql.transfer.InsertOperation">
<tableName factory="String">tl_level_norm</tableName>
<value name='object_id' factory='Participant' class="oneit.sql.transfer.DBTransferer$ObjectID"/>
<value name='object_last_updated_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='object_created_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='level_number' factory='Integer'>1001</value>
<value name='mean_score' factory='Double'>138.202437480215</value>
<value name='max_score' factory='Double'>160</value>
<value name='min_score' factory='Double'>75</value>
<value name='stddev_score' factory='Double'>14.7452681120821</value>
<value name='left_mean_score' factory='Double'>123.457169368133</value>
<value name='right_mean_score' factory='Double'>152.947705592297</value>
<value name='wght_mean_score' factory='Double'>940.692465970244</value>
<value name='wght_stddev_score' factory='Double'>107.142439252228</value>
<value name='wght_left_mean_score' factory='Double'>833.550026718016</value>
<value name='wght_right_mean_score' factory='Double'>1047.83490522247</value>
</NODE>
<NODE name="insertOp" factory="Participant" class="oneit.sql.transfer.InsertOperation">
<tableName factory="String">tl_level_norm</tableName>
<value name='object_id' factory='Participant' class="oneit.sql.transfer.DBTransferer$ObjectID"/>
<value name='object_last_updated_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='object_created_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='level_number' factory='Integer'>1002</value>
<value name='mean_score' factory='Double'>141.329177057357</value>
<value name='max_score' factory='Double'>160</value>
<value name='min_score' factory='Double'>58</value>
<value name='stddev_score' factory='Double'>13.9459276967423</value>
<value name='left_mean_score' factory='Double'>127.383249360614</value>
<value name='right_mean_score' factory='Double'>155.275104754099</value>
<value name='wght_mean_score' factory='Double'>1018.50997506234</value>
<value name='wght_stddev_score' factory='Double'>98.2572227406089</value>
<value name='wght_left_mean_score' factory='Double'>920.252752321735</value>
<value name='wght_right_mean_score' factory='Double'>1116.76719780295</value>
</NODE>
<NODE name="insertOp" factory="Participant" class="oneit.sql.transfer.InsertOperation">
<tableName factory="String">tl_level_norm</tableName>
<value name='object_id' factory='Participant' class="oneit.sql.transfer.DBTransferer$ObjectID"/>
<value name='object_last_updated_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='object_created_date' class="oneit.sql.transfer.DBTransferer$Timestamp"/>
<value name='level_number' factory='Integer'>1003</value>
<value name='mean_score' factory='Double'>140.98855938582</value>
<value name='max_score' factory='Double'>160</value>
<value name='min_score' factory='Double'>25</value>
<value name='stddev_score' factory='Double'>14.8990033103132</value>
<value name='left_mean_score' factory='Double'>126.089556075506</value>
<value name='right_mean_score' factory='Double'>155.887562696133</value>
<value name='wght_mean_score' factory='Double'>928.618846906518</value>
<value name='wght_stddev_score' factory='Double'>97.8014012838546</value>
<value name='wght_left_mean_score' factory='Double'>830.817445622664</value>
<value name='wght_right_mean_score' factory='Double'>1026.42024819037</value>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
Add followings to keyfile.properties - only for production
stripe.key=sk_live_oqwyeVyRa7Cpy2XmEgbTmi8D
stripe.pubkey=pk_live_pxpYJQUaXO4aYiBIy03GQA8D
Following are required only if stripe plan and coupon details have changed. Default values set are 0001 and EAP respectively.
stripe.plan.id
stripe.coupon.id
\ 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">oneit_sec_user_extension</tableName>
<column name="roles" type="String" nullable="true" length="200"/>
</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_company</tableName>
<column name="stripe_reference" type="String" nullable="true" length="100"/>
<column name="stripe_subscription" type="String" nullable="true" length="100"/>
</NODE>
</NODE>
</OBJECTS>
\ No newline at end of file
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