This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository tutti. See http://git.codelutin.com/tutti.git commit 873f1ab15c1f997f229f193b0268843e9690e1a4 Author: Tony CHEMIT <chemit@codelutin.com> Date: Mon Aug 24 15:49:29 2015 +0200 Corrige la perte des rôles enregistrés sur les traits dès qu'on modifie une campagne (refs #7283) --- .../service/CruisePersistenceServiceImpl.java | 24 ++++++++++++++++++++-- 1 file changed, 22 insertions(+), 2 deletions(-) diff --git a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java index 7fa8b8c..3c2e576 100644 --- a/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java +++ b/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/CruisePersistenceServiceImpl.java @@ -775,14 +775,34 @@ public class CruisePersistenceServiceImpl extends AbstractPersistenceService imp } } - Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newLinkedHashMap(); - VesselPersonRole scientificCruiseManagerRole = vesselPersonFeaturesPersistenceHelper.getScientificCruiseManagerRole(); VesselPersonRole sortRoomManagerRole = vesselPersonFeaturesPersistenceHelper.getSortRoomManagerRole(); + Map<Integer, VesselPersonFeatures> vesselPersonFeaturesMap = Maps.newLinkedHashMap(); + + // On ajoute au dictionnaire les vesselPersonFeatures avec d'autres rôles que les deux gérés par cet écran + // On fait ça car il y a un effet de bord, en faisant un clear sur fishingTrip.getVesselPersonFeatures() + // on supprime du coup tous rôles autres (ceux par exemple du rôle saissiseur utilisé sur un trait) + + if (fishingTrip.getVesselPersonFeatures() != null) { + for (VesselPersonFeatures vesselPersonFeatures : fishingTrip.getVesselPersonFeatures()) { + Collection<VesselPersonRole> vesselPersonRoles = vesselPersonFeatures.getVesselPersonRoles(); + vesselPersonRoles.remove(scientificCruiseManagerRole); + vesselPersonRoles.remove(sortRoomManagerRole); + if (!vesselPersonRoles.isEmpty()) { + + // On doit conserver ce vesselPersonFeatures, il utilise d'autre rôles + Integer personId = vesselPersonFeatures.getPerson().getId(); + vesselPersonFeaturesMap.put(personId, vesselPersonFeatures); + + } + } + + } + short personRankOrder = 1; // Head of Mission Managers (act as rankOrder 0) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.