Skip to content

Commit

Permalink
🔧 chore(Project outcomes): Update validators
Browse files Browse the repository at this point in the history
  • Loading branch information
kenjitm committed Feb 26, 2024
1 parent 2e01e55 commit 84b99fb
Show file tree
Hide file tree
Showing 3 changed files with 40 additions and 183 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -202,6 +202,12 @@ public double defineProjectOutcomeOrder(ProjectOutcome projectOutcome) {
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("Indicator 3")) {
orderIndex = 3;
}
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("Indicator 4")) {
orderIndex = 4;
}
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("Indicator 5")) {
orderIndex = 5;
}
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("1.1")) {
orderIndex = 11;
}
Expand Down Expand Up @@ -235,6 +241,9 @@ public double defineProjectOutcomeOrder(ProjectOutcome projectOutcome) {
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("2.5")) {
orderIndex = 25;
}
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("2.6")) {
orderIndex = 26;
}
if (projectOutcome.getCrpProgramOutcome().getDescription().contains("3.1")) {
orderIndex = 31;
}
Expand Down Expand Up @@ -453,6 +462,12 @@ public void prepare() throws Exception {
}
}
}

if (project.getOutcomes() != null) {
for (ProjectOutcome projectOutcome : project.getOutcomes()) {
this.defineProjectOutcomeOrder(projectOutcome);
}
}
}


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -146,192 +146,21 @@ public void validateAiccraProjectOutcomeIndicator(BaseAction action, ProjectOutc

if (projectOutcomeIndicator != null && projectOutcome != null && projectOutcome.getCrpProgramOutcome() != null
&& projectOutcome.getCrpProgramOutcome().getDescription() != null) {
String programOutcome = projectOutcome.getCrpProgramOutcome().getDescription();

// PDO 1 and 3
if (programOutcome.contains("PDO Indicator 1") || programOutcome.contains("PDO Indicator 3")
|| programOutcome.contains("PDO Indicator 4")) {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {
if (projectOutcomeIndicator.getNarrative() != null) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
} else {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
// }
/*
* if (i == 0) {
* if (projectOutcomeIndicator.getValue() == null || projectOutcomeIndicator.getValue().longValue() < 0) {
* action.addMessage(action.getText("projectOutcomeIndicator.value"));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].value",
* InvalidFieldsMessages.EMPTYFIELD);
* }
* }
*/
if (action.isReportingActive()) {

if (!(this.isValidString(projectOutcomeIndicator.getAchievedNarrative())
&& this.wordCount(projectOutcomeIndicator.getAchievedNarrative()) <= 100)) {
/*
* action.addMessage(action.getText("projectOutcomeIndicator.requeried.achievedNarrative", params));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].achievedNarrative",
* InvalidFieldsMessages.EMPTYFIELD);
*/
}


/*
* if (projectOutcomeIndicator.getValueReporting() == null
* || projectOutcomeIndicator.getValueReporting().longValue() < 0) {
* action.addMessage(action.getText("projectOutcomeIndicator.valueReporting"));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].valueReporting",
* InvalidFieldsMessages.EMPTYFIELD);
* }
*/
}

}

// PDO 2
if (programOutcome.contains("PDO Indicator 2")) {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {
if (projectOutcomeIndicator.getNarrative() != null) {
if (i != 0) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
}
} else {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
// }

if (action.isReportingActive()) {

// if (!(this.isValidString(projectOutcomeIndicator.getAchievedNarrative())
// && this.wordCount(projectOutcomeIndicator.getAchievedNarrative()) <= 100)) {
/*
* action.addMessage(action.getText("projectOutcomeIndicator.requeried.achievedNarrative", params));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].achievedNarrative",
* InvalidFieldsMessages.EMPTYFIELD);
*/
// }
}
}

// IPI 1.1 and IPI 1.4
if (programOutcome.contains("IPI 1.1") || programOutcome.contains("IPI 1.4")) {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {

if (projectOutcomeIndicator.getNarrative() != null) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
} else {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {
if (projectOutcomeIndicator.getNarrative() != null) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
// }


if (action.isReportingActive()) {

// if (!(this.isValidString(projectOutcomeIndicator.getAchievedNarrative())
// && this.wordCount(projectOutcomeIndicator.getAchievedNarrative()) <= 100)) {
/*
* action.addMessage(action.getText("projectOutcomeIndicator.requeried.achievedNarrative", params));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].achievedNarrative",
* InvalidFieldsMessages.EMPTYFIELD);
*/
// }
}
}

// IPI 1.2 and IPI 2.2
if (programOutcome.contains("IPI 1.2") || programOutcome.contains("IPI 2.2")) {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {
if (projectOutcomeIndicator.getNarrative() != null) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
} else {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
// }


if (action.isReportingActive()) {
// if (!(this.isValidString(projectOutcomeIndicator.getAchievedNarrative())
// && this.wordCount(projectOutcomeIndicator.getAchievedNarrative()) <= 100)) {
/*
* action.addMessage(action.getText("projectOutcomeIndicator.requeried.achievedNarrative", params));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].achievedNarrative",
* InvalidFieldsMessages.EMPTYFIELD);
*/
// }
}
}

// IPI 2.1, 2.3, IPI 3.1, IPI 3.2, IPI 3.4, IPI 3.5
if (programOutcome.contains("IPI 2.1") || programOutcome.contains("IPI 2.3") || programOutcome.contains("IPI 3.1")
|| programOutcome.contains("IPI 3.2") || programOutcome.contains("IPI 3.4")
|| programOutcome.contains("IPI 2.4") || programOutcome.contains("IPI 2.5")
|| programOutcome.contains("IPI 3.5") || programOutcome.contains("IPI 2.6")) {
List<String> params = new ArrayList<>();
params.add(String.valueOf(i + 1));
// if (action.isPlanningActive()) {
if (projectOutcomeIndicator.getNarrative() != null) {
if (!(this.isValidString(projectOutcomeIndicator.getNarrative())
&& this.wordCount(projectOutcomeIndicator.getNarrative()) <= 150)) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
} else {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}
// }

if (action.isReportingActive()) {
if (!(this.isValidString(projectOutcomeIndicator.getAchievedNarrative())
&& this.wordCount(projectOutcomeIndicator.getAchievedNarrative()) <= 100)) {
/*
* action.addMessage(action.getText("projectOutcomeIndicator.requeried.achievedNarrative", params));
* action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].achievedNarrative",
* InvalidFieldsMessages.EMPTYFIELD);
*/
}
}
} else {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative", params));
action.getInvalidFields().put("input-projectOutcome.indicators[" + i + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}

}
Expand Down Expand Up @@ -509,6 +338,19 @@ public void validateProjectOutcome(BaseAction action, ProjectOutcome projectOutc

if (action.hasSpecificities(APConstants.CRP_BASELINE_INDICATORS)) {
if (action.isAiccra()) {

// Validate project outcomes without answers for the questions
projectOutcome.setCrpProgramOutcome(
crpProgramOutcomeManager.getCrpProgramOutcomeById(projectOutcome.getCrpProgramOutcome().getId()));
projectOutcome.getCrpProgramOutcome().setIndicators(projectOutcome.getCrpProgramOutcome()
.getCrpProgramOutcomeIndicators().stream().filter(c -> c.isActive()).collect(Collectors.toList()));
if (projectOutcome.getCrpProgramOutcome() != null
&& projectOutcome.getCrpProgramOutcome().getIndicators() != null && projectOutcome.getIndicators() == null) {
action.addMessage(action.getText("projectOutcomeIndicator.requeried.narrative"));
action.getInvalidFields().put("input-projectOutcome.indicators[" + 0 + "].narrative",
InvalidFieldsMessages.EMPTYFIELD);
}

if (projectOutcome.getIndicators() != null && !projectOutcome.getIndicators().isEmpty()) {
for (int i = 0; i < projectOutcome.getIndicators().size(); i++) {
this.validateAiccraProjectOutcomeIndicator(action, projectOutcome, projectOutcome.getIndicators().get(i),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -180,14 +180,14 @@
[#if editable]

[#if (action.isAFPhase(actualPhase.id))!false]
[@customForm.input name="projectOutcome.expectedValue" i18nkey="projectOutcome.expectedValueAF" paramText=(afYear)!2023 type="text" placeholder="" className="targetValue" required=true editable=!reportingActive && editOutcomeExpectedValue/]
[@customForm.input name="projectOutcome.expectedValue" i18nkey="projectOutcome.expectedValueAF" paramText=(projectOutcome.crpProgramOutcome.year)!afYear type="text" placeholder="" className="targetValue" required=true editable=!reportingActive && editOutcomeExpectedValue/]
[#else]
[@customForm.input name="projectOutcome.expectedValue" type="text" placeholder="" className="targetValue" required=true editable=!reportingActive && editOutcomeExpectedValue/]
[/#if]

[#else]
[#if (action.isAFPhase(actualPhase.id))!false]
<label for="">[@s.text name="projectOutcome.expectedValueAF" /]${afYear}: </label>
<label for="">[@s.text name="projectOutcome.expectedValueAF" /]${(projectOutcome.crpProgramOutcome.year)!afYear}: </label>
[#else]
<label for="">[@s.text name="projectOutcome.expectedValue" /]: </label>
[/#if]
Expand Down

0 comments on commit 84b99fb

Please sign in to comment.