Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe Commits: e2d892cd by Tony Chemit at 2023-08-31T16:03:59+02:00 Renommage I18n ValidationModelMode.DATA et suppression de ValidationModelMode.ALL - - - - - c21af7d2 by Tony Chemit at 2023-08-31T16:20:22+02:00 Sur les validateurs de poids/taille d'espèce, rajouter dans le message de validation la valeur incriminée - - - - - e18d911f by Tony Chemit at 2023-08-31T17:24:40+02:00 Pouvoir trier par date (ou timestamp) des ToolkitIdLabel non en français - - - - - 264938d9 by Tony Chemit at 2023-08-31T17:25:31+02:00 Pouvoir découper un ToolkitIdLabel même si son texte n'est pas comme prévu séparé par le # (mais pas un « - ») - - - - - c0489aaf by Tony Chemit at 2023-08-31T17:26:14+02:00 Trier les marées sélectionnées pour toujours obtenir l'ordre chronologique sur les marées - - - - - 25 changed files: - client/datasource/actions/src/main/i18n/getters/java-enumeration.getter - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataModel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUIHandler.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidationModelMode.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java - client/runner/src/main/i18n/translations/client-runner_en_GB.properties - client/runner/src/main/i18n/translations/client-runner_es_ES.properties - client/runner/src/main/i18n/translations/client-runner_fr_FR.properties - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-create-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-create-warning-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-update-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-update-warning-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/CatchDto-create-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/CatchDto-update-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SampleMeasureDto-create-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SampleMeasureDto-update-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SchoolEstimateDto-create-error-validation.xml - core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SchoolEstimateDto-update-error-validation.xml - core/services/i18n/src/main/i18n/translations/services_en_GB.properties - core/services/i18n/src/main/i18n/translations/services_es_ES.properties - core/services/i18n/src/main/i18n/translations/services_fr_FR.properties - core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-dataResult-ps.json - toolkit/api-decoration/src/main/java/fr/ird/observe/decoration/ToolkitIdLabelDecoratorRenderer.java - toolkit/api/src/main/java/fr/ird/observe/dto/ToolkitIdLabel.java - toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/DtoFormValidatorTransformer.java Changes: ===================================== client/datasource/actions/src/main/i18n/getters/java-enumeration.getter ===================================== @@ -23,8 +23,6 @@ observe.constant.AdminStep.VALIDATE.description observe.constant.ReferentialSynchronizeMode.BOTH observe.constant.ReferentialSynchronizeMode.FROM_LEFT_TO_RIGHT observe.constant.ReferentialSynchronizeMode.FROM_RIGHT_TO_LEFT -observe.constant.ValidationModelMode.ALL -observe.constant.ValidationModelMode.ALL.description observe.constant.ValidationModelMode.DATA observe.constant.ValidationModelMode.DATA.description observe.constant.ValidationModelMode.REFERENTIEL ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataModel.java ===================================== @@ -129,7 +129,7 @@ public class SelectDataModel extends AdminActionModel { case REFERENTIEL: loadData = false; break; - case ALL: + default: break; } } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidateUIHandler.java ===================================== @@ -121,10 +121,6 @@ public class ValidateUIHandler extends AdminTabUIHandler<ValidateUI> implements case DATA: selectDataModel.getConfig().setLoadData(true); break; - case ALL: - selectDataModel.getConfig().setLoadReferential(true); - selectDataModel.getConfig().setLoadData(true); - break; } }); Set<ValidatorDto> validators = getValidatorsManager().getValidators(); ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/ValidationModelMode.java ===================================== @@ -46,12 +46,7 @@ public enum ValidationModelMode { /** * to validate only referential. */ - REFERENTIEL(true, false), - - /** - * to validate both referential and data. - */ - ALL(true, false); + REFERENTIEL(true, false); private final boolean referential; private final boolean data; ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/validate/actions/Start.java ===================================== @@ -29,6 +29,7 @@ import fr.ird.observe.client.datasource.api.ObserveSwingDataSource; import fr.ird.observe.dto.I18nDecoratorHelper; import fr.ird.observe.dto.ProgressionModel; import fr.ird.observe.dto.ToolkitIdLabel; +import fr.ird.observe.dto.data.RootOpenableDto; import fr.ird.observe.dto.validation.ValidationRequestConfiguration; import fr.ird.observe.navigation.tree.selection.SelectionTreeModel; import fr.ird.observe.services.service.ValidateService; @@ -37,6 +38,7 @@ import fr.ird.observe.validation.api.request.ReferentialValidationRequest; import fr.ird.observe.validation.api.result.ValidationResult; import fr.ird.observe.validation.api.result.ValidationResultBuilder; import fr.ird.observe.validation.definition.ValidatorDto; +import io.ultreia.java4all.decoration.Decorator; import org.apache.commons.io.FileUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; @@ -51,6 +53,8 @@ import java.io.IOException; import java.nio.charset.StandardCharsets; import java.util.Collections; import java.util.Date; +import java.util.LinkedList; +import java.util.List; import java.util.Set; import static io.ultreia.java4all.i18n.I18n.t; @@ -182,7 +186,11 @@ public class Start extends ValidateUIActionSupport { } else if (dataModel.getConfig().isLoadData()) { try (ValidationResultBuilder resultBuilder = ValidationResultBuilder.create()) { - Set<ToolkitIdLabel> selectedData = dataModel.getSelectedData(); + List<ToolkitIdLabel> selectedData = new LinkedList<>(dataModel.getSelectedData()); + Class<? extends RootOpenableDto> dataType = dataModel.getRequest().getModuleName().equals("ps") ? fr.ird.observe.dto.data.ps.common.TripDto.class : fr.ird.observe.dto.data.ll.common.TripDto.class; + Decorator decorator = getDecoratorService().getToolkitIdLabelDecoratorByType(dataType); + selectedData.forEach(d -> d.registerDecorator(decorator)); + decorator.sort(selectedData, 0); int max = selectedData.size(); int index = 1; for (ToolkitIdLabel datum : selectedData) { ===================================== client/runner/src/main/i18n/translations/client-runner_en_GB.properties ===================================== @@ -224,8 +224,6 @@ observe.constant.StorageStep.ROLES=Security observe.constant.StorageStep.ROLES.description=Apply security on database roles observe.constant.StorageStep.SELECT_DATA=Data selection observe.constant.StorageStep.SELECT_DATA.description=Select data to export in backup -observe.constant.ValidationModelMode.ALL=Data and referential -observe.constant.ValidationModelMode.ALL.description=Data and referential observe.constant.ValidationModelMode.DATA=Only data observe.constant.ValidationModelMode.DATA.description=Only data observe.constant.ValidationModelMode.REFERENTIEL=Only referential ===================================== client/runner/src/main/i18n/translations/client-runner_es_ES.properties ===================================== @@ -224,10 +224,8 @@ observe.constant.StorageStep.ROLES=Seguridad observe.constant.StorageStep.ROLES.description=Configuración de la seguridad observe.constant.StorageStep.SELECT_DATA=Selección de datos observe.constant.StorageStep.SELECT_DATA.description=Seleccionar los datos a exportar en la copia de seguridad -observe.constant.ValidationModelMode.ALL=Datos y referenciales -observe.constant.ValidationModelMode.ALL.description=Datos y referenciales -observe.constant.ValidationModelMode.DATA=Datos del observador -observe.constant.ValidationModelMode.DATA.description=Datos del observador +observe.constant.ValidationModelMode.DATA=Datos +observe.constant.ValidationModelMode.DATA.description=Datos observe.constant.ValidationModelMode.REFERENTIEL=Referencial observe.constant.ValidationModelMode.REFERENTIEL.description=Todos los referenciales observe.constant.storage.ConnexionStatus.FAILED=Conexión falló ===================================== client/runner/src/main/i18n/translations/client-runner_fr_FR.properties ===================================== @@ -224,10 +224,8 @@ observe.constant.StorageStep.ROLES=Sécurité observe.constant.StorageStep.ROLES.description=Mise en place de la sécurité observe.constant.StorageStep.SELECT_DATA=Sélection données observe.constant.StorageStep.SELECT_DATA.description=Sélectionner les données à exporter dans la sauvegarde -observe.constant.ValidationModelMode.ALL=Données et référentiels -observe.constant.ValidationModelMode.ALL.description=Données et référentiels -observe.constant.ValidationModelMode.DATA=Données observées -observe.constant.ValidationModelMode.DATA.description=Données observées +observe.constant.ValidationModelMode.DATA=Données +observe.constant.ValidationModelMode.DATA.description=Données observe.constant.ValidationModelMode.REFERENTIEL=Référentiel observe.constant.ValidationModelMode.REFERENTIEL.description=Tous les référentiels observe.constant.storage.ConnexionStatus.FAILED=Connexion échouée ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-create-error-validation.xml ===================================== @@ -59,7 +59,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ species != null && length != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${length}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-create-warning-validation.xml ===================================== @@ -57,7 +57,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ acquisitionMode == 1 && species != null && weight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${weight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-update-error-validation.xml ===================================== @@ -59,7 +59,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ species != null && length != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${length}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ll/logbook/SamplePartDto-update-warning-validation.xml ===================================== @@ -57,7 +57,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ acquisitionMode == 1 && species != null && weight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${weight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/CatchDto-create-error-validation.xml ===================================== @@ -99,7 +99,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanLength != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${meanLength}</message> </field-validator> </field> @@ -113,7 +113,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanWeight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${meanWeight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/CatchDto-update-error-validation.xml ===================================== @@ -99,7 +99,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanLength != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${meanLength}</message> </field-validator> </field> @@ -113,7 +113,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanWeight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${meanWeight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SampleMeasureDto-create-error-validation.xml ===================================== @@ -59,7 +59,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ length != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${length}</message> </field-validator> </field> @@ -138,7 +138,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ acquisitionMode == 1 && weight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${weight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SampleMeasureDto-update-error-validation.xml ===================================== @@ -59,7 +59,7 @@ <field-validator type="species_lengthDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ length != null ]]></param> - <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${length}</message> </field-validator> </field> @@ -138,7 +138,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ acquisitionMode == 1 && weight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${weight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SchoolEstimateDto-create-error-validation.xml ===================================== @@ -47,7 +47,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanWeight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${meanWeight}</message> </field-validator> </field> ===================================== core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/observation/SchoolEstimateDto-update-error-validation.xml ===================================== @@ -47,7 +47,7 @@ <field-validator type="species_weightDto"> <param name="ratio">1.0</param> <param name="expression"><![CDATA[ meanWeight != null ]]></param> - <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message> + <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${meanWeight}</message> </field-validator> </field> ===================================== core/services/i18n/src/main/i18n/translations/services_en_GB.properties ===================================== @@ -1599,8 +1599,8 @@ observe.referential.common.Species.scientificLabel=Scientific label observe.referential.common.Species.speciesGroup=Species group observe.referential.common.Species.taillePoids.characteristics=Length-Weight characteristics observe.referential.common.Species.type=Species -observe.referential.common.Species.validation.length.bound=Length must be bound between %s and %s. -observe.referential.common.Species.validation.weight.bound=Weight must be bound between %s and %s. +observe.referential.common.Species.validation.length.bound=Length must be bound between %s and %s, but value was %s. +observe.referential.common.Species.validation.weight.bound=Weight must be bound between %s and %s, but value was %s. observe.referential.common.Species.wormsId=Worms id observe.referential.common.SpeciesGroup.speciesGroupReleaseMode=Species group release mode observe.referential.common.SpeciesGroup.speciesGroupReleaseModeTab=Release modes ===================================== core/services/i18n/src/main/i18n/translations/services_es_ES.properties ===================================== @@ -1599,8 +1599,8 @@ observe.referential.common.Species.scientificLabel=Texto científico observe.referential.common.Species.speciesGroup=Grupo de especie de fauna observe.referential.common.Species.taillePoids.characteristics=Características Talla-Peso observe.referential.common.Species.type=Especie -observe.referential.common.Species.validation.length.bound=La talla para esta especie debe estár comprendida entre %1$s y %2$s. -observe.referential.common.Species.validation.weight.bound=La peso para esta especie debe estar comprendida entre %1$s y %2$s. +observe.referential.common.Species.validation.length.bound=La talla para esta especie debe estár comprendida entre %1$s y %2$s, pero vale la pena %3$s. +observe.referential.common.Species.validation.weight.bound=La peso para esta especie debe estar comprendida entre %1$s y %2$s, pero vale la pena %3$s. observe.referential.common.Species.wormsId=Worms observe.referential.common.SpeciesGroup.speciesGroupReleaseMode=Modes de libération \#TODO observe.referential.common.SpeciesGroup.speciesGroupReleaseModeTab=Modes de libération \#TODO ===================================== core/services/i18n/src/main/i18n/translations/services_fr_FR.properties ===================================== @@ -1599,8 +1599,8 @@ observe.referential.common.Species.scientificLabel=Libellé scientifique observe.referential.common.Species.speciesGroup=Groupe espèce observe.referential.common.Species.taillePoids.characteristics=Caractéristiques Taille-Poids observe.referential.common.Species.type=Espèce -observe.referential.common.Species.validation.length.bound=La taille pour cette espèce doit être comprise entre %1$s et %2$s. -observe.referential.common.Species.validation.weight.bound=Le poids pour cette espèce doit être compris entre %1$s et %2$s. +observe.referential.common.Species.validation.length.bound=La taille pour cette espèce doit être comprise entre %1$s et %2$s, mais vaut %3$s. +observe.referential.common.Species.validation.weight.bound=Le poids pour cette espèce doit être compris entre %1$s et %2$s, mais vaut %3$s. observe.referential.common.Species.wormsId=Worms observe.referential.common.SpeciesGroup.speciesGroupReleaseMode=Mode de libération observe.referential.common.SpeciesGroup.speciesGroupReleaseModeTab=Modes de libération ===================================== core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ValidateService-dataResult-ps.json ===================================== @@ -843,12 +843,12 @@ { "fieldName": "length", "scope": "ERROR", - "message": "La taille pour cette espèce doit être comprise entre 19.8 et 58.58." + "message": "La taille pour cette espèce doit être comprise entre 19.8 et 58.58, mais vaut 12.0." }, { "fieldName": "weight", "scope": "ERROR", - "message": "Le poids pour cette espèce doit être compris entre 0.0198 et 5.05." + "message": "Le poids pour cette espèce doit être compris entre 0.0198 et 5.05, mais vaut 12.0." } ] }, @@ -864,12 +864,12 @@ { "fieldName": "length", "scope": "ERROR", - "message": "La taille pour cette espèce doit être comprise entre 19.8 et 58.58." + "message": "La taille pour cette espèce doit être comprise entre 19.8 et 58.58, mais vaut 13.0." }, { "fieldName": "weight", "scope": "ERROR", - "message": "Le poids pour cette espèce doit être compris entre 0.0198 et 5.05." + "message": "Le poids pour cette espèce doit être compris entre 0.0198 et 5.05, mais vaut 14.0." } ] } @@ -896,7 +896,7 @@ { "fieldName": "length", "scope": "ERROR", - "message": "La taille pour cette espèce doit être comprise entre 19.8 et 141.4." + "message": "La taille pour cette espèce doit être comprise entre 19.8 et 141.4, mais vaut 12.0." } ] }, @@ -912,7 +912,7 @@ { "fieldName": "length", "scope": "ERROR", - "message": "La taille pour cette espèce doit être comprise entre 19.8 et 202.0." + "message": "La taille pour cette espèce doit être comprise entre 19.8 et 202.0, mais vaut 12.0." } ] }, @@ -928,7 +928,7 @@ { "fieldName": "length", "scope": "ERROR", - "message": "La taille pour cette espèce doit être comprise entre 19.8 et 202.0." + "message": "La taille pour cette espèce doit être comprise entre 19.8 et 202.0, mais vaut 14.0." } ] } ===================================== toolkit/api-decoration/src/main/java/fr/ird/observe/decoration/ToolkitIdLabelDecoratorRenderer.java ===================================== @@ -33,6 +33,7 @@ import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.List; import java.util.Locale; +import java.util.Objects; import java.util.Set; /** @@ -43,8 +44,10 @@ import java.util.Set; */ public class ToolkitIdLabelDecoratorRenderer extends JavaBeanDecoratorRenderer<ToolkitIdLabel> { private static final Logger log = LogManager.getLogger(ToolkitIdLabelDecoratorRenderer.class); - public final SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); - public final SimpleDateFormat timestampFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm"); + public final SimpleDateFormat frenchDateFormat = new SimpleDateFormat("dd/MM/yyyy"); + public final SimpleDateFormat frenchTimestampFormat = new SimpleDateFormat("dd/MM/yyyy HH:mm"); + public final SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd"); + public final SimpleDateFormat timestampFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm"); public ToolkitIdLabelDecoratorRenderer(Set<String> codeProperties) { super(ToolkitIdLabel.class); @@ -60,12 +63,12 @@ public class ToolkitIdLabelDecoratorRenderer extends JavaBeanDecoratorRenderer<T } if (isDate(propertyName)) { // sort on date, can not use toString render to sort (wrong order when using date pattern dd/MM/yyyy) - sortByDate(pos, dateFormat, dataList); + sortByDate(pos, Objects.equals(locale.getLanguage(), "fr") ? frenchDateFormat : dateFormat, dataList); return; } if (isTimestamp(propertyName)) { // sort on timestamp, can not use toString render to sort (wrong order when using date pattern dd/MM/yyyy HH:mm) - sortByDate(pos, timestampFormat, dataList); + sortByDate(pos, Objects.equals(locale.getLanguage(), "fr") ? frenchTimestampFormat : timestampFormat, dataList); return; } // always sort as using natural order from numbers ===================================== toolkit/api/src/main/java/fr/ird/observe/dto/ToolkitIdLabel.java ===================================== @@ -82,11 +82,15 @@ public class ToolkitIdLabel extends ToolkitIdDtoBean implements Decorated { public String[] textParts() { if (textParts == null) { - int length = DecoratorDefinition.DEFAULT_CONTEXT_SEPARATOR.length(); + String separator = DecoratorDefinition.DEFAULT_CONTEXT_SEPARATOR; + if (!text.contains(separator)) { + separator = DecoratorDefinition.DEFAULT_RENDERER_SEPARATOR; + } + int length = separator.length(); List<String> tokens = new ArrayList<>(); int currentIndex = 0; int nextSeparator; - while ((nextSeparator = text.indexOf(DecoratorDefinition.DEFAULT_CONTEXT_SEPARATOR, currentIndex)) > -1) { + while ((nextSeparator = text.indexOf(separator, currentIndex)) > -1) { // found a new part tokens.add(text.substring(currentIndex, nextSeparator)); currentIndex = nextSeparator + length; @@ -94,7 +98,7 @@ public class ToolkitIdLabel extends ToolkitIdDtoBean implements Decorated { if (currentIndex < text.length()) { tokens.add(text.substring(currentIndex)); } - if (text.endsWith(DecoratorDefinition.DEFAULT_CONTEXT_SEPARATOR)) { + if (text.endsWith(separator)) { tokens.add(""); } textParts = tokens.toArray(new String[0]); ===================================== toolkit/templates/src/main/java/fr/ird/observe/toolkit/templates/validation/DtoFormValidatorTransformer.java ===================================== @@ -320,14 +320,14 @@ public class DtoFormValidatorTransformer extends ObjectModelTransformerToJava { " <field-validator type=\"species_weightDto\">\n" + " <param name=\"ratio\">1.0</param>\n" + " <param name=\"expression\"><![CDATA[ %2$s ]]></param>\n" + - " <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}</message>\n" + + " <message>observe.referential.common.Species.validation.weight.bound##${min}##${max}##${%1$s}</message>\n" + " </field-validator>\n"; private static final String SPECIES_LENGTH_FIELD_TEMPLATE = " <!-- check species length bound on %1$s if %2$s -->\n" + " <field-validator type=\"species_lengthDto\">\n" + " <param name=\"ratio\">1.0</param>\n" + " <param name=\"expression\"><![CDATA[ %2$s ]]></param>\n" + - " <message>observe.referential.common.Species.validation.length.bound##${min}##${max}</message>\n" + + " <message>observe.referential.common.Species.validation.length.bound##${min}##${max}##${%1$s}</message>\n" + " </field-validator>\n"; private static final String COLLECTION_UNIQUE_KEY_FIELD_TEMPLATE = " <!-- check unique value on %1$s for tuple %2$s -->\n" + View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/338ee303448d861ff88bde337... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/338ee303448d861ff88bde337... You're receiving this email because of your account on gitlab.com.
participants (1)
-
Tony CHEMIT (@tchemit)