diff --git a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/projects/DeliverableAction.java b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/projects/DeliverableAction.java index c6472fa300..085484c599 100644 --- a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/projects/DeliverableAction.java +++ b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/projects/DeliverableAction.java @@ -694,12 +694,15 @@ public void fillSoilIndicatorsText() { for (SoilIndicator soilIndicator : soilIndicators) { if (soilIndicator != null && soilIndicator.getIndicatorName() != null) { if (soilIndicatorsText == null) { - soilIndicatorsText = soilIndicator.getIndicatorName(); + soilIndicatorsText = soilIndicatorsText + "(" + soilIndicator.getIndicatorName(); } else { - soilIndicatorsText.concat(", " + soilIndicator.getIndicatorName()); + soilIndicatorsText = soilIndicatorsText + ", " + soilIndicator.getIndicatorName(); } } - + } + if (soilIndicatorsText != null && !soilIndicatorsText.isEmpty()) { + soilIndicatorsText = soilIndicatorsText.replace("null", ""); + soilIndicatorsText = soilIndicatorsText + ")"; } } } catch (Exception e) { diff --git a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/summaries/ReportingSummaryAction.java b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/summaries/ReportingSummaryAction.java index e57dc9964a..75e551d3f7 100644 --- a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/summaries/ReportingSummaryAction.java +++ b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/summaries/ReportingSummaryAction.java @@ -25,6 +25,8 @@ import org.cgiar.ccafs.marlo.data.manager.DeliverableCrossCuttingMarkerManager; import org.cgiar.ccafs.marlo.data.manager.DeliverableGeographicRegionManager; import org.cgiar.ccafs.marlo.data.manager.DeliverableLocationManager; +import org.cgiar.ccafs.marlo.data.manager.DeliverableShfrmPriorityActionManager; +import org.cgiar.ccafs.marlo.data.manager.DeliverableShfrmSubActionManager; import org.cgiar.ccafs.marlo.data.manager.GenderTypeManager; import org.cgiar.ccafs.marlo.data.manager.GlobalUnitManager; import org.cgiar.ccafs.marlo.data.manager.InstitutionManager; @@ -55,104 +57,7 @@ import org.cgiar.ccafs.marlo.data.manager.RepositoryChannelManager; import org.cgiar.ccafs.marlo.data.manager.SrfTargetUnitManager; import org.cgiar.ccafs.marlo.data.manager.UserManager; -import org.cgiar.ccafs.marlo.data.model.Activity; -import org.cgiar.ccafs.marlo.data.model.CrpProgram; -import org.cgiar.ccafs.marlo.data.model.CrpProgramOutcome; -import org.cgiar.ccafs.marlo.data.model.CrpProgramOutcomeIndicator; -import org.cgiar.ccafs.marlo.data.model.CrpTargetUnit; -import org.cgiar.ccafs.marlo.data.model.Deliverable; -import org.cgiar.ccafs.marlo.data.model.DeliverableActivity; -import org.cgiar.ccafs.marlo.data.model.DeliverableCrossCuttingMarker; -import org.cgiar.ccafs.marlo.data.model.DeliverableCrp; -import org.cgiar.ccafs.marlo.data.model.DeliverableCrpOutcome; -import org.cgiar.ccafs.marlo.data.model.DeliverableDataSharingFile; -import org.cgiar.ccafs.marlo.data.model.DeliverableDissemination; -import org.cgiar.ccafs.marlo.data.model.DeliverableFundingSource; -import org.cgiar.ccafs.marlo.data.model.DeliverableGeographicRegion; -import org.cgiar.ccafs.marlo.data.model.DeliverableGeographicScope; -import org.cgiar.ccafs.marlo.data.model.DeliverableIntellectualAsset; -import org.cgiar.ccafs.marlo.data.model.DeliverableIntellectualAssetPantentTypeEnum; -import org.cgiar.ccafs.marlo.data.model.DeliverableIntellectualAssetTypeEnum; -import org.cgiar.ccafs.marlo.data.model.DeliverableLocation; -import org.cgiar.ccafs.marlo.data.model.DeliverableMetadataElement; -import org.cgiar.ccafs.marlo.data.model.DeliverableParticipant; -import org.cgiar.ccafs.marlo.data.model.DeliverablePublicationMetadata; -import org.cgiar.ccafs.marlo.data.model.DeliverableQualityCheck; -import org.cgiar.ccafs.marlo.data.model.DeliverableType; -import org.cgiar.ccafs.marlo.data.model.DeliverableUser; -import org.cgiar.ccafs.marlo.data.model.DeliverableUserPartnership; -import org.cgiar.ccafs.marlo.data.model.DeliverableUserPartnershipPerson; -import org.cgiar.ccafs.marlo.data.model.ExpectedStudyProject; -import org.cgiar.ccafs.marlo.data.model.GlobalUnitProject; -import org.cgiar.ccafs.marlo.data.model.Institution; -import org.cgiar.ccafs.marlo.data.model.IpElement; -import org.cgiar.ccafs.marlo.data.model.IpIndicator; -import org.cgiar.ccafs.marlo.data.model.IpProjectContribution; -import org.cgiar.ccafs.marlo.data.model.IpProjectIndicator; -import org.cgiar.ccafs.marlo.data.model.LocElement; -import org.cgiar.ccafs.marlo.data.model.ProgramType; -import org.cgiar.ccafs.marlo.data.model.Project; -import org.cgiar.ccafs.marlo.data.model.ProjectBudget; -import org.cgiar.ccafs.marlo.data.model.ProjectClusterActivity; -import org.cgiar.ccafs.marlo.data.model.ProjectCommunication; -import org.cgiar.ccafs.marlo.data.model.ProjectComponentLesson; -import org.cgiar.ccafs.marlo.data.model.ProjectDeliverableShared; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudy; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyCenter; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyCountry; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyCrp; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyCrpOutcome; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyFlagship; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyGeographicScope; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyInfo; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyInnovation; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyInstitution; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyLink; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyPolicy; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyQuantification; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyReference; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudyRegion; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudySrfTarget; -import org.cgiar.ccafs.marlo.data.model.ProjectExpectedStudySubIdo; -import org.cgiar.ccafs.marlo.data.model.ProjectFocus; -import org.cgiar.ccafs.marlo.data.model.ProjectHighlight; -import org.cgiar.ccafs.marlo.data.model.ProjectHighlightCountry; -import org.cgiar.ccafs.marlo.data.model.ProjectHighlightType; -import org.cgiar.ccafs.marlo.data.model.ProjectHighligthsTypeEnum; -import org.cgiar.ccafs.marlo.data.model.ProjectInfo; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovation; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationContributingOrganization; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationCountry; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationCrp; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationDeliverable; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationGeographicScope; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationInfo; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationOrganization; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationRegion; -import org.cgiar.ccafs.marlo.data.model.ProjectInnovationShared; -import org.cgiar.ccafs.marlo.data.model.ProjectLeverage; -import org.cgiar.ccafs.marlo.data.model.ProjectLocation; -import org.cgiar.ccafs.marlo.data.model.ProjectLocationElementType; -import org.cgiar.ccafs.marlo.data.model.ProjectLp6Contribution; -import org.cgiar.ccafs.marlo.data.model.ProjectLp6ContributionDeliverable; -import org.cgiar.ccafs.marlo.data.model.ProjectMilestone; -import org.cgiar.ccafs.marlo.data.model.ProjectOutcome; -import org.cgiar.ccafs.marlo.data.model.ProjectOutcomeIndicator; -import org.cgiar.ccafs.marlo.data.model.ProjectPartner; -import org.cgiar.ccafs.marlo.data.model.ProjectPartnerLocation; -import org.cgiar.ccafs.marlo.data.model.ProjectPartnerPartnership; -import org.cgiar.ccafs.marlo.data.model.ProjectPartnerPartnershipLocation; -import org.cgiar.ccafs.marlo.data.model.ProjectPartnerPartnershipResearchPhase; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicy; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicyCrossCuttingMarker; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicyCrp; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicyInnovation; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicyOwner; -import org.cgiar.ccafs.marlo.data.model.ProjectPolicySubIdo; -import org.cgiar.ccafs.marlo.data.model.ProjectStatusEnum; -import org.cgiar.ccafs.marlo.data.model.RepositoryChannel; -import org.cgiar.ccafs.marlo.data.model.SrfTargetUnit; -import org.cgiar.ccafs.marlo.data.model.Submission; +import org.cgiar.ccafs.marlo.data.model.*; import org.cgiar.ccafs.marlo.utils.APConfig; import org.cgiar.ccafs.marlo.utils.FileManager; import org.cgiar.ccafs.marlo.utils.HTMLParser; @@ -285,6 +190,8 @@ public static Predicate distinctByKey(Function keyExtractor private final DeliverableGeographicRegionManager deliverableGeographicRegionManager; private final ProjectDeliverableSharedManager projectDeliverableSharedManager; private final UserManager userManager; + private final DeliverableShfrmPriorityActionManager deliverableShfrmPriorityActionManager; + private final DeliverableShfrmSubActionManager deliverableShfrmSubActionManager; @Inject public ReportingSummaryAction(APConfig config, GlobalUnitManager crpManager, ProjectManager projectManager, @@ -313,7 +220,9 @@ public ReportingSummaryAction(APConfig config, GlobalUnitManager crpManager, Pro ActivityManager activityManager, DeliverableActivityManager deliverableActivityManager, DeliverableLocationManager deliverableLocationManager, DeliverableGeographicRegionManager deliverableGeographicRegionManager, - ProjectDeliverableSharedManager projectDeliverableSharedManager, UserManager userManager) { + ProjectDeliverableSharedManager projectDeliverableSharedManager, UserManager userManager, + DeliverableShfrmPriorityActionManager deliverableShfrmPriorityActionManager, + DeliverableShfrmSubActionManager deliverableShfrmSubActionManager) { super(config, crpManager, phaseManager, projectManager); this.programManager = programManager; this.institutionManager = institutionManager; @@ -352,6 +261,8 @@ public ReportingSummaryAction(APConfig config, GlobalUnitManager crpManager, Pro this.deliverableGeographicRegionManager = deliverableGeographicRegionManager; this.projectDeliverableSharedManager = projectDeliverableSharedManager; this.userManager = userManager; + this.deliverableShfrmPriorityActionManager = deliverableShfrmPriorityActionManager; + this.deliverableShfrmSubActionManager = deliverableShfrmSubActionManager; } /** @@ -667,6 +578,12 @@ private MasterReport addi8nParameters(MasterReport masterReport) { masterReport.getParameterValues().put("i8nDeliverableType", this.getText("deliverable.type")); masterReport.getParameterValues().put("i8nDeliverableNewExpectedYear", this.getText("deliverable.newExpectedYear")); masterReport.getParameterValues().put("i8nDeliverablesActivities", this.getText("project.activities.title")); + masterReport.getParameterValues().put("i8nDeliverablesContributingSHFRM", + this.getText("deliverable.shfrmContribution.question.reporting")); + masterReport.getParameterValues().put("i8nDeliverablesContributingNarrative", + this.getText("deliverable.shfrmContribution.narrative.reporting")); + masterReport.getParameterValues().put("i8nDeliverablesActions", + "To which Priority(ies) action is contributing to:"); /* * Activities */ @@ -2807,7 +2724,8 @@ private TypedTableModel getDeliverablesReportingTableModel() { "intellectualAssetPvpBreederCrop", "intellectualAssetDateFilling", "intellectualAssetDateRegistration", "intellectualAssetDateExpiry", "intellectualAssetAdditionalInformation", "intellectualAssetLinkPublished", "intellectualAssetCommunication", "otherPartner", "deliv_description", "activities", "geographicScope", - "countries", "regions", "sharedClusters", "focusEvent", "likelyOutcomes"}, + "countries", "regions", "sharedClusters", "focusEvent", "likelyOutcomes", "isContributing", + "contributingNarrative", "shfrmActions"}, new Class[] {Long.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, @@ -2820,7 +2738,7 @@ private TypedTableModel getDeliverablesReportingTableModel() { String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, - String.class, String.class, String.class}, + String.class, String.class, String.class, String.class, String.class, String.class}, 0); SimpleDateFormat formatter = new SimpleDateFormat("MMM yyyy"); if (!project.getDeliverables().isEmpty()) { @@ -3741,6 +3659,67 @@ private TypedTableModel getDeliverablesReportingTableModel() { } } } + + String isContributing = "", contributingNarrative = "", shfrmActions = ""; + + // SOIL Contribution + if (deliverable.getDeliverableInfo() != null + && deliverable.getDeliverableInfo().getContributingShfrm() != null) { + if (deliverable.getDeliverableInfo().getContributingShfrm() == true) { + isContributing = "Yes"; + } else { + isContributing = "No"; + } + } else { + isContributing = ""; + } + + if (isContributing.equals("Yes")) { + + if (deliverable.getDeliverableInfo().getShfrmContributionNarrativeAR() != null) { + contributingNarrative = deliverable.getDeliverableInfo().getShfrmContributionNarrativeAR(); + } else { + contributingNarrative = ""; + } + + List actions = new ArrayList<>(); + List subActions = new ArrayList<>(); + String actionsText = ""; + + try { + actions = deliverableShfrmPriorityActionManager.findByDeliverableAndPhase(deliverable.getId(), + this.getSelectedPhase().getId()); + + if (actions != null && !actions.isEmpty()) { + for (DeliverableShfrmPriorityAction action : actions) { + if (action != null && action.getShfrmPriorityAction() != null + && action.getShfrmPriorityAction().getId() != null + && action.getShfrmPriorityAction().getComposedName() != null) { + actionsText += "
● " + action.getShfrmPriorityAction().getComposedName(); + subActions = deliverableShfrmSubActionManager.findByPriorityActionAndPhase(action.getId(), + this.getSelectedPhase().getId()); + + if (subActions != null && !subActions.isEmpty()) { + actionsText += "
SubActions:
"; + for (DeliverableShfrmSubAction subAction : subActions) { + if (subAction != null && subAction.getShfrmSubAction() != null + && subAction.getShfrmSubAction().getComposedName() != null) { + actionsText += " ● " + subAction.getShfrmSubAction().getComposedName() + "
"; + } + } + } + } + } + } + shfrmActions = actionsText; + } catch (Exception e) { + LOG.error(e + " error getting shfrm actions and subactions"); + } + } else { + contributingNarrative = ""; + shfrmActions = ""; + } + model.addRow(new Object[] {deliverable.getId(), deliverable.getDeliverableInfo().getTitle(), delivType, delivSubType, delivStatus, delivYear, keyOutput, leader, institution, fundingSources, crossCutting, delivNewYear, delivNewYearJustification, delivDisseminationChannel, delivDisseminationUrl, delivOpenAccess, @@ -3758,7 +3737,7 @@ private TypedTableModel getDeliverablesReportingTableModel() { intellectualAssetPvpBreederCrop, intellectualAssetDateFilling, intellectualAssetDateRegistration, intellectualAssetDateExpiry, intellectualAssetAdditionalInformation, intellectualAssetLinkPublished, intellectualAssetCommunication, otherPartner, delivDescription, activities, geographicScope, countries, - regions, sharedClusters, focusEvent, likelyOutcomes}); + regions, sharedClusters, focusEvent, likelyOutcomes, isContributing, contributingNarrative, shfrmActions}); } } return model; @@ -3784,7 +3763,7 @@ private TypedTableModel getDeliverablesTableModel() { "intellectualAssetPvpBreederCrop", "intellectualAssetDateFilling", "intellectualAssetDateRegistration", "intellectualAssetDateExpiry", "intellectualAssetAdditionalInformation", "intellectualAssetLinkPublished", "intellectualAssetCommunication", "otherPartner", "deliv_description", "activities", "geographicScope", - "countries", "regions", "sharedClusters"}, + "countries", "regions", "sharedClusters", "isContributing", "contributingNarrative", "shfrmActions"}, new Class[] {Long.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, @@ -3796,7 +3775,8 @@ private TypedTableModel getDeliverablesTableModel() { Boolean.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, - String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class}, + String.class, String.class, String.class, String.class, String.class, String.class, String.class, String.class, + String.class, String.class, String.class}, 0); SimpleDateFormat formatter = new SimpleDateFormat("MMM yyyy"); if (!project.getDeliverables().isEmpty()) { @@ -3822,7 +3802,8 @@ private TypedTableModel getDeliverablesTableModel() { .collect(Collectors.toList())) { String delivType = null, delivSubType = null, delivYear = null, keyOutput = "", leader = null, institution = null, fundingSources = "", deliv_description = null, otherPartner = "", activities = "", - geographicScope = "", countries = "", regions = "", sharedClusters = ""; + geographicScope = "", countries = "", regions = "", sharedClusters = "", isContributing = "", + contributingNarrative = "", shfrmActions = ""; // String delivDescription = deliverable.getDeliverableInfo(this.getSelectedPhase()).getDescription(); String delivStatus = deliverable.getDeliverableInfo(this.getSelectedPhase()).getStatusName(this.getSelectedPhase()); @@ -4685,6 +4666,65 @@ private TypedTableModel getDeliverablesTableModel() { } } } + + // SOIL Contribution + if (deliverable.getDeliverableInfo() != null + && deliverable.getDeliverableInfo().getContributingShfrm() != null) { + if (deliverable.getDeliverableInfo().getContributingShfrm() == true) { + isContributing = "Yes"; + } else { + isContributing = "No"; + } + } else { + isContributing = ""; + } + + if (isContributing.equals("Yes")) { + + if (deliverable.getDeliverableInfo().getShfrmContributionNarrative() != null) { + contributingNarrative = deliverable.getDeliverableInfo().getShfrmContributionNarrative(); + } else { + contributingNarrative = ""; + } + + List actions = new ArrayList<>(); + List subActions = new ArrayList<>(); + String actionsText = ""; + + try { + actions = deliverableShfrmPriorityActionManager.findByDeliverableAndPhase(deliverable.getId(), + this.getSelectedPhase().getId()); + + if (actions != null && !actions.isEmpty()) { + for (DeliverableShfrmPriorityAction action : actions) { + if (action != null && action.getShfrmPriorityAction() != null + && action.getShfrmPriorityAction().getId() != null + && action.getShfrmPriorityAction().getComposedName() != null) { + actionsText += "
● " + action.getShfrmPriorityAction().getComposedName(); + subActions = deliverableShfrmSubActionManager.findByPriorityActionAndPhase(action.getId(), + this.getSelectedPhase().getId()); + + if (subActions != null && !subActions.isEmpty()) { + actionsText += "
SubActions:
"; + for (DeliverableShfrmSubAction subAction : subActions) { + if (subAction != null && subAction.getShfrmSubAction() != null + && subAction.getShfrmSubAction().getComposedName() != null) { + actionsText += " ● " + subAction.getShfrmSubAction().getComposedName() + "
"; + } + } + } + } + } + } + shfrmActions = actionsText; + } catch (Exception e) { + LOG.error(e + " error getting shfrm actions and subactions"); + } + } else { + contributingNarrative = ""; + shfrmActions = ""; + } + model.addRow(new Object[] {deliverable.getId(), deliverable.getDeliverableInfo().getTitle(), delivType, delivSubType, delivStatus, delivYear, keyOutput, leader, institution, fundingSources, crossCutting, delivNewYear, delivNewYearJustification, delivDisseminationChannel, delivDisseminationUrl, delivOpenAccess, @@ -4702,7 +4742,7 @@ private TypedTableModel getDeliverablesTableModel() { intellectualAssetPvpBreederCrop, intellectualAssetDateFilling, intellectualAssetDateRegistration, intellectualAssetDateExpiry, intellectualAssetAdditionalInformation, intellectualAssetLinkPublished, intellectualAssetCommunication, otherPartner, delivDescription, activities, geographicScope, countries, - regions, sharedClusters}); + regions, sharedClusters, isContributing, contributingNarrative, shfrmActions}); } } return model; diff --git a/marlo-web/src/main/resources/custom/aicrra.properties b/marlo-web/src/main/resources/custom/aicrra.properties index bc3abec4e2..9195ef14c1 100644 --- a/marlo-web/src/main/resources/custom/aicrra.properties +++ b/marlo-web/src/main/resources/custom/aicrra.properties @@ -2685,7 +2685,7 @@ project.deliverable.generalInformation.year=Year of expected completion project.deliverable.generalInformation.justification=Status justification project.deliverable.generalInformation.outcome=Outcome project.deliverable.generalInformation.keyOutput=Performance Indicators -project.deliverable.generalInformation.keyOutput.help=If you select yes in SHFRM question, please make sure to select at least one SHFRM indicator +project.deliverable.generalInformation.keyOutput.help=If you select yes in SHFRM question, please make sure to select at least one SHFRM indicator {0} project.deliverable.generalInformation.keyOutputNotice=If the indicator you are looking for is not listed, please ensure the indicator is mapped to this cluster by clicking here project.deliverable.generalInformation.keyOutputNotList1=Remember that you must to add cluster of activities project.deliverable.generalInformation.keyOutputNotList2=, then you will be able to select key outputs. diff --git a/marlo-web/src/main/resources/global.properties b/marlo-web/src/main/resources/global.properties index 4d1f743647..ed749b3a8b 100644 --- a/marlo-web/src/main/resources/global.properties +++ b/marlo-web/src/main/resources/global.properties @@ -2776,7 +2776,7 @@ project.deliverable.generalInformation.year=Year of expected completion project.deliverable.generalInformation.justification=Status justification project.deliverable.generalInformation.outcome=Outcome project.deliverable.generalInformation.keyOutput=Key Output -project.deliverable.generalInformation.keyOutput.help=If you select yes in SHFRM question, please make sure to select at least one SHFRM indicator +project.deliverable.generalInformation.keyOutput.help=If you select yes in SHFRM question, please make sure to select at least one SHFRM indicator {0} project.deliverable.generalInformation.keyOutputNotice=Click here to add or edit the list of contribution to performance indicators project.deliverable.generalInformation.keyOutputNotList1=Remember that you must to add cluster of activities project.deliverable.generalInformation.keyOutputNotList2=, then you will be able to select key outputs. diff --git a/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Planning).prpt b/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Planning).prpt index a59854899f..2fa6b1ab30 100644 Binary files a/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Planning).prpt and b/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Planning).prpt differ diff --git a/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Reporting).prpt b/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Reporting).prpt index 728e1e76cb..09d70313a0 100644 Binary files a/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Reporting).prpt and b/marlo-web/src/main/resources/pentaho/crp/ProjectFullPDF(Reporting).prpt differ diff --git a/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/deliverableInfo.ftl b/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/deliverableInfo.ftl index a92c1360bd..9859fa1b00 100644 --- a/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/deliverableInfo.ftl +++ b/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/deliverableInfo.ftl @@ -161,7 +161,7 @@
- [@customForm.elementsListComponent name="deliverable.crpOutcomes" elementType="crpProgramOutcome" elementList=(deliverable.crpOutcomes)![] label="project.deliverable.generalInformation.keyOutput" listName="programOutcomes" keyFieldName="id" help="project.deliverable.generalInformation.keyOutput.help" helpIcon=false displayFieldName="composedName" required=true maxLimit=3/] + [@customForm.elementsListComponent name="deliverable.crpOutcomes" elementType="crpProgramOutcome" elementList=(deliverable.crpOutcomes)![] label="project.deliverable.generalInformation.keyOutput" listName="programOutcomes" keyFieldName="id" help="project.deliverable.generalInformation.keyOutput.help" helpIcon=false paramText=soilIndicatorsText displayFieldName="composedName" required=true maxLimit=3/]