diff --git a/marlo-data/src/main/java/org/cgiar/ccafs/marlo/data/manager/impl/CrpProgramOutcomeIndicatorManagerImpl.java b/marlo-data/src/main/java/org/cgiar/ccafs/marlo/data/manager/impl/CrpProgramOutcomeIndicatorManagerImpl.java index b4d8bda4bb..c81b44d87b 100644 --- a/marlo-data/src/main/java/org/cgiar/ccafs/marlo/data/manager/impl/CrpProgramOutcomeIndicatorManagerImpl.java +++ b/marlo-data/src/main/java/org/cgiar/ccafs/marlo/data/manager/impl/CrpProgramOutcomeIndicatorManagerImpl.java @@ -100,16 +100,14 @@ public void remove(CrpProgramOutcomeIndicator originalCrpOutcomeIndicator, Phase List outcomes = crpProgramOutcomeManager.getAllCrpProgramOutcomesByComposedIdFromPhase( originalCrpOutcomeIndicator.getCrpProgramOutcome().getComposeID(), initialPhase.getId()); - if (outcomes != null) { + if (outcomes != null && !outcomes.isEmpty()) { for (CrpProgramOutcome crpProgramOutcome : outcomes) { - if (this.getCrpProgramOutcomeIndicatorByOutcomeAndIndicator(originalCrpOutcomeIndicator.getIndicator(), - crpProgramOutcome) != null - || (!this.getCrpProgramOutcomeIndicatorByOutcomeAndIndicator(originalCrpOutcomeIndicator.getIndicator(), - crpProgramOutcome).isEmpty())) { - List indicators = - new ArrayList<>(this.getCrpProgramOutcomeIndicatorByOutcomeAndIndicator( - originalCrpOutcomeIndicator.getIndicator(), crpProgramOutcome)); + List result = this.getCrpProgramOutcomeIndicatorByOutcomeAndIndicator( + originalCrpOutcomeIndicator.getIndicator(), crpProgramOutcome); + + if (result != null && !result.isEmpty()) { + List indicators = new ArrayList<>(result); for (CrpProgramOutcomeIndicator indicator : indicators) { if (indicator != null && indicator.getId() != null) { diff --git a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/impactpathway/OutcomesAction.java b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/impactpathway/OutcomesAction.java index 887a4f4a8e..f5b04a69dd 100644 --- a/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/impactpathway/OutcomesAction.java +++ b/marlo-web/src/main/java/org/cgiar/ccafs/marlo/action/impactpathway/OutcomesAction.java @@ -870,11 +870,11 @@ public void saveIndicators(CrpProgramOutcome crpProgramOutcomeDB, CrpProgramOutc if (crpProgramOutcomeIndicator != null && !crpProgramOutcomeDetached.getIndicators().contains(crpProgramOutcomeIndicator)) { crpProgramOutcomeIndicatorManager.deleteCrpProgramOutcomeIndicator(crpProgramOutcomeIndicator.getId()); - crpProgramOutcomeIndicatorManager.remove(crpProgramOutcomeIndicator, nextPhase); + // crpProgramOutcomeIndicatorManager.remove(crpProgramOutcomeIndicator, nextPhase); } } else { crpProgramOutcomeIndicatorManager.deleteCrpProgramOutcomeIndicator(crpProgramOutcomeIndicator.getId()); - crpProgramOutcomeIndicatorManager.remove(crpProgramOutcomeIndicator, nextPhase); + // crpProgramOutcomeIndicatorManager.remove(crpProgramOutcomeIndicator, nextPhase); } } diff --git a/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/menu-projects.ftl b/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/menu-projects.ftl index 6994ef4603..b016268358 100644 --- a/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/menu-projects.ftl +++ b/marlo-web/src/main/webapp/WEB-INF/crp/views/projects/menu-projects.ftl @@ -179,12 +179,31 @@ [/#if] [#assign enableUnsubmitButton = !upKeepActive ] - [#-- Submit button --] - [#if enableUnsubmitButton && canEdit] - [#assign showSubmit=(canSubmit && !submission && completed)] - - [@s.text name="form.buttons.submit" /] - + + [#if action.canAccessSuperAdmin()] + + [#-- Submit button --] + [#assign showSubmit=(!submission)] + [#if enableUnsubmitButton && showSubmit] +
+ + [/#if] + + [#else] + + [#-- Submit button --] + [#if enableUnsubmitButton && canEdit] + [#assign showSubmit=(canSubmit && !submission && completed)] + + [@s.text name="form.buttons.submit" /] + + [/#if] + [/#if] [#-- Unsubmit button --]