From 0a653f2edad94e417614d9cb72f88ddf8a40b58b Mon Sep 17 00:00:00 2001 From: Fabio Sinibaldi Date: Wed, 9 Nov 2022 18:35:44 +0100 Subject: [PATCH] Fixed centroid visibility evaluation --- .../plugins/ConcessioniLifeCycleManager.java | 22 +++++++++++++------ 1 file changed, 15 insertions(+), 7 deletions(-) diff --git a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java index ee9f6d9..b5493a9 100644 --- a/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java +++ b/concessioni-lifecycle/src/main/java/org/gcube/application/cms/concessioni/plugins/ConcessioniLifeCycleManager.java @@ -210,14 +210,14 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements if(!indexingProject.getRelationshipsByName(FOLLOWS).isEmpty()) scanRelation(projects,access.getRelations(indexingProject.getProfileID(), indexingProject.getId(), FOLLOWS,true).get(0),false); - log.debug("Produced full chain from {}, evaluating last available for PHASE {} ",indexingProject.getId(), + log.debug("Produced full chain [size : {}] from {}, evaluating last available for PHASE {} ",projects.size(),indexingProject.getId(), indexingProject.getLifecycleInformation().getPhase()); List toDisplayId = new ArrayList<>(); List toHideIds = new ArrayList<>(); log.trace("Checking from LAST.. "); - // recurse from last + // Projects is time -ordered so we scan from last for(int i = projects.size()-1;i>=0;i--) { Project p = projects.get(i); log.debug("Currently checking {} : {}",p.getId(),p.getTheDocument().get("nome")); @@ -225,11 +225,15 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements toHideIds.add(p.getId()); else { //Still need to find candidate for displaying feature - // Check PHASE - switch(indexingProject.getLifecycleInformation().getPhase()){ + + //Our currently indexing project is always a good candidate + if(p.getId().equals(indexingProject.getId())) + toDisplayId.add(p.getId()); + //We check PHASE in order to skip projects not yet in the PHASE we are indexing + else switch(indexingProject.getLifecycleInformation().getPhase()){ case Phases.PENDING_APPROVAL:{ - if (p.getLifecycleInformation().getPhase().equals(Phases.PENDING_APPROVAL)|| - p.getLifecycleInformation().getPhase().equals(Phases.PUBLISHED)) + if ((p.getLifecycleInformation().getPhase().equals(Phases.PENDING_APPROVAL)|| + p.getLifecycleInformation().getPhase().equals(Phases.PUBLISHED))) toDisplayId.add(p.getId()); break; } @@ -239,7 +243,8 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements break; } } - if(toDisplayId != null) + + if(!toDisplayId.isEmpty()) log.debug("Found last concessioni candidate for displaying. ID {}, PHASE {} ",toDisplayId,p.getLifecycleInformation().getPhase()); else toHideIds.add(p.getId()); // Still not found } @@ -247,6 +252,9 @@ public class ConcessioniLifeCycleManager extends Default3PhaseManager implements toReturn.put("_toHideIds",toHideIds); toReturn.put("_toDisplayIds",toDisplayId); + + + log.info("Indexing request for Concessione [ID {}] with to HIDE {} and toDisplay {} ",indexingProject.getId(),toHideIds,toDisplayId); return toReturn; } catch (Exception e) { log.error("Unable to evaluate to Hide and Display Ids ",e);