Observe-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- 7199 discussions
[Git][ultreiaio/ird-observe][develop] 6 commits: Review SubtractColum to a better null management
by Tony CHEMIT (@tchemit) 01 Dec '23
by Tony CHEMIT (@tchemit) 01 Dec '23
01 Dec '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
d8b081ff by Tony Chemit at 2023-12-01T15:35:26+01:00
Review SubtractColum to a better null management
- - - - -
a88911d9 by Tony Chemit at 2023-12-01T15:54:38+01:00
Review first ColumnRendererConsumer (add null management + improve the code)
- - - - -
44de672d by Tony Chemit at 2023-12-01T15:54:38+01:00
Rename html export configuration tab to metadata
- - - - -
3f0ecbae by Tony Chemit at 2023-12-01T15:55:24+01:00
Improve report html export (now fill the hole cell :))
- - - - -
bbeeac87 by Tony Chemit at 2023-12-01T16:06:32+01:00
Merge branch 'feature/issue-2811' into develop
Définir les règles de mise en forme conditionnelle sur les tableaux de synthèse
- Closes #2811
- - - - -
7e08d2ef by Tony Chemit at 2023-12-01T16:08:17+01:00
Add client configuration option skipConsolidateStepForReport - Closes #281x ?
- - - - -
19 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/templates/reportHtmlExport_en_GB.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_es_ES.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_fr_FR.ftl
- 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/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/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
- toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumer.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/operations/SubtractColum.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.java
- toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.js
- toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.js
- toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.js
Changes:
=====================================
client/configuration/src/main/config/Client.ini
=====================================
@@ -1047,6 +1047,12 @@ key = ui.tree.config.node.unsaved.color
type = color
defaultValue = java.awt.Color[r=255,g=0,b=0]
+[option skipConsolidateStepForReport]
+description = observe.config.ui.actions.report.skipConsolidateStep
+key = ui.actions.report.skipConsolidateStep
+type = Boolean
+defaultValue = false
+
[action adminUi]
description = observe.ui.action.commandline.launch.admin.ui
action = fr.ird.observe.client.ObserveCLAction#launchAdminUI
=====================================
client/configuration/src/main/i18n/getters/config.getter
=====================================
@@ -121,6 +121,7 @@ observe.config.swingPreferencesFile.description
observe.config.swingSessionFile.description
observe.config.temperature.format
observe.config.temporaryDirectory.description
+observe.config.ui.actions.report.skipConsolidateStep
observe.config.ui.autoPopupNumberEditor
observe.config.ui.autoSelectText
observe.config.ui.blockStateColor
=====================================
client/core/src/main/java/fr/ird/observe/client/main/body/ClientConfigUI.java
=====================================
@@ -408,6 +408,7 @@ public class ClientConfigUI extends JXTitledPanel implements WithClientUIContext
helper.addOption(ClientConfigOption.SHOW_SQL);
helper.addOption(ClientConfigOption.USE_JVM_KEY_STORE);
+ helper.addOption(ClientConfigOption.SKIP_CONSOLIDATE_STEP_FOR_REPORT);
}
=====================================
client/datasource/actions/src/main/i18n/templates/reportHtmlExport_en_GB.ftl
=====================================
@@ -40,6 +40,7 @@
margin-right: 10px;
}
+ <#--noinspection CssUnusedSymbol-->
td.gridjs-td {
background-color: transparent;
}
@@ -61,28 +62,44 @@
color: #fff;
}
+ tr:hover td[class~="cellNull"] {
+ background-color: rgb(160, 160, 160);
+ }
+
+ tr:hover td[class~="cellWarning"] {
+ background-color: rgb(255, 175, 10);
+ }
+
+ tr:hover td[class~="cellError"] {
+ background-color: rgb(255, 10, 10);
+ }
+
+ <#--noinspection CssUnusedSymbol-->
+ td.cellNull {
+ background-color: rgb(128, 128, 128);
+ }
<#--noinspection CssUnusedSymbol-->
- .cellWarning {
- background-color: orange;
+ td.cellWarning {
+ background-color: rgb(255, 165, 0);
}
- <#-- <#–noinspection CssUnusedSymbol–>-->
- <#-- td:has(span.cellWarning):before {-->
- <#-- padding-right: 8px;-->
- <#-- content: "\26A0";-->
- <#-- }-->
+<#-- <#–noinspection CssUnusedSymbol–>-->
+<#-- td:has(span.cellWarning):before {-->
+<#-- padding-right: 8px;-->
+<#-- content: "\26A0";-->
+<#-- }-->
<#--noinspection CssUnusedSymbol-->
- .cellError {
- background-color: red;
+ td.cellError {
+ background-color: rgb(255, 0, 0);
}
- <#-- <#–noinspection CssUnusedSymbol–>-->
- <#-- td:has(span.cellError):before {-->
- <#-- padding-right: 8px;-->
- <#-- content: "\26D4";-->
- <#-- }-->
+<#-- <#–noinspection CssUnusedSymbol–>-->
+<#-- td:has(span.cellError):before {-->
+<#-- padding-right: 8px;-->
+<#-- content: "\26D4";-->
+<#-- }-->
.widget {
position: relative;
@@ -257,7 +274,7 @@
}
<#list .data_model.columnRendererFunctions as key>
- ${key}</#list>
+${key}</#list>
function createColumns(json) {
let result = !!json["columnNames"] ? json["columnNames"] : [];
@@ -266,6 +283,7 @@
}
let renderers = json["columnRendererDefinitions"];
let i = 0;
+ let data = json.data;
<#list .data_model.columnRendererInitCode as value>
${value}</#list>
return result;
@@ -323,7 +341,7 @@
</div>
</div>
<ul class="widget-tabs">
- <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Configuration</a>
+ <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Metadata</a>
<li class="widget-tab"><a href="#tab-result" class="widget-tab-link">Result</a>
</ul>
</div>
=====================================
client/datasource/actions/src/main/i18n/templates/reportHtmlExport_es_ES.ftl
=====================================
@@ -40,6 +40,7 @@
margin-right: 10px;
}
+ <#--noinspection CssUnusedSymbol-->
td.gridjs-td {
background-color: transparent;
}
@@ -61,28 +62,44 @@
color: #fff;
}
+ tr:hover td[class~="cellNull"] {
+ background-color: rgb(160, 160, 160);
+ }
+
+ tr:hover td[class~="cellWarning"] {
+ background-color: rgb(255, 175, 10);
+ }
+
+ tr:hover td[class~="cellError"] {
+ background-color: rgb(255, 10, 10);
+ }
<#--noinspection CssUnusedSymbol-->
- .cellWarning {
- background-color: orange;
+ td.cellNull {
+ background-color: rgb(128, 128, 128);
}
- <#-- <#–noinspection CssUnusedSymbol–>-->
- <#-- td:has(span.cellWarning):before {-->
- <#-- padding-right: 8px;-->
- <#-- content: "\26A0";-->
- <#-- }-->
+ <#--noinspection CssUnusedSymbol-->
+ td.cellWarning {
+ background-color: rgb(255, 165, 0);
+ }
+
+<#-- <#–noinspection CssUnusedSymbol–>-->
+<#-- td:has(span.cellWarning):before {-->
+<#-- padding-right: 8px;-->
+<#-- content: "\26A0";-->
+<#-- }-->
<#--noinspection CssUnusedSymbol-->
- .cellError {
- background-color: red;
+ td.cellError {
+ background-color: rgb(255, 0, 0);
}
- <#-- <#–noinspection CssUnusedSymbol–>-->
- <#-- td:has(span.cellError):before {-->
- <#-- padding-right: 8px;-->
- <#-- content: "\26D4";-->
- <#-- }-->
+<#-- <#–noinspection CssUnusedSymbol–>-->
+<#-- td:has(span.cellError):before {-->
+<#-- padding-right: 8px;-->
+<#-- content: "\26D4";-->
+<#-- }-->
.widget {
position: relative;
@@ -257,7 +274,7 @@
}
<#list .data_model.columnRendererFunctions as key>
- ${key}</#list>
+${key}</#list>
function createColumns(json) {
let result = !!json["columnNames"] ? json["columnNames"] : [];
@@ -266,6 +283,7 @@
}
let renderers = json["columnRendererDefinitions"];
let i = 0;
+ let data = json.data;
<#list .data_model.columnRendererInitCode as value>
${value}</#list>
return result;
@@ -310,7 +328,6 @@
</ul>
</div>
<div class="widget-list" id="tab-result">
-
<div class="config-panel">
<label><input id="search" type="checkbox" checked/> Search</label>|
<label><input id="resizable" type="checkbox" checked/> Resizable columns</label>|
@@ -323,10 +340,11 @@
</div>
</div>
<ul class="widget-tabs">
- <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Configuration</a>
+ <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Metadata</a>
<li class="widget-tab"><a href="#tab-result" class="widget-tab-link">Result</a>
</ul>
</div>
+
<script type="application/javascript">
const json = ${.data_model.json};
=====================================
client/datasource/actions/src/main/i18n/templates/reportHtmlExport_fr_FR.ftl
=====================================
@@ -63,9 +63,26 @@
color: #fff;
}
+ tr:hover td[class~="cellNull"] {
+ background-color: rgb(160, 160, 160);
+ }
+
+ tr:hover td[class~="cellWarning"] {
+ background-color: rgb(255, 175, 10);
+ }
+
+ tr:hover td[class~="cellError"] {
+ background-color: rgb(255, 10, 10);
+ }
+
+ <#--noinspection CssUnusedSymbol-->
+ td.cellNull {
+ background-color: rgb(128, 128, 128);
+ }
+
<#--noinspection CssUnusedSymbol-->
- .cellWarning {
- background-color: orange;
+ td.cellWarning {
+ background-color: rgb(255, 165, 0);
}
<#-- <#–noinspection CssUnusedSymbol–>-->
@@ -75,8 +92,8 @@
<#-- }-->
<#--noinspection CssUnusedSymbol-->
- .cellError {
- background-color: red;
+ td.cellError {
+ background-color: rgb(255, 0, 0);
}
<#-- <#–noinspection CssUnusedSymbol–>-->
@@ -267,6 +284,7 @@ ${key}</#list>
}
let renderers = json["columnRendererDefinitions"];
let i = 0;
+ let data = json.data;
<#list .data_model.columnRendererInitCode as value>
${value}</#list>
return result;
@@ -323,7 +341,7 @@ ${key}</#list>
</div>
</div>
<ul class="widget-tabs">
- <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Configuration</a>
+ <li class="widget-tab"><a href="#tab-configuration" class="widget-tab-link">Méta-données</a>
<li class="widget-tab"><a href="#tab-result" class="widget-tab-link">Résultat</a>
</ul>
</div>
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
=====================================
@@ -53,6 +53,7 @@ public class ConsolidateModel extends AdminActionModel {
private boolean consolidationFailIfLengthWeightParameterNotFound;
private boolean consolidationFailIfLengthLengthParameterNotFound;
+ private boolean skipForReport;
public ConsolidateModel() {
super(AdminStep.CONSOLIDATE);
@@ -87,6 +88,7 @@ public class ConsolidateModel extends AdminActionModel {
setConsolidationFailIfLengthWeightParameterNotFound(getClientConfig().isConsolidationFailIfLengthWeightParameterNotFound());
setConsolidationFailIfLengthLengthParameterNotFound(getClientConfig().isConsolidationFailIfLengthLengthParameterNotFound());
+ uiModel.getConsolidateModel().setSkipForReport(getClientConfig().isSkipConsolidateStepForReport());
}
@Override
@@ -121,4 +123,12 @@ public class ConsolidateModel extends AdminActionModel {
this.consolidationFailIfLengthLengthParameterNotFound = consolidationFailIfLengthLengthParameterNotFound;
firePropertyChange("consolidationFailIfLengthLengthParameterNotFound", oldValue, consolidationFailIfLengthLengthParameterNotFound);
}
+
+ public boolean isSkipForReport() {
+ return skipForReport;
+ }
+
+ public void setSkipForReport(boolean skipForReport) {
+ this.skipForReport = skipForReport;
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -87,7 +87,9 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
ConsolidateModel stepModel = ui.getStepModel();
AdminUIModel model = ui.getModel();
-
+ if (stepModel.isSkipForReport()) {
+ return WizardState.SUCCESSED;
+ }
stepModel.setSource(model.getConfigModel().getLeftSourceModel().getSafeSource(false));
Set<String> tripIds = model.getSelectDataModel().getSelectionDataModel().getSelectedDataIds();
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -138,6 +138,7 @@ observe.config.swingPreferencesFile.description=Swing preferences file.
observe.config.swingSessionFile.description=Swing session file.
observe.config.temperature.format=Default temperature unit
observe.config.temporaryDirectory.description=Default temporary directory used by application and clean at each launch.
+observe.config.ui.actions.report.skipConsolidateStep=To skip consolidate step in action Report
observe.config.ui.autoPopupNumberEditor=To auto popup on number editor when it acquires the focus
observe.config.ui.autoSelectText=To auto select text in widgets when it acquires the focus
observe.config.ui.blockStateColor=Color of block state
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -138,6 +138,7 @@ observe.config.swingPreferencesFile.description=Swing preferences file.
observe.config.swingSessionFile.description=Copia de seguridad del estado del UI.
observe.config.temperature.format=Unidad de temperatura
observe.config.temporaryDirectory.description=Directorio temporal por defecto
+observe.config.ui.actions.report.skipConsolidateStep=To skip consolidate step in action Report \#TODO
observe.config.ui.autoPopupNumberEditor=Para mostrar automáticamente el editor numérico durante la edición de un número
observe.config.ui.autoSelectText=To auto select text in widgets when it acquires the focus \#TODO
observe.config.ui.blockStateColor=Color of block state \#TODO
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -138,6 +138,7 @@ observe.config.swingPreferencesFile.description=Fichier de sauvegarde des préf
observe.config.swingSessionFile.description=Fichier de sauvegarde des états des UI.
observe.config.temperature.format=Unité de température
observe.config.temporaryDirectory.description=Le répertoire temporaire par défaut
+observe.config.ui.actions.report.skipConsolidateStep=Pour ne pas exécuter l'étape de consolidation dans l'assistant des rapports
observe.config.ui.autoPopupNumberEditor=Pour afficher automatiquement l'éditeur numérique lors de l'édition d'un nombre
observe.config.ui.autoSelectText=Pour sélectionner le texte sur les éditeurs lorsqu'il acquière le focus
observe.config.ui.blockStateColor=Couleur lorsque l'on bloque une partie de l'application
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psLogbookWellPlanCheck.properties
=====================================
@@ -29,6 +29,6 @@ syntax.nbRequests=5
result.columns=20
result.rows=4
result.0=483^CAP BOJADOR^30/03/2019^08/04/2019^30/03/2019^1^15:12^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0
-result.1=483^CAP BOJADOR^30/03/2019^08/04/2019^01/04/2019^1^15:12^null^null^null^null^null^null^null^null^null^null^null^null^-
-result.2=483^CAP BOJADOR^30/03/2019^08/04/2019^01/04/2019^1^15:12^null^null^null^null^null^null^null^null^null^null^null^null^-
-result.3=Total^null^null^null^null^null^-^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^-
\ No newline at end of file
+result.1=483^CAP BOJADOR^30/03/2019^08/04/2019^01/04/2019^1^15:12^null^null^null^null^null^null^null^null^null^null^null^null^null
+result.2=483^CAP BOJADOR^30/03/2019^08/04/2019^01/04/2019^1^15:12^null^null^null^null^null^null^null^null^null^null^null^null^null
+result.3=Total^null^null^null^null^null^-^0.0^123.0^43.0^0.0^0.0^0.0^0.0^12.0^0.0^0.0^166.0^12.0^154.0
\ No newline at end of file
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumer.java
=====================================
@@ -44,9 +44,12 @@ import java.util.Objects;
*/
public interface ColumnRendererConsumer<P extends ColumnRendererParameters> {
- static void addHighLighters(JXTable table, HighlightPredicate warningDPredicate, HighlightPredicate errorPredicate) {
+ static void addHighLighters(JXTable table, HighlightPredicate nullPredicate, HighlightPredicate warningPredicate, HighlightPredicate errorPredicate) {
+ if (nullPredicate != null) {
+ table.addHighlighter(new ColorHighlighter(nullPredicate, Color.GRAY, Color.BLACK));
+ }
table.addHighlighter(new ColorHighlighter(errorPredicate, Color.RED, Color.BLACK));
- table.addHighlighter(new ColorHighlighter(warningDPredicate, Color.ORANGE, Color.BLACK));
+ table.addHighlighter(new ColorHighlighter(warningPredicate, Color.ORANGE, Color.BLACK));
}
static SingletonSupplier<String> htmlFunctions(Class<?> type) {
@@ -94,6 +97,6 @@ public interface ColumnRendererConsumer<P extends ColumnRendererParameters> {
String htmlFunctions();
default String htmlInitCode() {
- return String.format("init%s(renderers[i++], result);\n", getClass().getSimpleName());
+ return String.format("init%s(renderers[i++], result, data);\n", getClass().getSimpleName());
}
}
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/operations/SubtractColum.java
=====================================
@@ -73,22 +73,27 @@ public class SubtractColum implements ReportOperationConsumer {
Double v1 = getValue(row, column1, incoming);
Double v2 = getValue(row, column2, incoming);
- if (v1 == null || v2 == null) {
- return "-";
+ if (v1 == null && v2 == null) {
+ return null;
+ }
+ if (v1 == null) {
+ v1 = 0d;
+ }
+ if (v2 == null) {
+ v2 = 0d;
}
float result = (float) (v1 - v2);
return Numbers.roundFourDigits(result);
}
- protected Double getValue(int x, int y, DataMatrix incoming) {
- Serializable o = incoming.getValue(y, x);
+ protected Double getValue(int row, int column, DataMatrix incoming) {
+ Serializable o = incoming.getValue(column, row);
if (o == null || "null".equals(o)) {
return null;
}
try {
return Double.parseDouble(o.toString());
} catch (NumberFormatException e) {
- // une des données de la colonne n'est pas un count on sort directement
log.debug(String.format("Could not convert %s to number", o), e);
return null;
}
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.java
=====================================
@@ -78,6 +78,7 @@ public class HighlightIfAbsoluteDeltaIsPositive implements ColumnRendererConsume
@Override
public void consumeSwing(Parameters parameters, JXTable table) {
ColumnRendererConsumer.addHighLighters(table,
+ new ParametersHighlightPredicate(parameters, null),
new ParametersHighlightPredicate(parameters, true),
new ParametersHighlightPredicate(parameters, false));
}
@@ -124,9 +125,9 @@ public class HighlightIfAbsoluteDeltaIsPositive implements ColumnRendererConsume
static class ParametersHighlightPredicate implements HighlightPredicate {
private final Parameters parameters;
- private final boolean warning;
+ private final Boolean warning;
- ParametersHighlightPredicate(Parameters parameters, boolean warning) {
+ ParametersHighlightPredicate(Parameters parameters, Boolean warning) {
this.parameters = parameters;
this.warning = warning;
}
@@ -137,13 +138,16 @@ public class HighlightIfAbsoluteDeltaIsPositive implements ColumnRendererConsume
if (column != parameters.getColumn1() && column != parameters.getColumn2()) {
return false;
}
- Object value1 = adapter.getValue(parameters.getColumn1());
+ Object value1 = adapter.getValue();
if (value1 == null || value1.toString().equals("-")) {
+ return warning == null;
+ }
+ if (warning == null) {
return false;
}
- Object value2 = adapter.getValue(parameters.getColumn2());
+ Object value2 = adapter.getValue(column == parameters.getColumn1() ? parameters.getColumn2() : parameters.getColumn1());
if (value2 == null || value2.toString().equals("-")) {
- return false;
+ return !warning;
}
Double d1 = Double.valueOf(value1.toString());
Double d2 = Double.valueOf(value2.toString());
=====================================
toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.java
=====================================
@@ -76,6 +76,7 @@ public class HighlightIfNumericalValueIsPositive implements ColumnRendererConsum
@Override
public void consumeSwing(Parameters parameters, JXTable table) {
ColumnRendererConsumer.addHighLighters(table,
+ new ParametersHighlightPredicate(parameters, null),
new ParametersHighlightPredicate(parameters, true),
new ParametersHighlightPredicate(parameters, false));
}
@@ -117,9 +118,9 @@ public class HighlightIfNumericalValueIsPositive implements ColumnRendererConsum
static class ParametersHighlightPredicate implements HighlightPredicate {
private final Parameters parameters;
- private final boolean warning;
+ private final Boolean warning;
- ParametersHighlightPredicate(Parameters parameters, boolean warning) {
+ ParametersHighlightPredicate(Parameters parameters, Boolean warning) {
this.parameters = parameters;
this.warning = warning;
}
@@ -130,8 +131,11 @@ public class HighlightIfNumericalValueIsPositive implements ColumnRendererConsum
if (column != parameters.getColumn()) {
return false;
}
- Object value1 = adapter.getValue(parameters.getColumn());
+ Object value1 = adapter.getValue();
if (value1 == null || value1.toString().equals("-")) {
+ return warning == null;
+ }
+ if (warning == null) {
return false;
}
double d1 = Double.parseDouble(value1.toString());
=====================================
toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.js
=====================================
@@ -19,38 +19,67 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
-function HighlightIfAbsoluteDeltaIsPositive(row, column1, column2, warningThreshHold, errorThreshHold) {
- let value1 = row.cells[column1].data;
- let value2 = row.cells[column2].data;
- if (!!!value1 || value2 === "-") {
- return value1;
+function HighlightIfAbsoluteDeltaIsPositive(cell, row, column2, warningThreshHold, errorThreshHold) {
+ if (!cell) {
+ return;
+ }
+ if (!!!cell || cell === "-") {
+ return {
+ 'data-cell-content': "",
+ 'class': 'gridjs-td cellNull',
+ };
}
- if (!!!value2 || value2 === "-") {
- return value1;
+ let value2 = row.cells[column2].data;
+ if (!!!value2 || value2 === " ") {
+ return;
}
- if (value1 === value2) {
- return value1;
+ if (cell === value2) {
+ return;
}
- let delta = Math.abs(value1 - value2);
+ let delta = Math.abs(cell - value2);
if (delta < warningThreshHold) {
- return value1;
+ return;
}
- let className = delta < errorThreshHold ? "cellWarning" : "cellError";
- // noinspection JSUnresolvedReference
- return gridjs.html(`<span class="${className}"\>${value1}</span>`);
+ return {
+ 'data-cell-content': cell,
+ 'class': 'gridjs-td ' + (delta < errorThreshHold ? "cellWarning" : "cellError"),
+ };
}
-function initHighlightIfAbsoluteDeltaIsPositive(renderer, result) {
+function initHighlightIfAbsoluteDeltaIsPositive(renderer, result, json) {
let column1 = renderer["column1"];
let column2 = renderer["column2"];
+ let height = json.height;
+ let data = json.data;
+ for (let row = 0; row < height; row++) {
+ for (let column = column1; column <= column2; column++) {
+ if (!!!data[row][column]) {
+ data[row][column] = "-";
+ }
+ }
+ }
let warningThreshHold = renderer["warningThreshHold"];
let errorThreshHold = renderer["errorThreshHold"];
result[column1] = {
name: result [column1],
- formatter: (_, row) => HighlightIfAbsoluteDeltaIsPositive(row, column1, column2, warningThreshHold, errorThreshHold)
+ formatter: cell => {
+ if (!!!cell || cell === "-") {
+ // noinspection JSUnresolvedReference
+ return gridjs.html(" ");
+ }
+ return cell;
+ },
+ attributes: (cell, row) => HighlightIfAbsoluteDeltaIsPositive(cell, row, column2, warningThreshHold, errorThreshHold)
};
result[column2] = {
name: result [column2],
- formatter: (_, row) => HighlightIfAbsoluteDeltaIsPositive(row, column2, column1, warningThreshHold, errorThreshHold)
+ formatter: cell => {
+ if (!!!cell || cell === "-") {
+ // noinspection JSUnresolvedReference
+ return gridjs.html(" ");
+ }
+ return cell;
+ },
+ attributes: (cell, row) => HighlightIfAbsoluteDeltaIsPositive(cell, row, column1, warningThreshHold, errorThreshHold)
};
-}
+}
\ No newline at end of file
=====================================
toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.js
=====================================
@@ -19,26 +19,27 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
-function HighlightIfNotI18nReferentialValue(row, column, label) {
- let value = row.cells[column].data;
- if (!!!value) {
- return value;
+function HighlightIfNotI18nReferentialValue(cell, label) {
+ if (!!!cell) {
+ return;
}
- if (value === label) {
- return value;
+ if (cell === label) {
+ return;
}
- // noinspection JSUnresolvedReference
- return gridjs.html(`<span class="cellError">${value}</span>`);
+ return {
+ 'data-cell-content': cell,
+ 'class': 'gridjs-td cellError',
+ };
}
-function initHighlightIfNotI18nReferentialValue(renderer, result) {
+function initHighlightIfNotI18nReferentialValue(renderer, result, json) {
let columns = renderer["columns"];
let label = renderer["label"];
for (let j = 0; j < columns.length; j++) {
let column = columns[j];
result [column] = {
name: result [column],
- formatter: (_, row) => HighlightIfNotI18nReferentialValue(row, column, label)
+ attributes: cell => HighlightIfNotI18nReferentialValue(cell, label)
};
}
}
=====================================
toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.js
=====================================
@@ -19,26 +19,46 @@
* <http://www.gnu.org/licenses/gpl-3.0.html>.
* #L%
*/
-function HighlightIfNumericalValueIsPositive(row, column, warningThreshHold, errorThreshHold) {
- let value = row.cells[column].data;
- if (!!!value || value === "-") {
- return value;
+function HighlightIfNumericalValueIsPositive(cell, warningThreshHold, errorThreshHold) {
+ if (!cell) {
+ return;
}
- let delta = Math.abs(value);
+ if (!!!cell || cell === "-") {
+ return {
+ 'data-cell-content': "",
+ 'class': 'gridjs-td cellNull',
+ };
+ }
+ let delta = Math.abs(cell);
if (delta < warningThreshHold) {
- return value;
+ return;
}
- let className = delta < errorThreshHold ? "cellWarning" : "cellError";
- // noinspection JSUnresolvedReference
- return gridjs.html(`<span class="${className}"\>${value}</span>`);
+ return {
+ 'data-cell-content': cell,
+ 'class': 'gridjs-td ' + (delta < errorThreshHold ? "cellWarning" : "cellError"),
+ };
}
-function initHighlightIfNumericalValueIsPositive(renderer, result) {
+function initHighlightIfNumericalValueIsPositive(renderer, result, json) {
let column = renderer["column"];
+ let height = json.height;
+ let data = json.data;
+ for (let row = 0; row < height; row++) {
+ if (!!!data[row][column]) {
+ data[row][column] = "-";
+ }
+ }
let warningThreshHold = renderer["warningThreshHold"];
let errorThreshHold = renderer["errorThreshHold"];
result[column] = {
name: result [column],
- formatter: (_, row) => HighlightIfNumericalValueIsPositive(row, column, warningThreshHold, errorThreshHold)
+ formatter: cell => {
+ if (!!!cell || cell === "-") {
+ // noinspection JSUnresolvedReference
+ return gridjs.html(" ");
+ }
+ return cell;
+ },
+ attributes: cell => HighlightIfNumericalValueIsPositive(cell, warningThreshHold, errorThreshHold)
};
-}
+}
\ No newline at end of file
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c2557d282a8e149254598bf0…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/c2557d282a8e149254598bf0…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 8 commits: Move to persistence model 9.3
by Tony CHEMIT (@tchemit) 01 Dec '23
by Tony CHEMIT (@tchemit) 01 Dec '23
01 Dec '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
fb599bfe by Tony Chemit at 2023-12-01T08:48:22+01:00
Move to persistence model 9.3
- - - - -
6124147c by Tony Chemit at 2023-12-01T09:08:13+01:00
add persistence migration code
- - - - -
8f934f33 by Tony Chemit at 2023-12-01T09:33:05+01:00
Do not disable TransmittingBuoy.country
- - - - -
6587e1f5 by Tony Chemit at 2023-12-01T09:33:32+01:00
Rename I18n label TransmittingBuoy.country to flagCountry
- - - - -
125b581f by Tony Chemit at 2023-12-01T10:29:02+01:00
keep protected unknown TransmittingBuoyOwnership id
- - - - -
15552adc by Tony Chemit at 2023-12-01T10:49:53+01:00
add listener on TransmittingBuoyOwnership to enable/disable vessel or country
- - - - -
2e651502 by Tony Chemit at 2023-12-01T10:50:26+01:00
remove commented code (from v7)
- - - - -
c2557d28 by Tony Chemit at 2023-12-01T10:50:48+01:00
Merge branch 'feature/issue-2044' into develop
Peaufinage du form Balise : disponibilité des champs Appartenance, Pays et Navire
- Closes #2044
- - - - -
16 changed files:
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIAdapter.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/FloatingObjectUICommon.jcss
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUIModelStates.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUIModelStates.java
- core/api/dto-decoration/src/main/i18n/getters/labels.getter
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
- + core/persistence/migration/src/main/resources/db/migration/v9/9.3/01_issue-2044-common.sql
- 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
- model/src/main/models/Observe/dto/class/i18nOverrideLabels.properties
- pom.xml
Changes:
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIAdapter.java
=====================================
@@ -151,6 +151,8 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
}
});
states.getBean().addPropertyChangeListener(FloatingObjectDto.PROPERTY_OBJECT_OPERATION, e -> states.updateMaterials(getTable().getTreeTableModel(), (ObjectOperationReference) e.getNewValue()));
+ states.setFirstBuoyOwnershipListener(new DcpUIModelStates.TransmittingBuoyOwnershipListener<>(getTransmittingBuoy1(), getVessel1(), getCountry1()));
+ states.setSecondBuoyOwnershipListener(new DcpUIModelStates.TransmittingBuoyOwnershipListener<>(getTransmittingBuoy2(), getVessel2(), getCountry2()));
}
default void installExtraActions() {
@@ -165,12 +167,14 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
changeTypeTransmittingBuoyOperation(states, typeOperation, false);
}
- default void stopEditUI() {
+ default void stopEditUI(DcpUIModelStates<?, ?> states) {
if (getMainTabbedPane().getSelectedIndex() == 1) {
getTable().editingCanceled(null);
}
getValidatorBuoy1().setBean(null);
getValidatorBuoy2().setBean(null);
+ states.removeFirstBuoyOwnershipListener(getTransmittingBuoy1());
+ states.removeSecondBuoyOwnershipListener(getTransmittingBuoy2());
}
default void changeTypeTransmittingBuoyOperation(ItemEvent event, DcpUIModelStates<?, ?> states) {
@@ -184,8 +188,10 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
FloatingObjectAware bean = states.getBean();
if (bean.getFirstBuoy() != null) {
getValidatorBuoy1().setBean(getTransmittingBuoy1());
+ states.addFirstBuoyOwnershipListener(getTransmittingBuoy1());
if (bean.getSecondBuoy() != null) {
getValidatorBuoy2().setBean(getTransmittingBuoy2());
+ states.addSecondBuoyOwnershipListener(getTransmittingBuoy2());
}
}
states.setModified(states.isCreatingMode());
@@ -219,6 +225,8 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
if (states.isEditing()) {
getValidatorBuoy1().setBean(null);
getValidatorBuoy2().setBean(null);
+ states.removeFirstBuoyOwnershipListener(getTransmittingBuoy1());
+ states.removeSecondBuoyOwnershipListener(getTransmittingBuoy2());
}
String[] transmittingBuoyOperationCodes = typeOperation.getTransmittingBuoyOperationCodes();
@@ -239,6 +247,7 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
editorPanel.add(getTransmittingBuoy1EditorPanel());
if (states.isEditing()) {
getValidatorBuoy1().setBean(getTransmittingBuoy1());
+ states.addFirstBuoyOwnershipListener(getTransmittingBuoy1());
}
focusOwner = getTransmittingBuoyType1();
break;
@@ -256,6 +265,8 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
if (states.isEditing()) {
getValidatorBuoy1().setBean(getTransmittingBuoy1());
getValidatorBuoy2().setBean(getTransmittingBuoy2());
+ states.addFirstBuoyOwnershipListener(getTransmittingBuoy1());
+ states.addSecondBuoyOwnershipListener(getTransmittingBuoy2());
}
focusOwner = getTransmittingBuoyType1();
break;
@@ -273,6 +284,7 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
});
}
+
private void addTransmittingBuoyCoordinate() {
Table transmittingBuoy1Editor = getTransmittingBuoy1Editor();
if (transmittingBuoy1Editor.getComponentCount() != 13) {
@@ -292,4 +304,5 @@ public interface DcpUIAdapter<T extends TransmittingBuoyAware> extends JAXXObjec
transmittingBuoy1Editor.add(getComment1(), new GridBagConstraints(0, 5, 2, 1, 0.0, 1.0, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
}
}
+
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/DcpUIModelStates.java
=====================================
@@ -37,6 +37,8 @@ import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPreset;
import fr.ird.observe.dto.data.ps.dcp.FloatingObjectPresetsManager;
import fr.ird.observe.dto.data.ps.logbook.TransmittingBuoyDto;
import fr.ird.observe.dto.referential.ReferentialLocale;
+import fr.ird.observe.dto.referential.common.CountryReference;
+import fr.ird.observe.dto.referential.common.VesselReference;
import fr.ird.observe.dto.referential.ps.common.ObjectMaterialDto;
import fr.ird.observe.dto.referential.ps.common.ObjectMaterialReference;
import fr.ird.observe.dto.referential.ps.common.ObjectOperationReference;
@@ -44,9 +46,12 @@ import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOperationReferen
import fr.ird.observe.dto.referential.ps.common.TransmittingBuoyOwnershipReference;
import io.ultreia.java4all.bean.JavaBean;
import io.ultreia.java4all.jaxx.widgets.combobox.BeanEnumEditor;
+import io.ultreia.java4all.jaxx.widgets.combobox.FilterableComboBox;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
import java.util.Collection;
import java.util.Date;
import java.util.LinkedHashMap;
@@ -96,6 +101,14 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
Optional<ToolkitIdModifications> consolidate();
+ TransmittingBuoyOwnershipListener<?> getFirstBuoyOwnershipListener();
+
+ void setFirstBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> firstBuoyOwnershipListener);
+
+ TransmittingBuoyOwnershipListener<?> getSecondBuoyOwnershipListener();
+
+ void setSecondBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> secondBuoyOwnershipListener);
+
default void recomputeComputedValues() {
Optional<ToolkitIdModifications> result = consolidate();
result.ifPresent(r -> {
@@ -163,14 +176,16 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
Map<String, ObjectMaterialDto> getReferentialMap();
+ void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap);
+
Map<String, TransmittingBuoyOperationReference> getBuoyOperationMap();
+ void setBuoyOperationMap(Map<String, TransmittingBuoyOperationReference> buoyOperationMap);
+
default TransmittingBuoyOperationReference getBuoyOperation(String code) {
return getBuoyOperationMap().get(code);
}
- void setBuoyOperationMap(Map<String, TransmittingBuoyOperationReference> buoyOperationMap);
-
Map<ObjectMaterialDto, String> getWhenArriving();
Map<ObjectMaterialDto, String> getWhenLeaving();
@@ -181,8 +196,6 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
return all.stream().filter(ObjectMaterialDto::withData).collect(Collectors.toSet());
}
- void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap);
-
void setWhenArriving(String id, String value);
void setWhenLeaving(String id, String value);
@@ -300,10 +313,6 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
FloatingObjectPreset floatingObjectReference = getReference();
- // FIXME See why we have to do this
-// bean.getTransmittingBuoy().clear();
-// bean.getFloatingObjectPart().clear();
-// Form<FloatingObjectDto> form = model.openForm(getModel().getStates().getSelectedId());
List<TransmittingBuoyOperationReference> referentialReferences = referencesCache.getReferentialReferences(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OPERATION);
setBuoyOperationMap(Maps.uniqueIndex(referentialReferences, TransmittingBuoyOperationReference::getCode));
@@ -312,8 +321,14 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
openTable.accept(bean.isPersisted() || floatingObjectReference != null);
- Optional.ofNullable(bean.getFirstBuoy()).ifPresent(b -> b.copy(ui1));
- Optional.ofNullable(bean.getSecondBuoy()).ifPresent(b -> b.copy(ui2));
+ Optional.ofNullable(bean.getFirstBuoy()).ifPresent(b -> {
+ b.copy(ui1);
+ getFirstBuoyOwnershipListener().apply();
+ });
+ Optional.ofNullable(bean.getSecondBuoy()).ifPresent(b -> {
+ b.copy(ui2);
+ getSecondBuoyOwnershipListener().apply();
+ });
getBean().setCanValidateMaterials(true);
}
@@ -322,4 +337,79 @@ public interface DcpUIModelStates<D extends DataDto & FloatingObjectAware, P ext
ReferencesCache getReferenceCache();
boolean isCreatingMode();
+
+ default void addFirstBuoyOwnershipListener(TransmittingBuoyAware buoy) {
+ TransmittingBuoyOwnershipListener<?> listener = getFirstBuoyOwnershipListener();
+ buoy.removePropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ buoy.addPropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ listener.apply();
+ }
+
+ default void removeFirstBuoyOwnershipListener(TransmittingBuoyAware buoy) {
+ PropertyChangeListener listener = getFirstBuoyOwnershipListener();
+ buoy.removePropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ }
+
+ default void addSecondBuoyOwnershipListener(TransmittingBuoyAware buoy) {
+ TransmittingBuoyOwnershipListener<?> listener = getSecondBuoyOwnershipListener();
+ buoy.removePropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ buoy.addPropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ listener.apply();
+ }
+
+ default void removeSecondBuoyOwnershipListener(TransmittingBuoyAware buoy) {
+ PropertyChangeListener listener = getSecondBuoyOwnershipListener();
+ buoy.removePropertyChangeListener(TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP, listener);
+ }
+
+ class TransmittingBuoyOwnershipListener<T extends TransmittingBuoyAware> implements PropertyChangeListener {
+
+ private final T buoy;
+ private final FilterableComboBox<VesselReference> vessel;
+ private final FilterableComboBox<CountryReference> country;
+
+ public TransmittingBuoyOwnershipListener(T buoy, FilterableComboBox<VesselReference> vessel, FilterableComboBox<CountryReference> country) {
+ this.buoy = buoy;
+ this.vessel = vessel;
+ this.country = country;
+ }
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt) {
+ TransmittingBuoyOwnershipReference buoyOwnership = (TransmittingBuoyOwnershipReference) evt.getNewValue();
+ apply(buoyOwnership);
+ }
+
+ public void apply() {
+ apply(buoy.getTransmittingBuoyOwnership());
+ }
+
+ private void apply(TransmittingBuoyOwnershipReference buoyOwnership) {
+ boolean enableVessel = true;
+ boolean enableCountry = true;
+ if (buoyOwnership != null) {
+ switch (buoyOwnership.getId()) {
+ case ProtectedIdsPs.PS_COMMON_TRANSMITTING_BUOY_OWNERSHIP_THIS_SHIP_ID:
+ enableVessel = false;
+ enableCountry = false;
+ break;
+ case ProtectedIdsPs.PS_COMMON_TRANSMITTING_BUOY_OWNERSHIP_UNKNOWN_ID:
+ enableVessel = false;
+ break;
+ }
+ }
+ if (enableVessel) {
+ vessel.setEnabled(true);
+ } else {
+ buoy.setVessel(null);
+ vessel.setEnabled(false);
+ }
+ if (enableCountry) {
+ country.setEnabled(true);
+ } else {
+ buoy.setCountry(null);
+ country.setEnabled(false);
+ }
+ }
+ }
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/dcp/FloatingObjectUICommon.jcss
=====================================
@@ -108,7 +108,6 @@
#transmittingBuoyOwnership1 {
property:{TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP};
- enabled: {!DcpUIModelStates.isBuoyDeployement(transmittingBuoy1.getTransmittingBuoyOperation())}
}
#country1Label {
@@ -161,7 +160,6 @@
#transmittingBuoyOwnership2 {
property:{TransmittingBuoyDto.PROPERTY_TRANSMITTING_BUOY_OWNERSHIP};
- enabled: {!DcpUIModelStates.isBuoyDeployement(transmittingBuoy2.getTransmittingBuoyOperation())}
}
#country2Label {
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUIHandler.java
=====================================
@@ -55,7 +55,7 @@ public class FloatingObjectUIHandler extends GeneratedFloatingObjectUIHandler {
@Override
public void stopEditUI() {
- ui.stopEditUI();
+ ui.stopEditUI(ui.getModel().getStates());
super.stopEditUI();
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/FloatingObjectUIModelStates.java
=====================================
@@ -66,6 +66,8 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
private boolean arriving;
private boolean leaving;
private FloatingObjectConsolidateEngine consolidateEngine;
+ private TransmittingBuoyOwnershipListener<?> firstBuoyOwnershipListener;
+ private TransmittingBuoyOwnershipListener<?> secondBuoyOwnershipListener;
public FloatingObjectUIModelStates(GeneratedFloatingObjectUIModel model) {
super(model);
@@ -78,6 +80,26 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
this.simplifiedObjectTypeSpecializedRulesSupplier = SingletonSupplier.of(model.getClientConfig()::getSimplifiedObjectTypeSpecializedRules);
}
+ @Override
+ public TransmittingBuoyOwnershipListener<?> getFirstBuoyOwnershipListener() {
+ return firstBuoyOwnershipListener;
+ }
+
+ @Override
+ public void setFirstBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> firstBuoyOwnershipListener) {
+ this.firstBuoyOwnershipListener = firstBuoyOwnershipListener;
+ }
+
+ @Override
+ public TransmittingBuoyOwnershipListener<?> getSecondBuoyOwnershipListener() {
+ return secondBuoyOwnershipListener;
+ }
+
+ @Override
+ public void setSecondBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> secondBuoyOwnershipListener) {
+ this.secondBuoyOwnershipListener = secondBuoyOwnershipListener;
+ }
+
@Override
public Map<String, TransmittingBuoyOperationReference> getBuoyOperationMap() {
return buoyOperationMap;
@@ -141,11 +163,6 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
return whenLeaving;
}
- @Override
- public void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap) {
- this.referentialMap = referentialMap;
- }
-
@Override
public void setWhenArriving(String id, String value) {
setWhen0(id, value, whenArriving);
@@ -230,6 +247,11 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
return referentialMap;
}
+ @Override
+ public void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap) {
+ this.referentialMap = referentialMap;
+ }
+
@Override
public String getComputedWhenArrivingBiodegradableValue() {
return DcpUIModelStates.super.getComputedWhenArrivingBiodegradableValue();
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUIHandler.java
=====================================
@@ -55,7 +55,7 @@ public class FloatingObjectUIHandler extends GeneratedFloatingObjectUIHandler {
@Override
public void stopEditUI() {
- ui.stopEditUI();
+ ui.stopEditUI(ui.getModel().getStates());
super.stopEditUI();
}
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/FloatingObjectUIModelStates.java
=====================================
@@ -70,6 +70,8 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
private boolean arriving;
private boolean leaving;
private FloatingObjectConsolidateEngine consolidateEngine;
+ private TransmittingBuoyOwnershipListener<?> firstBuoyOwnershipListener;
+ private TransmittingBuoyOwnershipListener<?> secondBuoyOwnershipListener;
public FloatingObjectUIModelStates(GeneratedFloatingObjectUIModel model) {
super(model);
@@ -82,6 +84,26 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
this.simplifiedObjectTypeSpecializedRulesSupplier = SingletonSupplier.of(model.getClientConfig()::getSimplifiedObjectTypeSpecializedRules);
}
+ @Override
+ public TransmittingBuoyOwnershipListener<?> getFirstBuoyOwnershipListener() {
+ return firstBuoyOwnershipListener;
+ }
+
+ @Override
+ public void setFirstBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> firstBuoyOwnershipListener) {
+ this.firstBuoyOwnershipListener = firstBuoyOwnershipListener;
+ }
+
+ @Override
+ public TransmittingBuoyOwnershipListener<?> getSecondBuoyOwnershipListener() {
+ return secondBuoyOwnershipListener;
+ }
+
+ @Override
+ public void setSecondBuoyOwnershipListener(TransmittingBuoyOwnershipListener<?> secondBuoyOwnershipListener) {
+ this.secondBuoyOwnershipListener = secondBuoyOwnershipListener;
+ }
+
@Override
public Map<String, TransmittingBuoyOperationReference> getBuoyOperationMap() {
return buoyOperationMap;
@@ -145,11 +167,6 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
return whenLeaving;
}
- @Override
- public void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap) {
- this.referentialMap = referentialMap;
- }
-
@Override
public void setWhenArriving(String id, String value) {
setWhen0(id, value, whenArriving);
@@ -234,6 +251,11 @@ public class FloatingObjectUIModelStates extends GeneratedFloatingObjectUIModelS
return referentialMap;
}
+ @Override
+ public void setReferentialMap(Map<String, ObjectMaterialDto> referentialMap) {
+ this.referentialMap = referentialMap;
+ }
+
@Override
public String getComputedWhenArrivingBiodegradableValue() {
return DcpUIModelStates.super.getComputedWhenArrivingBiodegradableValue();
=====================================
core/api/dto-decoration/src/main/i18n/getters/labels.getter
=====================================
@@ -1011,6 +1011,7 @@ observe.data.ps.logbook.SampleSpeciesMeasure.count
observe.data.ps.logbook.SampleSpeciesMeasure.count.short
observe.data.ps.logbook.SampleSpeciesMeasure.type
observe.data.ps.logbook.TransmittingBuoy.code
+observe.data.ps.logbook.TransmittingBuoy.country
observe.data.ps.logbook.TransmittingBuoy.type
observe.data.ps.logbook.Well.action.create
observe.data.ps.logbook.Well.action.move
@@ -1233,6 +1234,7 @@ observe.data.ps.observation.SpeciesFateDiscardMode.nullValue
observe.data.ps.observation.SpeciesFateDiscardMode.trueValue
observe.data.ps.observation.SpeciesFateDiscardMode.type
observe.data.ps.observation.TransmittingBuoy.code
+observe.data.ps.observation.TransmittingBuoy.country
observe.data.ps.observation.TransmittingBuoy.type
observe.referential.MinMaxWeight.maxWeight
observe.referential.MinMaxWeight.minMaxWeight
=====================================
core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
=====================================
@@ -33,6 +33,7 @@ import java.util.Set;
//FIXME-PROTECTED-ID
public interface ProtectedIdsPs {
String PS_COMMON_TRANSMITTING_BUOY_OWNERSHIP_THIS_SHIP_ID = "fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#3";
+ String PS_COMMON_TRANSMITTING_BUOY_OWNERSHIP_UNKNOWN_ID = "fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#0";
String PS_COMMON_SCHOOL_TYPE_UNDEFINED_ID = "fr.ird.referential.ps.common.SchoolType#0#0";
String PS_COMMON_SCHOOL_TYPE_FREE_ID = "fr.ird.referential.ps.common.SchoolType#0#2";
String PS_COMMON_SCHOOL_TYPE_OBJECT_ID = "fr.ird.referential.ps.common.SchoolType#0#1";
=====================================
core/persistence/migration/src/main/java/fr/ird/observe/spi/migration/v9/DataSourceMigrationForVersion_9_3.java
=====================================
@@ -35,19 +35,21 @@ import org.nuiton.topia.service.migration.resources.MigrationVersionResourceExec
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.3.0
*/
-//(a)AutoService(MigrationVersionResource.class)
+(a)AutoService(MigrationVersionResource.class)
public class DataSourceMigrationForVersion_9_3 extends ByMajorMigrationVersionResource {
public DataSourceMigrationForVersion_9_3() {
super(Version.valueOf("9.3"), false);
- createResourceScriptVariables(this, "2023-11-15", "2023-09-01 00:00:00.000000");
+ createResourceScriptVariables(this, "2023-12-01", "2023-12-01 00:00:00.000000");
}
-
@Override
public void generateSqlScript(MigrationVersionResourceExecutor executor) {
boolean withIds = executor.findSingleResult(SqlQuery.wrap("SELECT COUNT (*) FROM common.person", r -> r.getInt(1) > 0));
-
+ if (withIds) {
+ // See https://gitlab.com/ultreiaio/ird-observe/-/issues/2044
+ executor.addScript("01", "issue-2044");
+ }
}
}
=====================================
core/persistence/migration/src/main/resources/db/migration/v9/9.3/01_issue-2044-common.sql
=====================================
@@ -0,0 +1,27 @@
+---
+-- #%L
+-- ObServe Core :: Persistence :: Migration
+-- %%
+-- 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%
+---
+-- Unknown vessel → no vessel
+UPDATE ps_observation.TransmittingBuoy SET vessel = NULL WHERE transmittingBuoyOwnership = 'fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#0';
+UPDATE ps_logbook.TransmittingBuoy SET vessel = NULL WHERE transmittingBuoyOwnership = 'fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#0';
+-- This vessel → no country, nor vessel
+UPDATE ps_observation.TransmittingBuoy SET country = NULL, vessel = NULL WHERE transmittingBuoyOwnership = 'fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#3';
+UPDATE ps_logbook.TransmittingBuoy SET country = NULL, vessel = NULL WHERE transmittingBuoyOwnership = 'fr.ird.referential.ps.common.TransmittingBuoyOwnership#0#3';
=====================================
core/services/i18n/src/main/i18n/translations/services_en_GB.properties
=====================================
@@ -1222,6 +1222,7 @@ observe.data.ps.logbook.SampleSpeciesMeasure.count=Count
observe.data.ps.logbook.SampleSpeciesMeasure.count.short=Count
observe.data.ps.logbook.SampleSpeciesMeasure.type=Sample species measure
observe.data.ps.logbook.TransmittingBuoy.code=Code
+observe.data.ps.logbook.TransmittingBuoy.country=Flag country
observe.data.ps.logbook.TransmittingBuoy.type=Transmitting buoy
observe.data.ps.logbook.Well.action.create=Next well
observe.data.ps.logbook.Well.action.move=Change trip
@@ -1496,6 +1497,7 @@ observe.data.ps.observation.SpeciesFateDiscardMode.nullValue=Unknown
observe.data.ps.observation.SpeciesFateDiscardMode.trueValue=Discarded
observe.data.ps.observation.SpeciesFateDiscardMode.type=Species fate discard mode
observe.data.ps.observation.TransmittingBuoy.code=Code
+observe.data.ps.observation.TransmittingBuoy.country=Flag country
observe.data.ps.observation.TransmittingBuoy.type=Transmitting buoy
observe.data.ps.pairing.ActivityPairingResultItem.computedDistance=Distance (km)
observe.data.ps.pairing.ActivityPairingResultItem.computedTime=Time shift (days\:hours\:minutes)
=====================================
core/services/i18n/src/main/i18n/translations/services_es_ES.properties
=====================================
@@ -1222,6 +1222,7 @@ observe.data.ps.logbook.SampleSpeciesMeasure.count=Count \#TODO
observe.data.ps.logbook.SampleSpeciesMeasure.count.short=Count
observe.data.ps.logbook.SampleSpeciesMeasure.type=Sample species measure
observe.data.ps.logbook.TransmittingBuoy.code=Identificación
+observe.data.ps.logbook.TransmittingBuoy.country=Bandera
observe.data.ps.logbook.TransmittingBuoy.type=TransmittingBuoy
observe.data.ps.logbook.Well.action.create=Next well
observe.data.ps.logbook.Well.action.move=Change trip
@@ -1496,6 +1497,7 @@ observe.data.ps.observation.SpeciesFateDiscardMode.nullValue=Unknown
observe.data.ps.observation.SpeciesFateDiscardMode.trueValue=Discarded
observe.data.ps.observation.SpeciesFateDiscardMode.type=Species fate discard mode
observe.data.ps.observation.TransmittingBuoy.code=Identificación
+observe.data.ps.observation.TransmittingBuoy.country=Bandera
observe.data.ps.observation.TransmittingBuoy.type=TransmittingBuoy
observe.data.ps.pairing.ActivityPairingResultItem.computedDistance=Distance (km) \#TODO
observe.data.ps.pairing.ActivityPairingResultItem.computedTime=Time shift (days\:hours\:minutes) \#TODO
=====================================
core/services/i18n/src/main/i18n/translations/services_fr_FR.properties
=====================================
@@ -1222,6 +1222,7 @@ observe.data.ps.logbook.SampleSpeciesMeasure.count=Effectif
observe.data.ps.logbook.SampleSpeciesMeasure.count.short=Effectif
observe.data.ps.logbook.SampleSpeciesMeasure.type=Mesure d'un échantillon espèce
observe.data.ps.logbook.TransmittingBuoy.code=Identifiant
+observe.data.ps.logbook.TransmittingBuoy.country=Pavillon
observe.data.ps.logbook.TransmittingBuoy.type=Balise émettrice
observe.data.ps.logbook.Well.action.create=Cuve suivante
observe.data.ps.logbook.Well.action.move=Changer de marée
@@ -1496,6 +1497,7 @@ observe.data.ps.observation.SpeciesFateDiscardMode.nullValue=Inconnu
observe.data.ps.observation.SpeciesFateDiscardMode.trueValue=Rejeté
observe.data.ps.observation.SpeciesFateDiscardMode.type=Mode de rejet (du devenir)
observe.data.ps.observation.TransmittingBuoy.code=Identifiant
+observe.data.ps.observation.TransmittingBuoy.country=Pavillon
observe.data.ps.observation.TransmittingBuoy.type=Balise émettrice
observe.data.ps.pairing.ActivityPairingResultItem.computedDistance=Distance (km)
observe.data.ps.pairing.ActivityPairingResultItem.computedTime=Écart de temps (jours\:heures\:minutes)
=====================================
model/src/main/models/Observe/dto/class/i18nOverrideLabels.properties
=====================================
@@ -23,8 +23,10 @@ data.ll.common.Trip=species
data.ll.landing.Landing=vessel
data.ps.localmarket.Sample=well
data.ps.logbook.Catch=weightMeasureMethod.validation.required
+data.ps.logbook.TransmittingBuoy=country
data.ps.observation.Catch=minWeight,maxWeight,minMaxWeight,weightMeasureMethod
data.ps.observation.SchoolEstimate=species
data.ps.observation.Set=startTime,haulingStartTimeStamp,haulingEndTimeStamp,endTimeStamp
+data.ps.observation.TransmittingBuoy=country
referential.common.Species=codeAndHomeId
referential.ps.common.AcquisitionStatus=observation,logbook,landing,localMarket
=====================================
pom.xml
=====================================
@@ -93,9 +93,9 @@
<model.persistence.defaultPackage>fr.ird.observe.entities</model.persistence.defaultPackage>
<model.persistence.fullPackagePath>fr.ird.observe</model.persistence.fullPackagePath>
<!--persistence model version-->
- <persistence.model.version>9.2</persistence.model.version>
+ <persistence.model.version>9.3</persistence.model.version>
<!--persistence previous model version used for tck migration-->
- <persistence.previous.model.version>9.1</persistence.previous.model.version>
+ <persistence.previous.model.version>9.2</persistence.previous.model.version>
<tck.filename>tck-v${persistence.model.version}.zip</tck.filename>
<tck.updated.filename>updated-${tck.filename}</tck.updated.filename>
<tck.remote.path>/var/www/html/private/ird-observe/tck</tck.remote.path>
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/1b79ed665ab5f256cbff50a3…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/1b79ed665ab5f256cbff50a3…
You're receiving this email because of your account on gitlab.com.
1
0
30 Nov '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
43df8143 by Tony Chemit at 2023-11-30T12:59:58+01:00
update pom
- - - - -
4e4fab22 by Tony Chemit at 2023-11-30T14:33:12+01:00
on Report action, let's select all data for local data source - See #281x ?
- - - - -
ad1a88c8 by Tony Chemit at 2023-11-30T14:33:14+01:00
add AutoNext mechanism on admin tab when tab state change to success, add it on consolidate tab :) - See #281x ?
- - - - -
bf5d8d8a by Tony Chemit at 2023-11-30T14:33:25+01:00
use TopiaPersistenceContext instead of TopiaDaoSupplier in DefaultReportRequestExecutor to be able to use findById method
and use ReportDefinition instead of Report parameter in method TopiaPersistenceContext.newReportRequestExecutor
- - - - -
df4266dd by Tony Chemit at 2023-11-30T14:33:25+01:00
add method ReportRequestExecutor.getReferentialLabel method and implements it.
- - - - -
7248bb0d by Tony Chemit at 2023-11-30T14:33:25+01:00
introduce ColumnRendererDefinition and add some in ReportDefinition
- - - - -
b2021fca by Tony Chemit at 2023-11-30T15:12:09+01:00
introduce ColumnRendererConsumer and ColumnRendererParameters API
- - - - -
8515cd4f by Tony Chemit at 2023-11-30T15:12:39+01:00
implements first ColumnRendererConsumers
- - - - -
b9ec8221 by Tony Chemit at 2023-11-30T15:12:39+01:00
add method ReportService.initColumnRendererParameters
- - - - -
8fc495ce by Tony Chemit at 2023-11-30T15:12:39+01:00
test new API in fixtures
- - - - -
6d61b859 by Tony Chemit at 2023-11-30T15:12:39+01:00
add first cell renderers in report definitions :)
- - - - -
ae59a5f8 by Tony Chemit at 2023-11-30T15:12:39+01:00
adapt Report ui action API to load column renderers of selected report and offers them to HtmlExportModel.
- - - - -
498756f4 by Tony Chemit at 2023-11-30T15:45:34+01:00
adapt Report html template at last
- - - - -
1b79ed66 by Tony Chemit at 2023-11-30T15:46:12+01:00
Merge branch 'feature/issue-2811' into develop
Définir les règles de mise en forme conditionnelle sur les tableaux de synthèse
- See #2811
- - - - -
30 changed files:
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_en_GB.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_es_ES.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_fr_FR.ftl
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminTabUIHandler.java
- 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/consolidate/ConsolidateUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/HtmlExportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUIHandler.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java
- core/persistence/report/src/main/resources/observe-reports.properties
- core/services/local/src/main/java/fr/ird/observe/services/local/service/ReportServiceLocalSupport.java
- core/services/test/src/main/java/fr/ird/observe/services/service/ReportServiceFixtures.java
- pom.xml
- server/core/src/main/filtered-resources/META-INF/mapping-api-client.wm
- toolkit/api-report/pom.xml
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumer.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumers.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererParameters.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/Report.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ReportColumnRenderersParameters.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/definition/ColumnRendererDefinition.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/definition/DefaultReportDefinitionsBuilder.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/definition/ReportDefinition.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.java
- + toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.js
- + toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.js
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/cfc0c2f35d3357480e23925d…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/cfc0c2f35d3357480e23925d…
You're receiving this email because of your account on gitlab.com.
1
0
30 Nov '23
Tony CHEMIT deleted branch feature/issue-2811 at ultreiaio / ird-observe
--
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue-2811] 13 commits: update pom
by Tony CHEMIT (@tchemit) 30 Nov '23
by Tony CHEMIT (@tchemit) 30 Nov '23
30 Nov '23
Tony CHEMIT pushed to branch feature/issue-2811 at ultreiaio / ird-observe
Commits:
43df8143 by Tony Chemit at 2023-11-30T12:59:58+01:00
update pom
- - - - -
4e4fab22 by Tony Chemit at 2023-11-30T14:33:12+01:00
on Report action, let's select all data for local data source - See #281x ?
- - - - -
ad1a88c8 by Tony Chemit at 2023-11-30T14:33:14+01:00
add AutoNext mechanism on admin tab when tab state change to success, add it on consolidate tab :) - See #281x ?
- - - - -
bf5d8d8a by Tony Chemit at 2023-11-30T14:33:25+01:00
use TopiaPersistenceContext instead of TopiaDaoSupplier in DefaultReportRequestExecutor to be able to use findById method
and use ReportDefinition instead of Report parameter in method TopiaPersistenceContext.newReportRequestExecutor
- - - - -
df4266dd by Tony Chemit at 2023-11-30T14:33:25+01:00
add method ReportRequestExecutor.getReferentialLabel method and implements it.
- - - - -
7248bb0d by Tony Chemit at 2023-11-30T14:33:25+01:00
introduce ColumnRendererDefinition and add some in ReportDefinition
- - - - -
b2021fca by Tony Chemit at 2023-11-30T15:12:09+01:00
introduce ColumnRendererConsumer and ColumnRendererParameters API
- - - - -
8515cd4f by Tony Chemit at 2023-11-30T15:12:39+01:00
implements first ColumnRendererConsumers
- - - - -
b9ec8221 by Tony Chemit at 2023-11-30T15:12:39+01:00
add method ReportService.initColumnRendererParameters
- - - - -
8fc495ce by Tony Chemit at 2023-11-30T15:12:39+01:00
test new API in fixtures
- - - - -
6d61b859 by Tony Chemit at 2023-11-30T15:12:39+01:00
add first cell renderers in report definitions :)
- - - - -
ae59a5f8 by Tony Chemit at 2023-11-30T15:12:39+01:00
adapt Report ui action API to load column renderers of selected report and offers them to HtmlExportModel.
- - - - -
498756f4 by Tony Chemit at 2023-11-30T15:45:34+01:00
adapt Report html template at last
- - - - -
30 changed files:
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_en_GB.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_es_ES.ftl
- client/datasource/actions/src/main/i18n/templates/reportHtmlExport_fr_FR.ftl
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/AdminTabUIHandler.java
- 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/consolidate/ConsolidateUIHandler.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/HtmlExportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportUIHandler.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/ObserveTopiaPersistenceContext.java
- core/persistence/report/src/main/resources/observe-reports.properties
- core/services/local/src/main/java/fr/ird/observe/services/local/service/ReportServiceLocalSupport.java
- core/services/test/src/main/java/fr/ird/observe/services/service/ReportServiceFixtures.java
- pom.xml
- server/core/src/main/filtered-resources/META-INF/mapping-api-client.wm
- toolkit/api-report/pom.xml
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumer.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererConsumers.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ColumnRendererParameters.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/Report.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/ReportColumnRenderersParameters.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/ReportRequestExecutor.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/definition/ColumnRendererDefinition.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/definition/DefaultReportDefinitionsBuilder.java
- toolkit/api-report/src/main/java/fr/ird/observe/report/definition/ReportDefinition.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.java
- + toolkit/api-report/src/main/java/fr/ird/observe/report/renderers/HighlightIfNumericalValueIsPositive.java
- + toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfAbsoluteDeltaIsPositive.js
- + toolkit/api-report/src/main/resources/fr/ird/observe/report/renderers/HighlightIfNotI18nReferentialValue.js
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2d4064419bd565c489602d9a…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/2d4064419bd565c489602d9a…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe] Pushed new branch feature/issue-2811
by Tony CHEMIT (@tchemit) 29 Nov '23
by Tony CHEMIT (@tchemit) 29 Nov '23
29 Nov '23
Tony CHEMIT pushed new branch feature/issue-2811 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/feature/issue-2811
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 5 commits: avoid re-entrant code in listener
by Tony CHEMIT (@tchemit) 28 Nov '23
by Tony CHEMIT (@tchemit) 28 Nov '23
28 Nov '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
ee03d54b by Tony Chemit at 2023-11-28T17:19:37+01:00
avoid re-entrant code in listener
- - - - -
b5b89df8 by Tony Chemit at 2023-11-28T17:20:29+01:00
Do not enable change mode action if not one selected data
- - - - -
b3f7a158 by Tony Chemit at 2023-11-28T17:33:20+01:00
On list ui, always select first item at end open
- - - - -
c4dec149 by Tony Chemit at 2023-11-28T17:34:08+01:00
On list ui, show configuration actions in navigation context menu even if model is not editable (may have the goto editing child action enabled here)
- - - - -
cfc0c2f3 by Tony Chemit at 2023-11-28T17:34:26+01:00
Merge branch 'feature/issue-2810' into develop
LL observations, en sélection multiple d'activités, la fonction 'Rouvrir la donnée de type activité' ne devrait pas être disponible
- Closes #2810
- - - - -
3 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeProducer.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUIHandler.java
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTreeShowPopupHandler.java
Changes:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/mode/ChangeModeProducer.java
=====================================
@@ -45,6 +45,8 @@ public class ChangeModeProducer<U extends ContentUI> {
private final U ui;
private final PropertyChangeListener listener;
+ private boolean adjusting;
+
public ChangeModeProducer(U ui, ChangeModeRequest request, String... properties) {
this.ui = Objects.requireNonNull(ui);
this.request = Objects.requireNonNull(request);
@@ -57,7 +59,16 @@ public class ChangeModeProducer<U extends ContentUI> {
listener = (PropertyChangeEvent evt) -> {
if (modelStates.contains(evt.getPropertyName())) {
- doRebuildChangeMode();
+ if (adjusting) {
+ return;
+ }
+ try {
+ adjusting = true;
+ doRebuildChangeMode();
+ } finally {
+ adjusting = false;
+ }
+
}
};
ui.getModel().getStates().addPropertyChangeListener(ContentUIModelStates.PROPERTY_OPENED, evt -> {
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/data/list/ContentListUIHandler.java
=====================================
@@ -46,6 +46,7 @@ import org.apache.logging.log4j.Logger;
import javax.swing.JComponent;
import javax.swing.JMenuItem;
+import javax.swing.SwingUtilities;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.MouseEvent;
@@ -126,6 +127,16 @@ public abstract class ContentListUIHandler<D extends OpenableDto, R extends Data
ShowTechnicalInformations.installAction(ui);
}
+ @Override
+ public void onEndOpenUI() {
+ super.onEndOpenUI();
+ SwingUtilities.invokeLater(()-> {
+ if (!ui.getModel().getStates().isEmpty() && ui.getList().isSelectionEmpty()) {
+ ui.getList().setSelectedIndex(0);
+ }
+ });
+ }
+
@Override
public void installChangeModeAction() {
ChangeModeRequest request = ui.getModel().toChangeModeRequest();
@@ -194,6 +205,26 @@ public abstract class ContentListUIHandler<D extends OpenableDto, R extends Data
ui.getActions().setVisible(false);
super.rebuildNotEditableZone(ui);
}
+
+ @Override
+ protected void rebuildAction(U ui, ContentMode newValue) {
+ ContentListUIModelStates<R> states = ui.getModel().getStates();
+ boolean editable = states.isEditable();
+ if (editable && ContentMode.READ.equals(newValue)) {
+ boolean disableAction = false;
+ if (!states.isOneSelectedData()) {
+ disableAction = true;
+ states.setEditable(false);
+ }
+ super.rebuildAction(ui, newValue);
+ if(disableAction) {
+ states.setEditable(true);
+ setEnabled(false);
+ }
+ } else {
+ super.rebuildAction(ui, newValue);
+ }
+ }
};
ChangeMode.installAction(ui, action);
}
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/navigation/NavigationTreeShowPopupHandler.java
=====================================
@@ -25,6 +25,7 @@ package fr.ird.observe.client.datasource.editor.api.navigation;
import fr.ird.observe.client.datasource.editor.api.DataSourceEditorModel;
import fr.ird.observe.client.datasource.editor.api.content.ContentUI;
import fr.ird.observe.client.datasource.editor.api.content.ContentUIHandler;
+import fr.ird.observe.client.datasource.editor.api.content.data.list.ContentListUI;
import fr.ird.observe.client.datasource.editor.api.content.referential.ReferentialHomeUI;
import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode;
import org.apache.logging.log4j.LogManager;
@@ -92,7 +93,7 @@ public class NavigationTreeShowPopupHandler implements KeyListener, MouseListene
actions.forEach(a -> ContentUIMenuAction.createWithKeyStroke(popup, a).init());
length = popup.getSubElements().length;
} else {
- if (selectedContentUI.getMode().isEnabled()) {
+ if (selectedContentUI.getMode().isEnabled() || selectedContentUI instanceof ContentListUI) {
ContentUIMenuAction.createWithKeyStroke(popup, selectedContentUI.getMode()).init();
actions.forEach(a -> ContentUIMenuAction.createWithKeyStroke(popup, a).init());
popup.addSeparator();
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9686faf40d5b01922d30adc5…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9686faf40d5b01922d30adc5…
You're receiving this email because of your account on gitlab.com.
1
0
28 Nov '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
09239859 by Tony Chemit at 2023-11-28T12:38:48+01:00
update pom
- - - - -
d60f1b41 by Tony Chemit at 2023-11-28T12:42:29+01:00
Mettre tous les traits en fin (width=1)- Closes #2756
- - - - -
c7a40264 by Tony Chemit at 2023-11-28T16:39:21+01:00
Remove report legacy API and migration.
- - - - -
5fc26ffc by Tony Chemit at 2023-11-28T16:39:50+01:00
update pom
- - - - -
156a852f by Tony Chemit at 2023-11-28T16:39:51+01:00
add method I18nDecoratorHelper.newTimeFormat
- - - - -
6d909796 by Tony Chemit at 2023-11-28T16:39:51+01:00
add cellValueFormatter on ReportRequestExecutor to format date and time (pass it to the DataMatrix)
- - - - -
e77b6111 by Tony Chemit at 2023-11-28T16:39:51+01:00
update reports to remove any date and time transformations in requests (this will be done after)
- - - - -
7d39513a by Tony Chemit at 2023-11-28T16:39:51+01:00
update reports fixtures
- - - - -
9686faf4 by Tony Chemit at 2023-11-28T16:45:27+01:00
Merge branch 'feature/issue-2812' into develop
Normalisation des dates et heures dans les rapports - Closes #2812
- - - - -
10 changed files:
- client/datasource/editor/ll/src/main/resources/map/ll-style.xml
- client/datasource/editor/ps/src/main/resources/map/ps-style.xml
- core/persistence/report/src/main/resources/observe-reports.properties
- − core/persistence/report/src/test/java/fr/ird/observe/report/definition/tool/MigrateReportsDefinitionsTest.java
- core/services/local/src/test/java/fr/ird/observe/services/local/service/ReportServiceLocalReadTest.java
- core/services/test/src/main/java/fr/ird/observe/services/service/ReportServiceFixtures.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-llLanding.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-llLogbookActivities.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-llLogbookCatches.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-llLogbookSamplesOnActivity.properties
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e3c8ed67630a9fb7237a9536…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/e3c8ed67630a9fb7237a9536…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 8 commits: Supprimer le module server-configuration-tool (il ne sert pas) - Closes #2807
by Tony CHEMIT (@tchemit) 27 Nov '23
by Tony CHEMIT (@tchemit) 27 Nov '23
27 Nov '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
16bd168a by Tony Chemit at 2023-11-25T14:57:31+01:00
Supprimer le module server-configuration-tool (il ne sert pas) - Closes #2807
- - - - -
5c5514d0 by Tony Chemit at 2023-11-27T17:14:48+01:00
Add a new hook when loading a dto for from and validation (we will use it in Validation interceptor to load on dto some properties used for validation)
- - - - -
9fba01ae by Tony Chemit at 2023-11-27T17:14:48+01:00
Add new entity method Activity.isCoordinateRequired to compute this value
- - - - -
98639a6a by Tony Chemit at 2023-11-27T17:14:48+01:00
Add new dto method Activity.isCoordinateRequired to get value computed on entity
- - - - -
251c5d0b by Tony Chemit at 2023-11-27T17:16:08+01:00
load Activity.coordinateRequired property to dto (when validation is required)
- - - - -
f58e962c by Tony Chemit at 2023-11-27T17:16:20+01:00
Add validation rule on ActivityDto coordinates (not null except if !coordinateRequired)
- - - - -
15719d0c by Tony Chemit at 2023-11-27T17:16:20+01:00
Use new hook loadDtoFroValidation in EntityInterceptor (so now we can have exact same behaviour than in application forms (but need to double check any overrides))
- - - - -
e3c8ed67 by Tony Chemit at 2023-11-27T17:17:58+01:00
Merge branch 'feature/issue-2663' into develop
Contrôle de validation position si opération sur objet != perte/fin transmission/fin balise
- Closes #2663
- - - - -
30 changed files:
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/logbook/ActivityDto.java
- core/api/validation/src/main/filtered-resources/META-INF/validators/validation.json
- core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/logbook/ActivityDto-create-error-validation.xml
- core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/logbook/ActivityDto-update-error-validation.xml
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/common/TripSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripBatchSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/localmarket/SurveySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/ActivityImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/SampleSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/RouteSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/SampleSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/validation/ValidationHelper.java
- core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/logbook/Activity/validation-create.json
- core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/logbook/Activity/validation-update.json
- model/src/main/models/Observe/dto/21-data-ps-logbook.model
- model/src/main/models/Observe/dto/attribute/notNullIf.properties
- model/src/main/models/Observe/persistence/21-data-ps-logbook.model
- − server/configuration-tools/.mvn/pom.gitflow.develop
- − server/configuration-tools/.mvn/pom.gitflow.master
- − server/configuration-tools/.mvn/pom.organizationId
- − server/configuration-tools/.mvn/pom.projectId
- − server/configuration-tools/.mvn/pom.stageId
- − server/configuration-tools/LICENSE.txt
- − server/configuration-tools/README.md
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bdc2aff02c3f40dfe1a19070…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bdc2aff02c3f40dfe1a19070…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Deleted 9 commits: Supprimer le module server-configuration-tool (il ne sert pas) - Closes #2807
by Tony CHEMIT (@tchemit) 27 Nov '23
by Tony CHEMIT (@tchemit) 27 Nov '23
27 Nov '23
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
WARNING: The push did not contain any new commits, but force pushed to delete the commits and changes below.
Deleted commits:
16bd168a by Tony Chemit at 2023-11-25T14:57:31+01:00
Supprimer le module server-configuration-tool (il ne sert pas) - Closes #2807
- - - - -
d891446e by Tony Chemit at 2023-11-26T14:21:39+01:00
Add a new hook when loading a dto for from and validation (we will use it in Validation interceptor to load on dto some properties used for validation)
- - - - -
72f5ad23 by Tony Chemit at 2023-11-26T14:25:53+01:00
Add new entity method Activity.isCoordinateRequired to compute this value
- - - - -
7a3f463d by Tony Chemit at 2023-11-26T14:25:53+01:00
Add new dto method Activity.isCoordinateRequired to get value computed on entity
- - - - -
11207afb by Tony Chemit at 2023-11-26T14:25:53+01:00
use new spi method loadDtoFtoValidation on Activity to load route date and coordinateRequired
- - - - -
6814846e by Tony Chemit at 2023-11-26T14:25:53+01:00
Add validation rule on ActivityDto coordinates (not null except if !coordinateRequired)
- - - - -
1c40214e by Tony Chemit at 2023-11-26T14:29:45+01:00
Merge branch 'feature/issue-2663' into develop
Contrôle de validation position si opération sur objet != perte/fin transmission/fin balise - Closes #2663
- - - - -
0a984bc1 by Tony Chemit at 2023-11-26T14:46:34+01:00
Add a new hook when loading a dto for from and validation (we will use it in Validation interceptor to load on dto some properties used for validation)
- - - - -
8e9ef36f by Tony Chemit at 2023-11-26T14:46:35+01:00
Use new hook loadDtoFroValidation in EntityInterceptor (so now we can have exact same behaviour than in application forms (but need to double check any overrides))
- - - - -
30 changed files:
- core/api/dto/src/main/java/fr/ird/observe/dto/ProtectedIdsPs.java
- core/api/dto/src/main/java/fr/ird/observe/dto/data/ps/logbook/ActivityDto.java
- core/api/validation/src/main/filtered-resources/META-INF/validators/validation.json
- core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/logbook/ActivityDto-create-error-validation.xml
- core/api/validation/src/main/resources/fr/ird/observe/dto/data/ps/logbook/ActivityDto-update-error-validation.xml
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/common/TripSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/observation/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripBatchSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/common/TripSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/localmarket/SurveySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/ActivityImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/SampleSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/RouteSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/SampleSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/SetSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/spi/validation/ValidationHelper.java
- core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/logbook/Activity/validation-create.json
- core/persistence/resources/src/main/resources/fr/ird/observe/entities/data/ps/logbook/Activity/validation-update.json
- model/src/main/models/Observe/dto/21-data-ps-logbook.model
- model/src/main/models/Observe/dto/attribute/notNullIf.properties
- model/src/main/models/Observe/persistence/21-data-ps-logbook.model
- − server/configuration-tools/.mvn/pom.gitflow.develop
- − server/configuration-tools/.mvn/pom.gitflow.master
- − server/configuration-tools/.mvn/pom.organizationId
- − server/configuration-tools/.mvn/pom.projectId
- − server/configuration-tools/.mvn/pom.stageId
- − server/configuration-tools/LICENSE.txt
- − server/configuration-tools/README.md
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bdc2aff02c3f40dfe1a19070…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/bdc2aff02c3f40dfe1a19070…
You're receiving this email because of your account on gitlab.com.
1
0