Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe

Commits:

16 changed files:

Changes:

  • client-core/src/main/java/fr/ird/observe/client/ui/content/data/ll/landing/TripLonglineLandingUIHandler.java
    ... ... @@ -32,6 +32,8 @@ import fr.ird.observe.client.ui.content.api.ui.ObserveLayoutFocusTraversalPolicy
    32 32
     import fr.ird.observe.dto.data.ll.landing.LandingLonglineDto;
    
    33 33
     import fr.ird.observe.dto.data.ll.landing.LandingLonglineReference;
    
    34 34
     import fr.ird.observe.dto.form.Form;
    
    35
    +import fr.ird.observe.dto.referential.common.PersonDto;
    
    36
    +import fr.ird.observe.dto.referential.common.PersonReference;
    
    35 37
     import fr.ird.observe.dto.referential.common.VesselDto;
    
    36 38
     import fr.ird.observe.dto.referential.common.VesselReference;
    
    37 39
     import fr.ird.observe.dto.referential.ll.landing.DataSourceReference;
    
    ... ... @@ -119,6 +121,7 @@ class TripLonglineLandingUIHandler extends ContentOpenableUIHandler<LandingLongl
    119 121
     
    
    120 122
         @Override
    
    121 123
         protected void onAfterInitAddReferentialFilters(ContentUIReferenceCache referenceCache) {
    
    124
    +        referenceCache.addReferentialFilter(LandingLonglineDto.PROPERTY_PERSON, (ReferentialReferencesFilter<PersonDto, PersonReference>) PersonReference::filterDataSourceReferences);
    
    122 125
             referenceCache.addReferentialFilter(LandingLonglineDto.PROPERTY_VESSEL, (ReferentialReferencesFilter<VesselDto, VesselReference>) incomingReferences -> incomingReferences.stream().filter(e -> LANDING_VESSEL_TYPE_IDS.contains(e.getVesselTypeId())).collect(Collectors.toList()));
    
    123 126
         }
    
    124 127
     
    

  • dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SampleLogbookDto.java
    ... ... @@ -22,11 +22,13 @@ package fr.ird.observe.dto.data.ll.logbook;
    22 22
      * #L%
    
    23 23
      */
    
    24 24
     
    
    25
    +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
    
    25 26
     import org.nuiton.util.DateUtil;
    
    26 27
     
    
    27 28
     import java.util.Date;
    
    28 29
     import java.util.List;
    
    29 30
     
    
    31
    +@GenerateJavaBeanDefinition(types = {"fr.ird.observe.dto.data.ll.logbook.SampleLogbookDto"})
    
    30 32
     public class SampleLogbookDto extends GeneratedSampleLogbookDto {
    
    31 33
     
    
    32 34
         public static final String PROPERTY_DATE = "date";
    
    ... ... @@ -55,6 +57,10 @@ public class SampleLogbookDto extends GeneratedSampleLogbookDto {
    55 57
             }
    
    56 58
         }
    
    57 59
     
    
    60
    +    public String getCoordinateStr() {
    
    61
    +        return String.format("(%s°;%s°)", latitude, longitude);
    
    62
    +    }
    
    63
    +
    
    58 64
         public void setTimeStamp(Date timeStamp) {
    
    59 65
             Date oldDate = getDate();
    
    60 66
             Date oldTime = getTime();
    

  • dto/src/main/java/fr/ird/observe/dto/data/ll/logbook/SampleLogbookReference.java
    1
    +package fr.ird.observe.dto.data.ll.logbook;
    
    2
    +
    
    3
    +import io.ultreia.java4all.bean.spi.GenerateJavaBeanDefinition;
    
    4
    +
    
    5
    +/*-
    
    6
    + * #%L
    
    7
    + * ObServe :: Dto
    
    8
    + * %%
    
    9
    + * Copyright (C) 2008 - 2019 IRD, Code Lutin, Ultreia.io
    
    10
    + * %%
    
    11
    + * This program is free software: you can redistribute it and/or modify
    
    12
    + * it under the terms of the GNU General Public License as
    
    13
    + * published by the Free Software Foundation, either version 3 of the
    
    14
    + * License, or (at your option) any later version.
    
    15
    + *
    
    16
    + * This program is distributed in the hope that it will be useful,
    
    17
    + * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    18
    + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    19
    + * GNU General Public License for more details.
    
    20
    + *
    
    21
    + * You should have received a copy of the GNU General Public
    
    22
    + * License along with this program.  If not, see
    
    23
    + * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    24
    + * #L%
    
    25
    + */
    
    26
    +@GenerateJavaBeanDefinition(types = {"fr.ird.observe.dto.data.ll.logbook.SampleLogbookReference"})
    
    27
    +public class SampleLogbookReference extends GeneratedSampleLogbookReference {
    
    28
    +
    
    29
    +    public SampleLogbookReference(fr.ird.observe.dto.reference.DtoReferenceAware dto, java.util.Date timeStamp, java.lang.Float latitude, java.lang.Float longitude) {
    
    30
    +        super(dto, timeStamp, latitude, longitude);
    
    31
    +    }
    
    32
    +
    
    33
    +    public String getCoordinateStr() {
    
    34
    +        return String.format("(%s°;%s°)", getLatitude(), getLongitude());
    
    35
    +    }
    
    36
    +}

  • dto/src/main/java/fr/ird/observe/dto/decoration/DecoratorService.java
    ... ... @@ -386,8 +386,8 @@ public class DecoratorService extends DecoratorProvider {
    386 386
             @Override
    
    387 387
             public void initLlLogbookSampleLogbookDto() {
    
    388 388
                 registerDataAndDataReferenceDecorator(SampleLogbookDto.class, SampleLogbookReference.class,
    
    389
    -                                                  "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${latitude}$s##${longitude}$s",
    
    390
    -                                                  "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${latitude}$s##${longitude}$s",
    
    389
    +                                                  "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${coordinateStr}$s",
    
    390
    +                                                  "${timeStamp}$td/%1$tm/%1$tY %1$tH:%1$tM##${coordinateStr}$s",
    
    391 391
                                                       " - ");
    
    392 392
             }
    
    393 393
     
    

  • dto/src/main/java/fr/ird/observe/dto/decoration/ObserveI18nLabelsBuilder.java
    ... ... @@ -114,6 +114,8 @@ public class ObserveI18nLabelsBuilder extends BeanPropertyI18nKeyProducerSupport
    114 114
                     .put("sizeMeasureTypeCode", "sizeMeasureType")
    
    115 115
                     .put("inputSizeMeasureTypeCode", "inputSizeMeasureType")
    
    116 116
                     .put("outputSizeMeasureTypeCode", "outputSizeMeasureType")
    
    117
    +                .put("computedTimeStr", "computedTime")
    
    118
    +                .put("coordinateStr", "coordinate")
    
    117 119
                     .build();
    
    118 120
         }
    
    119 121
     
    

  • dto/src/main/java/fr/ird/observe/dto/decoration/decorators/ObserveDecorator.java
    ... ... @@ -24,8 +24,8 @@ package fr.ird.observe.dto.decoration.decorators;
    24 24
     import fr.ird.observe.dto.reference.DtoReference;
    
    25 25
     import org.apache.commons.jxpath.JXPathContext;
    
    26 26
     import org.apache.commons.lang3.StringUtils;
    
    27
    -import org.apache.logging.log4j.Logger;
    
    28 27
     import org.apache.logging.log4j.LogManager;
    
    28
    +import org.apache.logging.log4j.Logger;
    
    29 29
     import org.nuiton.decorator.MultiJXPathDecorator;
    
    30 30
     
    
    31 31
     import java.io.Serializable;
    
    ... ... @@ -115,6 +115,8 @@ public class ObserveDecorator<E> extends MultiJXPathDecorator<E> implements Clon
    115 115
             String lastToken = tokens[tokens.length - 1];
    
    116 116
             if (referenceBean.getPropertyNames().contains(lastToken)) {
    
    117 117
                 value = referenceBean.getPropertyValue(lastToken);
    
    118
    +        } else {
    
    119
    +            value = referenceBean.get(lastToken);
    
    118 120
             }
    
    119 121
     
    
    120 122
             return value;
    

  • dto/src/main/java/fr/ird/observe/dto/referential/common/PersonReference.java
    ... ... @@ -46,6 +46,10 @@ public class PersonReference extends GeneratedPersonReference {
    46 46
             return incoming.stream().filter(PersonReference::isDataEntryOperator).collect(Collectors.toList());
    
    47 47
         }
    
    48 48
     
    
    49
    +public static List<PersonReference> filterDataSourceReferences(Collection<PersonReference> incoming) {
    
    50
    +        return incoming.stream().filter(PersonReference::isDataSource).collect(Collectors.toList());
    
    51
    +    }
    
    52
    +
    
    49 53
         public String getLabel() {
    
    50 54
             return getFirstName() + " " + getLastName();
    
    51 55
         }
    

  • observe-i18n/src/main/i18n/translations/observe_en_GB.properties
    ... ... @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Comment
    468 468
     observe.common.ActivityLonglineObsSensorUsedDto.comment=Comment
    
    469 469
     observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km)
    
    470 470
     observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms)
    
    471
    -observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time (minutes)
    
    472
    -observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time (%s minutes)
    
    471
    +observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time shift (days\:hours\:minutes)
    
    472
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=after
    
    473
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=before
    
    474
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Same date - time
    
    475
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time shift (%s)
    
    473 476
     observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Observed activity
    
    474 477
     observe.common.ActivityLonglinePairingResultItemDto.type=Observed activity
    
    475 478
     observe.common.ActivityObsDto.action.goToOpen.short=Observations - Open activity
    

  • observe-i18n/src/main/i18n/translations/observe_es_ES.properties
    ... ... @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Comentarios
    468 468
     observe.common.ActivityLonglineObsSensorUsedDto.comment=Comentarios
    
    469 469
     observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km) \#TODO
    
    470 470
     observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms) \#TODO
    
    471
    -observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time (minutes) \#TODO
    
    472
    -observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time (%s minutes) \#TODO
    
    471
    +observe.common.ActivityLonglinePairingResultItemDto.computedTime=Time shift (days\:hours\:minutes) \#TODO
    
    472
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=after \#TODO
    
    473
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=before \#TODO
    
    474
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Same date - time \#TODO
    
    475
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Time shift (%s) \#TODO
    
    473 476
     observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Observed activity \#TODO
    
    474 477
     observe.common.ActivityLonglinePairingResultItemDto.type=Observed activity \#TODO
    
    475 478
     observe.common.ActivityObsDto.action.goToOpen.short=Observations - Open activity \#TODO
    

  • observe-i18n/src/main/i18n/translations/observe_fr_FR.properties
    ... ... @@ -468,8 +468,11 @@ observe.common.ActivityLonglineObsEncounterDto.comment=Commentaire
    468 468
     observe.common.ActivityLonglineObsSensorUsedDto.comment=Commentaire
    
    469 469
     observe.common.ActivityLonglinePairingResultItemDto.computedDistance=Distance (km)
    
    470 470
     observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue=Distance (%s kms)
    
    471
    -observe.common.ActivityLonglinePairingResultItemDto.computedTime=Temps (minutes)
    
    472
    -observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Temps (%s minutes)
    
    471
    +observe.common.ActivityLonglinePairingResultItemDto.computedTime=Écart de temps (jours\:heures\:minutes)
    
    472
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter=après
    
    473
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore=avant
    
    474
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals=Même date - heure
    
    475
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue=Écart de temps (%s)
    
    473 476
     observe.common.ActivityLonglinePairingResultItemDto.observationActivity=Activité observée
    
    474 477
     observe.common.ActivityLonglinePairingResultItemDto.type=Activité observée
    
    475 478
     observe.common.ActivityObsDto.action.goToOpen.short=Observations - Activité ouverte
    

  • services/src/main/i18n/getters/java.getter
    1 1
     observe.common.ActivityLonglinePairingResultItemDto.computedDistance
    
    2 2
     observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue
    
    3 3
     observe.common.ActivityLonglinePairingResultItemDto.computedTime
    
    4
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter
    
    5
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore
    
    6
    +observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals
    
    4 7
     observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue
    
    5 8
     observe.common.ActivityLonglinePairingResultItemDto.observationActivity
    
    6 9
     observe.common.ActivityLonglinePairingResultItemDto.type

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingEngine.java
    ... ... @@ -96,9 +96,9 @@ public class ActivityLonglinePairingEngine {
    96 96
         private ActivityLonglinePairingResultItem toActivityResultItem(ActivityLonglineAware activityLonglineLogbook, ActivityLonglineObsReference activityLonglineObsReference, double maxTime, double maxDistance) {
    
    97 97
             Date logbookTimeStamp = activityLonglineLogbook.getTimeStamp();
    
    98 98
             Date obsTimeStamp = activityLonglineObsReference.getTimeStamp();
    
    99
    -        long computedTime = Math.abs(TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS));
    
    99
    +        long computedTime = TimeUnit.MINUTES.convert(logbookTimeStamp.getTime() - obsTimeStamp.getTime(), TimeUnit.MILLISECONDS);
    
    100 100
             double computedDistance = activityLonglineLogbook.getGPSPoint().getDistanceInKm(activityLonglineObsReference.getGPSPoint());
    
    101
    -        return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance, computedTime < maxTime, computedDistance < maxDistance);
    
    101
    +        return new ActivityLonglinePairingResultItem(activityLonglineObsReference, computedTime, computedDistance, Math.abs(computedTime) < maxTime, computedDistance < maxDistance);
    
    102 102
         }
    
    103 103
     
    
    104 104
     }

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResultItem.java
    ... ... @@ -10,12 +10,12 @@ package fr.ird.observe.services.service.data.ll.pairing;
    10 10
      * it under the terms of the GNU General Public License as
    
    11 11
      * published by the Free Software Foundation, either version 3 of the
    
    12 12
      * License, or (at your option) any later version.
    
    13
    - * 
    
    13
    + *
    
    14 14
      * This program is distributed in the hope that it will be useful,
    
    15 15
      * but WITHOUT ANY WARRANTY; without even the implied warranty of
    
    16 16
      * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    
    17 17
      * GNU General Public License for more details.
    
    18
    - * 
    
    18
    + *
    
    19 19
      * You should have received a copy of the GNU General Public
    
    20 20
      * License along with this program.  If not, see
    
    21 21
      * <http://www.gnu.org/licenses/gpl-3.0.html>.
    
    ... ... @@ -27,6 +27,9 @@ import fr.ird.observe.dto.data.ll.observation.ActivityLonglineObsReference;
    27 27
     import io.ultreia.java4all.lang.Numbers;
    
    28 28
     
    
    29 29
     import java.util.Objects;
    
    30
    +import java.util.concurrent.TimeUnit;
    
    31
    +
    
    32
    +import static io.ultreia.java4all.i18n.I18n.t;
    
    30 33
     
    
    31 34
     /**
    
    32 35
      * Created by tchemit on 15/10/2018.
    
    ... ... @@ -37,14 +40,15 @@ public class ActivityLonglinePairingResultItem implements ObserveDto {
    37 40
     
    
    38 41
         private final ActivityLonglineObsReference observationActivity;
    
    39 42
         private final long computedTime;
    
    40
    -    private final double computedDistance;
    
    43
    +    private final float computedDistance;
    
    41 44
         private final boolean timeValid;
    
    42 45
         private final boolean distanceValid;
    
    46
    +    private String computedTimeStr;
    
    43 47
     
    
    44 48
         public ActivityLonglinePairingResultItem(ActivityLonglineObsReference observationActivity, long computedTime, double computedDistance, boolean timeValid, boolean distanceValid) {
    
    45 49
             this.observationActivity = observationActivity;
    
    46 50
             this.computedTime = computedTime;
    
    47
    -        this.computedDistance = Numbers.roundOneDigit((float) computedDistance);
    
    51
    +        this.computedDistance = Numbers.roundTwoDigits((float) computedDistance);
    
    48 52
             this.timeValid = timeValid;
    
    49 53
             this.distanceValid = distanceValid;
    
    50 54
         }
    
    ... ... @@ -57,7 +61,7 @@ public class ActivityLonglinePairingResultItem implements ObserveDto {
    57 61
             return computedTime;
    
    58 62
         }
    
    59 63
     
    
    60
    -    public double getComputedDistance() {
    
    64
    +    public float getComputedDistance() {
    
    61 65
             return computedDistance;
    
    62 66
         }
    
    63 67
     
    
    ... ... @@ -69,6 +73,24 @@ public class ActivityLonglinePairingResultItem implements ObserveDto {
    69 73
             return distanceValid;
    
    70 74
         }
    
    71 75
     
    
    76
    +    public String getComputedTimeStr() {
    
    77
    +        if (computedTimeStr == null) {
    
    78
    +            if (computedTime == 0) {
    
    79
    +                return computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeEquals");
    
    80
    +            }
    
    81
    +            if (computedTime < 0) {
    
    82
    +                computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter") + " - ";
    
    83
    +            } else {
    
    84
    +                computedTimeStr = t("observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore") +" - ";
    
    85
    +            }
    
    86
    +            long days = TimeUnit.MINUTES.toDays(computedTime);
    
    87
    +            long hours = TimeUnit.MINUTES.toHours(computedTime) % 24;
    
    88
    +            long minutes = TimeUnit.MINUTES.toMinutes(computedTime) % 60;
    
    89
    +            computedTimeStr += String.format("%s:%s:%s", days, hours, minutes);
    
    90
    +        }
    
    91
    +        return computedTimeStr;
    
    92
    +    }
    
    93
    +
    
    72 94
         @Override
    
    73 95
         public boolean equals(Object o) {
    
    74 96
             if (this == o) return true;
    

  • services/src/main/java/fr/ird/observe/services/service/data/ll/pairing/ActivityLonglinePairingResultItemDecorator.java
    ... ... @@ -44,6 +44,8 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator
    44 44
             n("observe.common.ActivityLonglinePairingResultItemDto.type");
    
    45 45
             n("observe.common.ActivityLonglinePairingResultItemDto.observationActivity");
    
    46 46
             n("observe.common.ActivityLonglinePairingResultItemDto.computedTime");
    
    47
    +        n("observe.common.ActivityLonglinePairingResultItemDto.computedTimeBefore");
    
    48
    +        n("observe.common.ActivityLonglinePairingResultItemDto.computedTimeAfter");
    
    47 49
             n("observe.common.ActivityLonglinePairingResultItemDto.computedDistance");
    
    48 50
         }
    
    49 51
     
    
    ... ... @@ -51,7 +53,7 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator
    51 53
         private final DataReferenceDecorator<ActivityLonglineObsReference> activityDecorator;
    
    52 54
     
    
    53 55
         public ActivityLonglinePairingResultItemDecorator(DecoratorService decoratorService, Locale locale) {
    
    54
    -        super(ActivityLonglinePairingResultItem.class, "${observationActivity}$s##${computedTime}$s##${computedDistance}$s");
    
    56
    +        super(ActivityLonglinePairingResultItem.class, "${observationActivity}$s##${computedTimeStr}$s##${computedDistance}$s");
    
    55 57
             this.locale = locale;
    
    56 58
             activityDecorator = decoratorService.getDataReferenceDecorator(ActivityLonglineObsReference.class);
    
    57 59
         }
    
    ... ... @@ -61,7 +63,7 @@ public class ActivityLonglinePairingResultItemDecorator extends ObserveDecorator
    61 63
         protected Comparable<Comparable<?>> getTokenValue(JXPathContext jxcontext, String token) {
    
    62 64
             Object value0 = jxcontext.getValue(token);
    
    63 65
             switch (token) {
    
    64
    -            case "computedTime":
    
    66
    +            case "computedTimeStr":
    
    65 67
                     return (Comparable) l(locale, "observe.common.ActivityLonglinePairingResultItemDto.computedTimeValue", value0);
    
    66 68
                 case "computedDistance":
    
    67 69
                     return (Comparable) l(locale, "observe.common.ActivityLonglinePairingResultItemDto.computedDistanceValue", value0);
    

  • validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartLogbookDto-update-error-validation.xml
    ... ... @@ -74,6 +74,16 @@
    74 74
           <message>observe.validation.targetLength.positive.length</message>
    
    75 75
         </field-validator>
    
    76 76
     
    
    77
    +    <!-- validation de la taille par borne -->
    
    78
    +    <field-validator type="species_lengthDto">
    
    79
    +      <param name="ratio">1.0</param>
    
    80
    +      <param name="enable">true</param>
    
    81
    +      <param name="expression">
    
    82
    +        <![CDATA[ species != null && length != null ]]>
    
    83
    +      </param>
    
    84
    +      <message>observe.validation.targetLength.bound.length##${min}##${max}</message>
    
    85
    +    </field-validator>
    
    86
    +
    
    77 87
       </field>
    
    78 88
     
    
    79 89
       <field name="weight">
    

  • validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartLogbookDto-update-warning-validation.xml
    ... ... @@ -23,22 +23,7 @@
    23 23
         "-//Apache Struts//XWork Validator 1.0.3//EN"
    
    24 24
         "http://struts.apache.org/dtds/xwork-validator-1.0.3.dtd">
    
    25 25
     <validators>
    
    26
    -
    
    27
    -  <field name="length">
    
    28
    -
    
    29
    -    <!-- validation de la taille par borne -->
    
    30
    -    <field-validator type="species_lengthDto">
    
    31
    -      <param name="ratio">1.0</param>
    
    32
    -      <param name="enable">true</param>
    
    33
    -      <param name="expression">
    
    34
    -        <![CDATA[ species != null && length != null ]]>
    
    35
    -      </param>
    
    36
    -      <message>observe.validation.targetLength.bound.length##${min}##${max}</message>
    
    37
    -    </field-validator>
    
    38
    -
    
    39
    -  </field>
    
    40
    -
    
    41
    -
    
    26
    +  
    
    42 27
       <field name="weight">
    
    43 28
     
    
    44 29
         <!-- validation du weight par borne (uniquement pour mode saisie par individus) -->