This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository observe. See https://gitlab.nuiton.org/codelutin/observe.git commit 3c5c622085b651e07f00db5254c6ccadacda1013 Author: Tony CHEMIT <chemit@codelutin.com> Date: Thu Nov 3 10:57:32 2016 +0100 Ajout NonTargetLength.speciesFate (service) --- .../request/ReferenceSetRequestDefinitions.java | 1 + .../src/main/xmi/observe-services-dto-seine.zargo | Bin 60028 -> 60479 bytes services-dto/src/main/xmi/observe-services-dto.ini | 2 ++ .../topia/binder/data/NonTargetLengthBinder.java | 4 ++++ .../NonTargetLength-service-error-validation.xml | 12 ++++++++++++ .../NonTargetLength-service-warning-validation.xml | 9 +++++++++ .../i18n/services-topia-validation_en_GB.properties | 2 ++ .../i18n/services-topia-validation_es_ES.properties | 2 ++ .../i18n/services-topia-validation_fr_FR.properties | 2 ++ .../service/seine/NonTargetSampleServiceTopia.java | 18 +++++++++++++++++- 10 files changed, 51 insertions(+), 1 deletion(-) diff --git a/services-dto/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java b/services-dto/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java index af2a2b7..9bf3c18 100644 --- a/services-dto/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java +++ b/services-dto/src/main/java/fr/ird/observe/services/dto/reference/request/ReferenceSetRequestDefinitions.java @@ -344,6 +344,7 @@ public enum ReferenceSetRequestDefinitions { NON_TARGET_SAMPLE_FORM( newBuilder(NonTargetLengthDto.class) .addKey(NonTargetLengthDto.PROPERTY_SPECIES, SPECIES) + .addKey(NonTargetLengthDto.PROPERTY_SPECIES_FATE, SPECIES_FATE) .addKey(NonTargetLengthDto.PROPERTY_SEX, SEX)), FLOATING_OBJECT_FORM( diff --git a/services-dto/src/main/xmi/observe-services-dto-seine.zargo b/services-dto/src/main/xmi/observe-services-dto-seine.zargo index 8507c64..6a207a9 100644 Binary files a/services-dto/src/main/xmi/observe-services-dto-seine.zargo and b/services-dto/src/main/xmi/observe-services-dto-seine.zargo differ diff --git a/services-dto/src/main/xmi/observe-services-dto.ini b/services-dto/src/main/xmi/observe-services-dto.ini index 6aaa9fe..7d799cf 100644 --- a/services-dto/src/main/xmi/observe-services-dto.ini +++ b/services-dto/src/main/xmi/observe-services-dto.ini @@ -217,9 +217,11 @@ speciesFate.attributeGeneric = fr.ird.observe.services.dto.referential.seine.Spe [class fr.ird.observe.services.dto.seine.NonTargetLength] sex.attributeGeneric = fr.ird.observe.services.dto.referential.SexDto species.attributeGeneric = fr.ird.observe.services.dto.referential.SpeciesDto +speciesFate.attributeGeneric = fr.ird.observe.services.dto.referential.seine.SpeciesFateDto [class fr.ird.observe.services.dto.seine.NonTargetSample] nonTargetLength.unique = true +speciesFate.attributeGeneric = fr.ird.observe.services.dto.referential.seine.SpeciesFateDto [class fr.ird.observe.services.dto.seine.ObjectObservedSpecies] species.attributeGeneric = fr.ird.observe.services.dto.referential.SpeciesDto diff --git a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java index 69ac71c..c18df64 100644 --- a/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java +++ b/services-topia-binder/src/main/java/fr/ird/observe/services/topia/binder/data/NonTargetLengthBinder.java @@ -24,10 +24,12 @@ package fr.ird.observe.services.topia.binder.data; import fr.ird.observe.entities.referentiel.Sex; import fr.ird.observe.entities.referentiel.Species; +import fr.ird.observe.entities.referentiel.seine.SpeciesFate; import fr.ird.observe.entities.seine.NonTargetLength; import fr.ird.observe.services.dto.constants.ReferentialLocale; import fr.ird.observe.services.dto.referential.SexDto; import fr.ird.observe.services.dto.referential.SpeciesDto; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.dto.seine.NonTargetLengthDto; /** @@ -56,6 +58,7 @@ public class NonTargetLengthBinder extends DataBinderSupport<NonTargetLength, No entity.setLength(dto.getLength()); entity.setSpecies(toEntity(dto.getSpecies(), Species.class)); entity.setSex(toEntity(dto.getSex(), Sex.class)); + entity.setSpeciesFate(toEntity(dto.getSpeciesFate(), SpeciesFate.class)); entity.setTagNumber(dto.getTagNumber()); } @@ -75,6 +78,7 @@ public class NonTargetLengthBinder extends DataBinderSupport<NonTargetLength, No dto.setLength(entity.getLength()); dto.setSpecies(toReferentialReference(referentialLocale, entity.getSpecies(), SpeciesDto.class)); dto.setSex(toReferentialReference(referentialLocale, entity.getSex(), SexDto.class)); + dto.setSpeciesFate(toReferentialReference(referentialLocale, entity.getSpeciesFate(), SpeciesFateDto.class)); dto.setTagNumber(entity.getTagNumber()); } diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-error-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-error-validation.xml index 69640b2..b763d4f 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-error-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-error-validation.xml @@ -43,6 +43,18 @@ </field> + <field name="speciesFate"> + + <!-- speciesFate desactive --> + <field-validator type="fieldexpression" short-circuit="true"> + <param name="expression"> + <![CDATA[ speciesFate == null || speciesFate.enabled ]]> + </param> + <message>validator.service.nonTargetLength.desactivated.speciesFate</message> + </field-validator> + + </field> + <field name="length"> <!-- taille obligatoire en mode par count --> diff --git a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-warning-validation.xml b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-warning-validation.xml index ecb9d8e..d4c4c2d 100644 --- a/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-warning-validation.xml +++ b/services-topia-validation/src/main/resources/fr/ird/observe/entities/seine/NonTargetLength-service-warning-validation.xml @@ -26,6 +26,15 @@ "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd"> <validators> + <field name="speciesFate"> + + <!-- pas de speciesFate selectionnee --> + <field-validator type="required" short-circuit="true"> + <message>validator.service.nonTargetLength.required.speciesFate</message> + </field-validator> + + </field> + <field name="length"> <!-- validation de la taille par borne --> diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties index faf7cfb..8638a44 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_en_GB.properties @@ -346,6 +346,8 @@ validator.service.nonTargetCatch.required.speciesFate=Species fate must be fille validator.service.nonTargetCatch.required.weightOrNombreEstime=Weight or estimated count must be filled. validator.service.nonTargetCatch.required.weightOrTailleMoyen=Weight or mean size must be filled. validator.service.nonTargetCatch.uniqueKey=Tuple (speces - objectFate) muste be unique. +validator.service.nonTargetLength.desactivated.speciesFate=Selected species fate is disabled. +validator.service.nonTargetLength.required.speciesFate=Species fate must be filled. validator.service.nonTargetSample.bound.length=Length must be bound between %s and %s. validator.service.nonTargetSample.bound.weight=Weight must be bound between %s and %s. validator.service.nonTargetSample.comment.tobig=Comment size can not exceed 1024 characters. diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties index 8f58f86..1e73e96 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_es_ES.properties @@ -346,6 +346,8 @@ validator.service.nonTargetCatch.required.speciesFate=Es obligatoiro seleccionar validator.service.nonTargetCatch.required.weightOrNombreEstime=Debe seleccionar uno de los dos valores (peso estimado, número estimado). validator.service.nonTargetCatch.required.weightOrTailleMoyen=Debe seleccionar uno de los dos valores (peso medio o talla media). validator.service.nonTargetCatch.uniqueKey=El par (especie - objectFate) debe ser único. +validator.service.nonTargetLength.desactivated.speciesFate=El objectFate de fauna seleccionado está desactivado. +validator.service.nonTargetLength.required.speciesFate=Es obligatoiro seleccionar un futuro de fauna. validator.service.nonTargetSample.bound.length=La talla para esta especie debe estar comprendida entre %1$s y %2$s. validator.service.nonTargetSample.bound.weight=La peso para esta especie debe estar comprendida entre %1$s y %2$s. validator.service.nonTargetSample.comment.tobig=La longitud del campo comentarios está limitada a 1024 carácteres. diff --git a/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties b/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties index 90e91f4..6546d85 100644 --- a/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties +++ b/services-topia-validation/src/main/resources/i18n/services-topia-validation_fr_FR.properties @@ -346,6 +346,8 @@ validator.service.nonTargetCatch.required.speciesFate=La sélection d'un devenir validator.service.nonTargetCatch.required.weightOrNombreEstime=Une des deux valeurs (poids estimé, nombre estimé) doit être renseignée. validator.service.nonTargetCatch.required.weightOrTailleMoyen=Une des deux valeurs (poids moyen ou taille moyenne) devrait être renseignée. validator.service.nonTargetCatch.uniqueKey=Le couple (espèce - objectFate) doit être unique. +validator.service.nonTargetLength.desactivated.speciesFate=Le devenir faune sélectionné est désactivé. +validator.service.nonTargetLength.required.speciesFate=La sélection d'un devenir faune est obligatoire. validator.service.nonTargetSample.bound.length=La taille pour cette espèce doit être comprise entre %1$s et %2$s. validator.service.nonTargetSample.bound.weight=Le poids pour cette espèce doit être compris entre %1$s et %2$s. validator.service.nonTargetSample.comment.tobig=La taille du commentaire est limitée à 1024 caractères. diff --git a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/NonTargetSampleServiceTopia.java b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/NonTargetSampleServiceTopia.java index 674f676..72dce8d 100644 --- a/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/NonTargetSampleServiceTopia.java +++ b/services-topia/src/main/java/fr/ird/observe/services/topia/service/seine/NonTargetSampleServiceTopia.java @@ -24,9 +24,11 @@ package fr.ird.observe.services.topia.service.seine; import com.google.common.collect.Iterables; import fr.ird.observe.entities.referentiel.ObserveReferentialEntity; +import fr.ird.observe.entities.referentiel.seine.SpeciesFate; import fr.ird.observe.entities.seine.NonTargetCatch; import fr.ird.observe.entities.seine.NonTargetSample; import fr.ird.observe.entities.seine.SetSeine; +import fr.ird.observe.services.dto.referential.seine.SpeciesFateDto; import fr.ird.observe.services.service.seine.NonTargetSampleService; import fr.ird.observe.services.topia.ObserveServiceTopia; import fr.ird.observe.services.topia.binder.referential.ReferentialBinderSupport; @@ -42,6 +44,8 @@ import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import java.util.Collection; +import java.util.List; +import java.util.Set; import java.util.stream.Collectors; /** @@ -90,10 +94,22 @@ public class NonTargetSampleServiceTopia extends ObserveServiceTopia implements NonTargetSample nonTargetSample = getNonTargetSample(setSeine); - return dataEntityToForm( + Form<NonTargetSampleDto> form = dataEntityToForm( NonTargetSampleDto.class, nonTargetSample, ReferenceSetRequestDefinitions.NON_TARGET_SAMPLE_FORM); + + ReferentialBinderSupport<SpeciesFate, SpeciesFateDto> binder = getReferentialBinder(SpeciesFateDto.class); + ReferentialLocale referentialLocale = getReferentialLocale(); + + List<ReferentialReference<SpeciesFateDto>> speciesFates = setSeine.getNonTargetCatch().stream() + .map(NonTargetCatch::getSpeciesFate) + .distinct() + .map(c -> binder.toReferentialReference(referentialLocale,c)) + .collect(Collectors.toList()); + + form.getObject().setSpeciesFate(speciesFates); + return form; } @Override -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.