Tony CHEMIT pushed to branch develop-7.x at ultreiaio / ird-observe Commits: b5a3eb17 by Tony Chemit at 2020-07-02T12:10:40+02:00 [PS] Pratiques de remise à l'eau, cétacés non trouvés - Closes #1564 - - - - - 5 changed files: - client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java - − dto/src/main/java/fr/ird/observe/dto/referential/SpeciesGroupHelper.java - services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/NonTargetCatchReleaseServiceLocal.java - services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java - services/src/main/java/fr/ird/observe/services/service/data/seine/NonTargetCatchReleaseService.java Changes: ===================================== client-core/src/main/java/fr/ird/observe/client/ui/content/data/seine/NonTargetCatchReleaseUIHandler.java ===================================== @@ -21,6 +21,7 @@ */ package fr.ird.observe.client.ui.content.data.seine; +import com.google.common.collect.ImmutableSet; import fr.ird.observe.client.constants.AcquisitionMode; import fr.ird.observe.client.db.constants.DataContextType; import fr.ird.observe.client.ui.content.ContentMode; @@ -42,8 +43,8 @@ import fr.ird.observe.dto.referential.seine.NonTargetCatchReleaseConformityRefer import fr.ird.observe.dto.referential.seine.NonTargetCatchReleaseStatusReference; import fr.ird.observe.dto.referential.seine.NonTargetCatchReleasingTimeReference; import fr.ird.observe.dto.result.SaveResultDto; -import org.apache.logging.log4j.Logger; import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; import org.nuiton.jaxx.runtime.spi.UIHandler; import org.nuiton.validator.NuitonValidatorScope; @@ -85,8 +86,11 @@ public class NonTargetCatchReleaseUIHandler extends ContentTableUIHandler<SetSei updateSpecies(species); } }; + addReferentialFilter(NonTargetCatchReleaseDto.PROPERTY_SPECIES, incomingReferences -> { - ReferentialDtoReferenceSet<SpeciesReference> sampleSpecies = getNonTargetCatchReleaseService().getSampleSpecies(getSelectedParentId()); + + ImmutableSet<String> speciesGroupIds = ImmutableSet.copyOf(speciesGroupDtoMap.keySet()); + ReferentialDtoReferenceSet<SpeciesReference> sampleSpecies = getNonTargetCatchReleaseService().getSampleSpecies(getSelectedParentId(), speciesGroupIds); return new LinkedList<>(sampleSpecies.toSet()); }); } ===================================== dto/src/main/java/fr/ird/observe/dto/referential/SpeciesGroupHelper.java deleted ===================================== @@ -1,36 +0,0 @@ -package fr.ird.observe.dto.referential; - -/*- - * #%L - * ObServe :: Dto - * %% - * Copyright (C) 2008 - 2020 IRD, Code Lutin, Ultreia.io - * %% - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as - * published by the Free Software Foundation, either version 3 of the - * License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public - * License along with this program. If not, see - * <http://www.gnu.org/licenses/gpl-3.0.html>. - * #L% - */ - -import java.util.Arrays; -import java.util.List; - -public class SpeciesGroupHelper extends GeneratedSpeciesGroupHelper { - //FIXME PROTECTED-ID - public static final List<String> SPECIES_GROUP_IDS = Arrays.asList( - "fr.ird.observe.entities.referentiel.SpeciesGroup#1445863056144#0.9820877553253712", - "fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683690#0.24333033683679461", - "fr.ird.observe.entities.referentiel.SpeciesGroup#1446014286433#0.6480183366605247", - "fr.ird.observe.entities.referentiel.SpeciesGroup#1239832683689#0.7120116158620075" - ); -} ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/data/seine/NonTargetCatchReleaseServiceLocal.java ===================================== @@ -22,11 +22,11 @@ package fr.ird.observe.services.local.service.data.seine; * #L% */ +import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.data.seine.SetSeineNonTargetCatchReleaseDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; import fr.ird.observe.dto.referential.SpeciesReference; -import fr.ird.observe.dto.referential.SpeciesGroupHelper; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.SetSeine; @@ -45,7 +45,7 @@ public class NonTargetCatchReleaseServiceLocal extends ObserveServiceLocal imple private static final Logger log = LogManager.getLogger(NonTargetCatchReleaseServiceLocal.class); @Override - public ReferentialDtoReferenceSet<SpeciesReference> getSampleSpecies(String setSeineId) { + public ReferentialDtoReferenceSet<SpeciesReference> getSampleSpecies(String setSeineId, ImmutableSet<String> speciesGroupIds) { if (log.isTraceEnabled()) { log.trace("getSampleSpecies(" + setSeineId + ")"); } @@ -55,7 +55,7 @@ public class NonTargetCatchReleaseServiceLocal extends ObserveServiceLocal imple return SPECIES_SPI.toReferentialReferenceSet(setSeine.getNonTargetCatch().stream() .map(NonTargetCatch::getSpecies) .distinct() - .filter(s -> SpeciesGroupHelper.SPECIES_GROUP_IDS.contains(s.getSpeciesGroup().getTopiaId())) + .filter(s -> speciesGroupIds.contains(s.getSpeciesGroup().getTopiaId())) .collect(Collectors.toList()), getReferentialLocale(), null); } ===================================== services-local/src/main/java/fr/ird/observe/services/local/service/referential/ReferentialServiceLocal.java ===================================== @@ -43,7 +43,6 @@ import fr.ird.observe.dto.referential.ReferentialDto; import fr.ird.observe.dto.referential.ReferentialLocale; import fr.ird.observe.dto.referential.SpeciesDto; import fr.ird.observe.dto.referential.SpeciesGroupDto; -import fr.ird.observe.dto.referential.SpeciesGroupHelper; import fr.ird.observe.dto.referential.seine.ObservedSystemReference; import fr.ird.observe.dto.result.SaveResultDto; import fr.ird.observe.entities.ObserveDataEntity; @@ -96,6 +95,7 @@ import java.util.Objects; import java.util.Optional; import java.util.Set; import java.util.function.Predicate; +import java.util.stream.Collector; import java.util.stream.Collectors; /** @@ -169,11 +169,8 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe @Override public ImmutableSet<SpeciesGroupDto> loadSensibleSpeciesGroup() { - ImmutableSet.Builder<SpeciesGroupDto> result = ImmutableSet.builder(); - for (String speciesGroupId : SpeciesGroupHelper.SPECIES_GROUP_IDS) { - result.add(loadSpeciesGroup(speciesGroupId)); - } - return result.build(); + ImmutableSet<SpeciesGroupDto> speciesGroups = loadDtoList(SpeciesGroupDto.class); + return ImmutableSet.copyOf(speciesGroups.stream().filter(t -> !t.isSpeciesGroupReleaseModeEmpty()).collect(Collectors.toSet())); } @Override @@ -307,13 +304,13 @@ public class ReferentialServiceLocal extends ObserveServiceLocal implements Refe try { lastUpdateOptional = getLastUpdate(dtoType); } catch (Exception e) { - throw new IllegalStateException("Can't find lastUpdateDate for referential: "+dtoType.getName()); + throw new IllegalStateException("Can't find lastUpdateDate for referential: " + dtoType.getName()); } ReferentialDtoReferenceSet<R> result = null; if (lastUpdateOptional.isPresent() && (lastUpdateDate == null || lastUpdateOptional.get().after(lastUpdateDate))) { List<E> entities = getTopiaPersistenceContext().loadEntities(entityType); - if (filter!=null) { - entities = entities.stream().filter(filter).collect(Collectors.toList()); + if (filter != null) { + entities = entities.stream().filter(filter).collect(Collectors.toList()); } result = toReferentialReferenceSet(spi.toEntityReferenceBinder(), entities, lastUpdateOptional.get()); } ===================================== services/src/main/java/fr/ird/observe/services/service/data/seine/NonTargetCatchReleaseService.java ===================================== @@ -22,6 +22,7 @@ package fr.ird.observe.services.service.data.seine; * #L% */ +import com.google.common.collect.ImmutableSet; import fr.ird.observe.dto.data.seine.SetSeineNonTargetCatchReleaseDto; import fr.ird.observe.dto.form.Form; import fr.ird.observe.dto.reference.ReferentialDtoReferenceSet; @@ -41,7 +42,7 @@ public interface NonTargetCatchReleaseService extends ObserveService { @Get @ReadDataPermission - ReferentialDtoReferenceSet<SpeciesReference> getSampleSpecies(String setSeineId); + ReferentialDtoReferenceSet<SpeciesReference> getSampleSpecies(String setSeineId, ImmutableSet<String> speciesGroupIds); @Get @ReadDataPermission View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5a3eb17f937f8e7aea6b7ad12... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5a3eb17f937f8e7aea6b7ad12... You're receiving this email because of your account on gitlab.com.