Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe Commits: b5cd2d6d by Tony Chemit at 2023-02-24T01:30:04+01:00 Ajouter des options dans la configuration du client pour configurer l'action de consolidation - Closes #2631 - - - - - 15 changed files: - client/configuration/src/main/config/Client.ini - client/configuration/src/main/i18n/getters/config.getter - client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java - client/datasource/actions/src/main/i18n/getters/jaxx.getter - + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx - + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java - + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java - + client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java - client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/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/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameters.java Changes: ===================================== client/configuration/src/main/config/Client.ini ===================================== @@ -462,6 +462,18 @@ key = instance.validation.useDisabledReferential type = Boolean defaultValue = false +[option consolidationFailIfLengthWeightParameterNotFound] +description = observe.config.consolidation.failIfLengthWeightParameterNotFound +key = instance.consolidation.failIfLengthWeightParameterNotFound +type = Boolean +defaultValue = false + +[option consolidationFailIfLengthLengthParameterNotFound] +description = observe.config.consolidation.failIfLengthLengthParameterNotFound +key = instance.consolidation.failIfLengthLengthParameterNotFound +type = Boolean +defaultValue = false + [option sizeMeasureTypeSeineObservationTargetSampleId] description = observe.config.sizeMeasureType.seine.observation.targetSample key = referential.sizeMeasureType.seine.observation.targetSample ===================================== client/configuration/src/main/i18n/getters/config.getter ===================================== @@ -19,6 +19,8 @@ observe.config.client.backupFiles.timeout.description observe.config.client.feedbackFiles.timeout.description observe.config.client.logFiles.timeout.description observe.config.client.temporaryFiles.timeout.description +observe.config.consolidation.failIfLengthLengthParameterNotFound +observe.config.consolidation.failIfLengthWeightParameterNotFound observe.config.coordinate.format observe.config.db.locale observe.config.dcpPresetsDirectory.description ===================================== client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java ===================================== @@ -271,6 +271,8 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext helper.addOption(ClientConfigOption.VALIDATION_SPEED_MAX_VALUE); helper.addOption(ClientConfigOption.VALIDATION_LENGTH_WEIGHT_ENABLE); helper.addOption(ClientConfigOption.VALIDATION_USE_DISABLED_REFERENTIAL); + helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_WEIGHT_PARAMETER_NOT_FOUND); + helper.addOption(ClientConfigOption.CONSOLIDATION_FAIL_IF_LENGTH_LENGTH_PARAMETER_NOT_FOUND); } ===================================== client/datasource/actions/src/main/i18n/getters/jaxx.getter ===================================== @@ -2,6 +2,8 @@ observe.Common.directory observe.Common.file observe.Common.global.progression.description observe.Common.step.description +observe.config.consolidation.failIfLengthLengthParameterNotFound +observe.config.consolidation.failIfLengthWeightParameterNotFound observe.config.ui.seineBycatchObservedSystem.description observe.config.validation.lengthWeightEnable observe.config.validation.speedEnable @@ -12,6 +14,7 @@ observe.info.validation.credentials observe.ui.action.show.properties observe.ui.action.show.properties.tip observe.ui.choice.cancel.tip +observe.ui.datasource.editor.actions.consolidate.config observe.ui.datasource.editor.actions.operation.configuration observe.ui.datasource.editor.actions.operations observe.ui.datasource.editor.actions.report.auto.copy.to.clipboard ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jaxx ===================================== @@ -0,0 +1,102 @@ +<!-- + #%L + ObServe Client :: DataSource :: Actions + %% + Copyright (C) 2008 - 2023 IRD, 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% + --> +<JPanel id="consolidateConfig" layout="{new BorderLayout()}"> + + <import> + fr.ird.observe.client.datasource.actions.AdminUIModel + fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag + + org.nuiton.jaxx.widgets.number.NumberEditor + + java.io.File + + javax.swing.JComboBox + + static io.ultreia.java4all.i18n.I18n.t + static fr.ird.observe.client.util.UIHelper.getStringValue + </import> + + <ConsolidateUIHandler id='handler' initializer='getContextValue(ConsolidateUIHandler.class)'/> + <AdminUIModel id='model' initializer='getContextValue(AdminUIModel.class)'/> + <ConsolidateModel id='consolidateModel' initializer='model.getConsolidateModel()'/> + + <script><![CDATA[ +public void destroy() { + model = null; + consolidateModel = null; +} +]]> + </script> + + <JPanel constraints='BorderLayout.NORTH' layout='{new BorderLayout()}'> + <Table id="consolidateDataConfig" constraints='BorderLayout.NORTH'> + + <row> + <cell anchor="west"> + <JLabel id='consolidationFailIfLengthWeightParameterNotFoundLabel' styleClass="skipI18n"/> + </cell> + <cell weightx='1' fill="horizontal"> + <JCheckBox id='consolidationFailIfLengthWeightParameterNotFound' styleClass="skipI18n"/> + </cell> + </row> + <row> + <cell anchor="west"> + <JLabel id='consolidationFailIfLengthLengthParameterNotFoundLabel' styleClass="skipI18n"/> + </cell> + <cell weightx='1' fill="horizontal"> + <JCheckBox id='consolidationFailIfLengthLengthParameterNotFound' styleClass="skipI18n"/> + </cell> + </row> + </Table> + <!--Table id='consolidationReportConfig' fill='both' constraints='BorderLayout.CENTER'> + <row> + <cell> + <JLabel id="consolidationReportDirectoryLabel"/> + </cell> + <cell weightx='1' fill="horizontal"> + <JTextField id='consolidationReportDirectoryText' + onKeyReleased='getHandler().changeConsolidationReportDirectory(this, new File(((JTextField)event.getSource()).getText()))'/> + </cell> + <cell anchor="east"> + <JButton id="chooseConsolidationReportFileAction"/> + </cell> + </row> + <row> + <cell> + <JLabel id="consolidationReportFileLabel"/> + </cell> + <cell weightx='1' fill="horizontal" columns="2"> + <JTextField + id='consolidationReportFilenameText' + onKeyReleased='getHandler().changeConsolidationReportFilename(this, ((JTextField)event.getSource()).getText())'/> + </cell> + </row> + </Table--> + + </JPanel> +<!-- <Table constraints='BorderLayout.SOUTH' weightx='1' weighty='1'>--> +<!-- <row>--> +<!-- <cell>--> +<!-- <JLabel/>--> +<!-- </cell>--> +<!-- </row>--> +<!-- </Table>--> + +</JPanel> ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateConfigUI.jcss ===================================== @@ -0,0 +1,62 @@ +/* + * #%L + * ObServe Client :: DataSource :: Actions + * %% + * Copyright (C) 2008 - 2023 IRD, 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% + */ + +#consolidateDataConfig { + border:{new TitledBorder(t("observe.ui.datasource.editor.actions.consolidate.config") + " ")}; +} + +#consolidationFailIfLengthWeightParameterNotFoundLabel { + text:"observe.config.consolidation.failIfLengthWeightParameterNotFound"; +} + +#consolidationFailIfLengthWeightParameterNotFound { + selected:{consolidateModel.isConsolidationFailIfLengthWeightParameterNotFound()}; +} + +#consolidationFailIfLengthLengthParameterNotFoundLabel { + text:"observe.config.consolidation.failIfLengthLengthParameterNotFound"; +} + +#consolidationFailIfLengthLengthParameterNotFound { + selected:{consolidateModel.isConsolidationFailIfLengthLengthParameterNotFound()}; +} + + +#consolidationReportConfig { + border:{new TitledBorder(t("observe.ui.datasource.editor.actions.consolidate.config.report") + " ")}; +} + +#consolidationReportDirectoryLabel { + text:"observe.Common.directory"; +} + +#consolidationReportDirectoryText { + text:{consolidateModel.getReportFile().getParent()}; +} + +#consolidationReportFileLabel { + text:"observe.Common.file"; +} + +#consolidationReportFilenameText { + text:{consolidateModel.getReportFile().getName()}; +} ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java ===================================== @@ -51,6 +51,9 @@ public class ConsolidateModel extends AdminActionModel { */ private final Set<String> alreadyDoneTripIds; + private boolean consolidationFailIfLengthWeightParameterNotFound; + private boolean consolidationFailIfLengthLengthParameterNotFound; + public ConsolidateModel() { super(AdminStep.CONSOLIDATE); this.alreadyDoneTripIds = new TreeSet<>(); @@ -81,6 +84,9 @@ public class ConsolidateModel extends AdminActionModel { sourceModel.setRequiredReadOnReferential(true); sourceModel.setRequiredReadOnData(true); sourceModel.setRequiredWriteOnData(true); + + setConsolidationFailIfLengthWeightParameterNotFound(getClientConfig().isConsolidationFailIfLengthWeightParameterNotFound()); + setConsolidationFailIfLengthLengthParameterNotFound(getClientConfig().isConsolidationFailIfLengthLengthParameterNotFound()); } @Override @@ -95,4 +101,24 @@ public class ConsolidateModel extends AdminActionModel { public void setTripProcessed(String tripId) { alreadyDoneTripIds.add(tripId); } + + public boolean isConsolidationFailIfLengthWeightParameterNotFound() { + return consolidationFailIfLengthWeightParameterNotFound; + } + + public void setConsolidationFailIfLengthWeightParameterNotFound(boolean consolidationFailIfLengthWeightParameterNotFound) { + boolean oldValue = this.consolidationFailIfLengthWeightParameterNotFound; + this.consolidationFailIfLengthWeightParameterNotFound = consolidationFailIfLengthWeightParameterNotFound; + firePropertyChange("consolidationFailIfLengthWeightParameterNotFound", oldValue, consolidationFailIfLengthWeightParameterNotFound); + } + + public boolean isConsolidationFailIfLengthLengthParameterNotFound() { + return consolidationFailIfLengthLengthParameterNotFound; + } + + public void setConsolidationFailIfLengthLengthParameterNotFound(boolean consolidationFailIfLengthLengthParameterNotFound) { + boolean oldValue = this.consolidationFailIfLengthLengthParameterNotFound; + this.consolidationFailIfLengthLengthParameterNotFound = consolidationFailIfLengthLengthParameterNotFound; + firePropertyChange("consolidationFailIfLengthLengthParameterNotFound", oldValue, consolidationFailIfLengthLengthParameterNotFound); + } } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateUIHandler.java ===================================== @@ -23,6 +23,8 @@ package fr.ird.observe.client.datasource.actions.consolidate; import fr.ird.observe.client.datasource.actions.AdminTabUIHandler; import fr.ird.observe.client.datasource.actions.config.ConfigUI; +import fr.ird.observe.client.datasource.actions.consolidate.actions.SelectConsolidationConfigFlag; +import fr.ird.observe.client.util.UIHelper; import org.nuiton.jaxx.runtime.spi.UIHandler; import static io.ultreia.java4all.i18n.I18n.t; @@ -43,6 +45,9 @@ public class ConsolidateUIHandler extends AdminTabUIHandler<ConsolidateUI> imple protected void initConfig(ConfigUI configUI) { super.initConfig(configUI); configUI.getLeftSourceConfig().getSourceInfoLabel().setText(t("observe.ui.action.config.left.datasource.required.write.data")); + ConsolidateConfigUI extraConfig = new ConsolidateConfigUI(UIHelper.initialContext(configUI, this)); + SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthWeightParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthWeightParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthWeightParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthWeightParameterNotFound, 5)); + SelectConsolidationConfigFlag.init(extraConfig, extraConfig.getConsolidationFailIfLengthLengthParameterNotFound(), new SelectConsolidationConfigFlag("consolidationFailIfLengthLengthParameterNotFound", ConsolidateModel::isConsolidationFailIfLengthLengthParameterNotFound, ConsolidateModel::setConsolidationFailIfLengthLengthParameterNotFound, 6)); + configUI.getExtraConfig().add(extraConfig); } - } ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/ConsolidateConfigUIActionSupport.java ===================================== @@ -0,0 +1,45 @@ +package fr.ird.observe.client.datasource.actions.consolidate.actions; + +/*- + * #%L + * ObServe Client :: DataSource :: Actions + * %% + * Copyright (C) 2008 - 2023 IRD, 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 fr.ird.observe.client.datasource.actions.consolidate.ConsolidateConfigUI; +import org.nuiton.jaxx.runtime.swing.action.JComponentActionSupport; + +import javax.swing.KeyStroke; + +/** + * Created on 24/02/2023. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.26 + */ +public abstract class ConsolidateConfigUIActionSupport extends JComponentActionSupport<ConsolidateConfigUI> { + + public ConsolidateConfigUIActionSupport(String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) { + super(label, shortDescription, actionIcon, acceleratorKey); + } + + public ConsolidateConfigUIActionSupport(String actionCommandKey, String label, String shortDescription, String actionIcon, KeyStroke acceleratorKey) { + super(actionCommandKey, label, shortDescription, actionIcon, acceleratorKey); + } +} ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/SelectConsolidationConfigFlag.java ===================================== @@ -0,0 +1,58 @@ +package fr.ird.observe.client.datasource.actions.consolidate.actions; + +/*- + * #%L + * ObServe Client :: DataSource :: Actions + * %% + * Copyright (C) 2008 - 2023 IRD, 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 fr.ird.observe.client.datasource.actions.consolidate.ConsolidateModel; +import fr.ird.observe.client.datasource.actions.consolidate.ConsolidateConfigUI; +import fr.ird.observe.client.util.ObserveKeyStrokesSupport; + +import java.awt.event.ActionEvent; +import java.util.function.BiConsumer; +import java.util.function.Function; + +/** + * Created on 24/02/2023. + * + * @author Tony Chemit - dev@tchemit.fr + * @since 9.0.26 + */ +public class SelectConsolidationConfigFlag extends ConsolidateConfigUIActionSupport { + + private final Function<ConsolidateModel, Boolean> getter; + private final BiConsumer<ConsolidateModel, Boolean> setter; + + public SelectConsolidationConfigFlag(String propertyName, Function<ConsolidateModel, Boolean> getter, BiConsumer<ConsolidateModel, Boolean> setter, int strokeIndex) { + super(SelectConsolidationConfigFlag.class.getName() + propertyName, "", null, null, ObserveKeyStrokesSupport.getFunctionKeyStroke(strokeIndex)); + this.getter = getter; + this.setter = setter; + } + + @Override + protected void doActionPerformed(ActionEvent e, ConsolidateConfigUI ui) { + ConsolidateModel validateModel = ui.getModel().getConsolidateModel(); + boolean oldValue = getter.apply(validateModel); + setter.accept(validateModel, !oldValue); + } + +} ===================================== client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java ===================================== @@ -124,10 +124,8 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> { } TripConsolidateRequest request = new TripConsolidateRequest(); request.setTripId(tripId); - //FIXME Add option in configuration - request.setFailIfLengthWeightParameterNotFound(false); - //FIXME Add option in configuration - request.setFailIfLengthLengthParameterNotFound(false); + request.setFailIfLengthWeightParameterNotFound(stepModel.isConsolidationFailIfLengthWeightParameterNotFound()); + request.setFailIfLengthLengthParameterNotFound(stepModel.isConsolidationFailIfLengthLengthParameterNotFound()); TripConsolidateResult result = consolidateDataService.consolidateTrip(simplifiedObjectTypeSpecializedRules, request); if (result != null) { ===================================== client/runner/src/main/i18n/translations/client-runner_en_GB.properties ===================================== @@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Backup files delete (in ho observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours) observe.config.client.logFiles.timeout.description=Log files delete (in hours) observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) +observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action +observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action observe.config.coordinate.format=Position format (DMD, DD, DMS) observe.config.db.locale=Language of data source (fr_FR, en_GB or es_ES) observe.config.dcpPresetsDirectory.description=Dcp presets directory @@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Auto backup done (in %s) observe.ui.datasource.backup.start=[%s] Start auto backup observe.ui.datasource.editor.actions.activity.pairing=Activities pairing observe.ui.datasource.editor.actions.consolidate=Consolidate data +observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration observe.ui.datasource.editor.actions.consolidate.description=Consolidate observed data observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Computed data for activity [%s] %s observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s ===================================== client/runner/src/main/i18n/translations/client-runner_es_ES.properties ===================================== @@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Backup files delete (in ho observe.config.client.feedbackFiles.timeout.description=Feedback files delete (in hours) \#TODO observe.config.client.logFiles.timeout.description=Log files delete (in hours) \#TODO observe.config.client.temporaryFiles.timeout.description=Temporary files delete (in hours) \#TODO +observe.config.consolidation.failIfLengthLengthParameterNotFound=In consolidate action, raise an error if a lengthLengthParameter is not found, otherwise add an warning in action \#TODO +observe.config.consolidation.failIfLengthWeightParameterNotFound=In consolidate action, raise an error if a lengthWeightParameter is not found, otherwise add an warning in action \#TODO observe.config.coordinate.format=Formato de posición (DMD, DD, DMS) observe.config.db.locale=Idioma del referencial (fr_FR, en_GB o es_ES) observe.config.dcpPresetsDirectory.description=Dcp presets directory \#TODO @@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Copia de seguridad automática realizada observe.ui.datasource.backup.start=[%s] Inicio de copia de seguridad automática observe.ui.datasource.editor.actions.activity.pairing=Activities pairing \#TODO observe.ui.datasource.editor.actions.consolidate=Calcular los datos +observe.ui.datasource.editor.actions.consolidate.config=Consolidate data configuration observe.ui.datasource.editor.actions.consolidate.description=Calcular los datos que no fueron observados observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Datos calculados para la actividad [%s] %s observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Some warnings were found for activity [%s] %s ===================================== client/runner/src/main/i18n/translations/client-runner_fr_FR.properties ===================================== @@ -36,6 +36,8 @@ observe.config.client.backupFiles.timeout.description=Nettoyage des fichiers de observe.config.client.feedbackFiles.timeout.description=Nettoyage des fichiers de retour d'expérience (en heures) observe.config.client.logFiles.timeout.description=Nettoyage des fichiers de log (en heures) observe.config.client.temporaryFiles.timeout.description=Nettoyage des fichiers temporaires (en heures) +observe.config.consolidation.failIfLengthLengthParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-taille n'est pas trouvée, sinon consigner cela en avertissement de l'action +observe.config.consolidation.failIfLengthWeightParameterNotFound=Dans l'action de consolidation, déclencher une erreur si une relation taille-poids n'est pas trouvée, sinon consigner cela en avertissement de l'action observe.config.coordinate.format=Format des positions (DMD, DD, DMS) observe.config.db.locale=La langue du référentiel (fr_FR, en_GB ou es_ES) observe.config.dcpPresetsDirectory.description=Répertoire des pré-configurations de DCP @@ -486,6 +488,7 @@ observe.ui.datasource.backup.done=[%s] Fin de la sauvegarde automatique (en %s) observe.ui.datasource.backup.start=[%s] Début de la sauvegarde automatique observe.ui.datasource.editor.actions.activity.pairing=Appairement des activités observe.ui.datasource.editor.actions.consolidate=Calculer les données +observe.ui.datasource.editor.actions.consolidate.config=Configuration de la consolidation observe.ui.datasource.editor.actions.consolidate.description=Calculer les données non observées observe.ui.datasource.editor.actions.consolidate.message.activity.modification=Données calculées pour l'activité [%s] %s observe.ui.datasource.editor.actions.consolidate.message.activity.warning=Des avertissements ont été détectés pour l'activité [%s] %s ===================================== core/persistence/java/src/main/java/fr/ird/observe/entities/referential/common/LengthWeightParameters.java ===================================== @@ -81,6 +81,11 @@ public class LengthWeightParameters { // } if (list == null || list.isEmpty()) { + decoratorService.installDecorator(Species.class, species); + decoratorService.installDecorator(Ocean.class, ocean); + if (sex!=null) { + decoratorService.installDecorator(Sex.class, sex); + } throw new LengthWeightParameterNotFoundException(species, ocean, sex, date); } @@ -102,7 +107,9 @@ public class LengthWeightParameters { if (list.size() > 1) { decoratorService.installDecorator(Species.class, species); decoratorService.installDecorator(Ocean.class, ocean); - decoratorService.installDecorator(Sex.class, sex); + if (sex!=null) { + decoratorService.installDecorator(Sex.class, sex); + } decoratorService.installDecorator(LengthWeightParameter.class, list.stream()); throw new DuplicateLengthWeightParameterException(species, ocean, sex, date, list); } View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5cd2d6d1d443b7f97746b60e7... -- View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/b5cd2d6d1d443b7f97746b60e7... You're receiving this email because of your account on gitlab.com.