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
December 2022
- 1 participants
- 58 discussions
12 Dec '22
Tony CHEMIT pushed new branch release/9.0.22 at ultreiaio / ird-observe
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/tree/release/9.0.22
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Update changelog for v.9.0.22 [skip CI]
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
a00a0827 by Tony Chemit at 2022-12-12T19:32:26+01:00
Update changelog for v.9.0.22 [skip CI]
- - - - -
1 changed file:
- CHANGELOG.md
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,38 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2022-11-30 18:24.
+ * Last generated at 2022-12-12 19:31.
+
+## Version [9.1.0-RC-1](https://gitlab.com/ultreiaio/ird-observe/-/milestones/243)
+
+**Closed at 2022-11-25.**
+
+
+### Issues
+ * [[Type::Evolution 2218]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2218) **tms_version va-t-elle rester dans le schéma public ?** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2478]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2478) **Réusinage du plan de cuve** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+
+## Version [9.0.22](https://gitlab.com/ultreiaio/ird-observe/-/milestones/252)
+
+**Closed at 2022-12-12.**
+
+### Download
+* [Client (observe-9.0.22-client.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+* [Serveur (observe-9.0.22.war)](https://repo1.maven.org/maven2/fr/ird/observe/observe/…)
+* [Serveur (observe-9.0.22-server.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+
+### Issues
+ * [[Type::Anomalie 2551]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2551) **Rapport LB - Vérification croisée des débarquements, colonnes cuves vides erronées** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2571]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2571) **Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ?** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2574]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2574) **Lors de la sauvegarde d'une activité, l'arbre est replié mais surtout on perd sur ces fils les statistiques** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Evolution 2543]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2543) **Migration IEO** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Evolution 2550]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2550) **Lorsque que l'on utilise la fonction Précédent de l'assistants rapports, il est possible de lancer les rapports sur des marées non calculées** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2552]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2552) **Optimisation des rapports Captures de thons selon le type d'association et Rejets de thons selon le type d'association** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2553]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2553) **Rapport Observations - Dénombrement des captures par devenir, filtrés par groupe** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2554]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2554) **Besoin d'un rapport Observations fournissant les captures par devenir, en poids** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2555]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2555) **Besoin d'un rapport Observations fournissant les poids par raisons de rejets** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2568]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2568) **Gestion des codes AVDTH 40 et 41 par le migrateur AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2569]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2569) **Gestion de la propriété de la balise (F_PROP_BALISE) en situation de migration AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
## Version [9.0.21](https://gitlab.com/ultreiaio/ird-observe/-/milestones/251)
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a00a082764e8ef538f7ece4ab…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/a00a082764e8ef538f7ece4ab…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] Update changelog for v.9.0.22 [skip CI]
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
3ed19491 by Tony Chemit at 2022-12-12T19:32:40+01:00
Update changelog for v.9.0.22 [skip CI]
- - - - -
1 changed file:
- CHANGELOG.md
Changes:
=====================================
CHANGELOG.md
=====================================
@@ -1,7 +1,38 @@
# ObServe changelog
* Author [Tony Chemit](mailto:dev@tchemit.fr)
- * Last generated at 2022-11-30 18:24.
+ * Last generated at 2022-12-12 19:31.
+
+## Version [9.1.0-RC-1](https://gitlab.com/ultreiaio/ird-observe/-/milestones/243)
+
+**Closed at 2022-11-25.**
+
+
+### Issues
+ * [[Type::Evolution 2218]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2218) **tms_version va-t-elle rester dans le schéma public ?** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2478]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2478) **Réusinage du plan de cuve** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+
+## Version [9.0.22](https://gitlab.com/ultreiaio/ird-observe/-/milestones/252)
+
+**Closed at 2022-12-12.**
+
+### Download
+* [Client (observe-9.0.22-client.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+* [Serveur (observe-9.0.22.war)](https://repo1.maven.org/maven2/fr/ird/observe/observe/…)
+* [Serveur (observe-9.0.22-server.zip)](https://repo1.maven.org/maven2/fr/ird/observe/o…)
+
+### Issues
+ * [[Type::Anomalie 2551]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2551) **Rapport LB - Vérification croisée des débarquements, colonnes cuves vides erronées** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2571]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2571) **Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ?** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Anomalie 2574]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2574) **Lors de la sauvegarde d'une activité, l'arbre est replié mais surtout on perd sur ces fils les statistiques** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Evolution 2543]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2543) **Migration IEO** (Thanks to Tony CHEMIT) (Reported by Tony CHEMIT)
+ * [[Type::Evolution 2550]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2550) **Lorsque que l'on utilise la fonction Précédent de l'assistants rapports, il est possible de lancer les rapports sur des marées non calculées** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2552]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2552) **Optimisation des rapports Captures de thons selon le type d'association et Rejets de thons selon le type d'association** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2553]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2553) **Rapport Observations - Dénombrement des captures par devenir, filtrés par groupe** (Thanks to Pascal Cauquil) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2554]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2554) **Besoin d'un rapport Observations fournissant les captures par devenir, en poids** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2555]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2555) **Besoin d'un rapport Observations fournissant les poids par raisons de rejets** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2568]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2568) **Gestion des codes AVDTH 40 et 41 par le migrateur AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
+ * [[Type::Evolution 2569]](https://gitlab.com/ultreiaio/ird-observe/-/issues/2569) **Gestion de la propriété de la balise (F_PROP_BALISE) en situation de migration AVDTH** (Thanks to Tony CHEMIT) (Reported by Pascal Cauquil)
## Version [9.0.21](https://gitlab.com/ultreiaio/ird-observe/-/milestones/251)
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/3ed1949184a952b7fea0f511c…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/3ed1949184a952b7fea0f511c…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] UI Navigation - Improve when open children nodes need to be rebuild
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
c9e2bc87 by Tony Chemit at 2022-12-12T19:29:30+01:00
UI Navigation - Improve when open children nodes need to be rebuild
- - - - -
5 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
Changes:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java
=====================================
@@ -24,11 +24,13 @@ package fr.ird.observe.client.datasource.editor.api.content.actions.save;
import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUINavigationNode;
import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUINavigationNode;
+import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode;
import fr.ird.observe.dto.BusinessDto;
import io.ultreia.java4all.i18n.I18n;
import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.LinkedList;
@@ -133,16 +135,20 @@ public class NodeChildrenUpdate {
this.nodeTypesToAdd = nodeTypesToAdd;
}
- public void update() {
+ public void update(NavigationTree tree) {
if (isEmpty()) {
// nothing to update
return;
}
if (!nodeTypesToAdd.isEmpty()) {
- //FIXME improve this
+ TreePath path = new TreePath(node.getPath());
+ boolean expanded = tree.isExpanded(path);
// if a node has to be added, let's rebuild the hole children
node.removeAllChildren();
node.getHandler().buildChildren();
+ if (expanded) {
+ tree.expandPath(path);
+ }
return;
}
// only remove
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
=====================================
@@ -49,7 +49,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
=====================================
@@ -50,7 +50,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
=====================================
@@ -60,7 +60,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
=====================================
@@ -86,7 +86,7 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/c9e2bc87a08b6d52d74341f49…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/c9e2bc87a08b6d52d74341f49…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] UI Navigation - Improve when open children nodes need to be rebuild
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
8847244e by Tony Chemit at 2022-12-12T19:29:38+01:00
UI Navigation - Improve when open children nodes need to be rebuild
- - - - -
5 changed files:
- client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
- client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
Changes:
=====================================
client/datasource/editor/api/src/main/java/fr/ird/observe/client/datasource/editor/api/content/actions/save/NodeChildrenUpdate.java
=====================================
@@ -24,11 +24,13 @@ package fr.ird.observe.client.datasource.editor.api.content.actions.save;
import fr.ird.observe.client.datasource.editor.api.content.data.edit.ContentEditUINavigationNode;
import fr.ird.observe.client.datasource.editor.api.content.data.table.ContentTableUINavigationNode;
+import fr.ird.observe.client.datasource.editor.api.navigation.NavigationTree;
import fr.ird.observe.client.datasource.editor.api.navigation.tree.NavigationNode;
import fr.ird.observe.dto.BusinessDto;
import io.ultreia.java4all.i18n.I18n;
import javax.swing.tree.TreeNode;
+import javax.swing.tree.TreePath;
import java.util.Enumeration;
import java.util.LinkedHashSet;
import java.util.LinkedList;
@@ -133,16 +135,20 @@ public class NodeChildrenUpdate {
this.nodeTypesToAdd = nodeTypesToAdd;
}
- public void update() {
+ public void update(NavigationTree tree) {
if (isEmpty()) {
// nothing to update
return;
}
if (!nodeTypesToAdd.isEmpty()) {
- //FIXME improve this
+ TreePath path = new TreePath(node.getPath());
+ boolean expanded = tree.isExpanded(path);
// if a node has to be added, let's rebuild the hole children
node.removeAllChildren();
node.getHandler().buildChildren();
+ if (expanded) {
+ tree.expandPath(path);
+ }
return;
}
// only remove
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/logbook/ActivityUIHandler.java
=====================================
@@ -49,7 +49,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ll/src/main/java/fr/ird/observe/client/datasource/editor/ll/data/observation/ActivityUIHandler.java
=====================================
@@ -50,7 +50,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/logbook/ActivityUIHandler.java
=====================================
@@ -60,7 +60,7 @@ class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
=====================================
client/datasource/editor/ps/src/main/java/fr/ird/observe/client/datasource/editor/ps/data/observation/ActivityUIHandler.java
=====================================
@@ -86,7 +86,7 @@ public class ActivityUIHandler extends GeneratedActivityUIHandler {
protected void afterNodeUpdated(DataSourceEditor dataSourceEditor, ActivityUI ui, NavigationTree tree, ContentOpenableUINavigationNode node, boolean notPersisted, ActivityDto bean) {
ActivityReference reference = (ActivityReference) node.getReference();
bean.setStatistics(reference.statistics());
- ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update();
+ ActivityUINavigationCapability.fillAfterBuilder(NodeChildrenUpdate.afterUpdate(node, bean)).update(tree);
super.afterNodeUpdated(dataSourceEditor, ui, tree, node, notPersisted, bean);
}
})
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8847244ebebf7132847e0e534…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/8847244ebebf7132847e0e534…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] 2 commits: Report - review ComputeDynamicHeader code (if incoming matrix is empty, was not working)
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
6c949030 by Tony Chemit at 2022-12-12T18:48:14+01:00
Report - review ComputeDynamicHeader code (if incoming matrix is empty, was not working)
- - - - -
3be5c67c by Tony Chemit at 2022-12-12T18:58:23+01:00
Lorsque que l'on utilise la fonction Précédent de l'assistants rapports, il est possible de lancer les rapports sur des marées non calculées - Closes #2550
- - - - -
9 changed files:
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
- 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/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.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
- toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
Changes:
=====================================
client/datasource/actions/src/main/i18n/getters/java.getter
=====================================
@@ -38,6 +38,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges
observe.ui.datasource.editor.actions.consolidate.message.operation.done
observe.ui.datasource.editor.actions.consolidate.message.save.changes
observe.ui.datasource.editor.actions.consolidate.message.trip
+observe.ui.datasource.editor.actions.consolidate.skip.trip
observe.ui.datasource.editor.actions.consolidate.start.trip
observe.ui.datasource.editor.actions.consolidate.title
observe.ui.datasource.editor.actions.consolidate.title.tip
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
=====================================
@@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.actions.config;
* #L%
*/
+import fr.ird.observe.client.datasource.actions.AdminStep;
import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
import fr.ird.observe.client.datasource.actions.AdminUIModel;
import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI;
@@ -33,6 +34,7 @@ import fr.ird.observe.client.util.UIHelper;
import fr.ird.observe.navigation.tree.selection.SelectionTree;
import org.nuiton.jaxx.runtime.spi.UIHandler;
import org.nuiton.jaxx.runtime.swing.SwingUtil;
+import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
import javax.swing.SwingUtilities;
import java.awt.GridBagConstraints;
@@ -104,4 +106,16 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme
ui.getSUCCESSED_panel().removeAll();
ui.getSUCCESSED_panel().add(SwingUtil.boxComponentWithJxLayer(ui.getSelectTreePane()), new GridBagConstraints(0, 0, 1, 1, 1.0, 1, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
}
+
+ @Override
+ protected void onComingFromNextStep(AdminStep oldStep) {
+ AdminUIModel model = ui.getModel();
+ if (model.containsOperation(AdminStep.CONSOLIDATE) && !model.containsOperation(AdminStep.EXPORT_DATA)) {
+ if (model.getStepState(AdminStep.CONSOLIDATE) == WizardState.SUCCESSED) {
+ // set back to pending consolidate step
+ model.setStepState(AdminStep.CONSOLIDATE, WizardState.PENDING);
+ }
+ }
+ super.onComingFromNextStep(oldStep);
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
=====================================
@@ -30,6 +30,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
+import java.util.Set;
+import java.util.TreeSet;
+
/**
* Modele pour preparer une validation de donnees d'une base.
*
@@ -43,9 +46,14 @@ public class ConsolidateModel extends AdminActionModel {
* Data source to use for operation.
*/
private ObserveSwingDataSource source;
+ /**
+ * To track trip that has already been consolidated (they won't be again processed).
+ */
+ private final Set<String> alreadyDoneTripIds;
public ConsolidateModel() {
super(AdminStep.CONSOLIDATE);
+ this.alreadyDoneTripIds = new TreeSet<>();
}
public ObserveSwingDataSource getSource() {
@@ -80,4 +88,11 @@ public class ConsolidateModel extends AdminActionModel {
return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED;
}
+ public boolean checkIfTripAlreadyProcessed(String tripId) {
+ return alreadyDoneTripIds.contains(tripId);
+ }
+
+ public void setTripProcessed(String tripId) {
+ alreadyDoneTripIds.add(tripId);
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -96,10 +96,21 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
for (String tripId : tripIds) {
progressModel.increments();
+
+ if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
+ // this one has already been processed
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", ++index, nbTrips, tripId));
+ progressModel.increments();
+ continue;
+ }
sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", ++index, nbTrips, tripId));
+ // mark trip processed
+ stepModel.setTripProcessed(tripId);
+
if (TripAware.isLonglineId(tripId)) {
// can't consolidate LL trips...
+ progressModel.increments();
continue;
}
TripConsolidateRequest request = new TripConsolidateRequest();
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
=====================================
@@ -191,7 +191,7 @@ public class ReportModel extends AdminActionModel {
// l'onglet de sélection des données soit ok
ReportModel reportModel = uiModel.getReportModel();
List<Report> reports = reportModel.getReports();
- return uiModel.validate(AdminStep.SELECT_DATA) && reports != null && !reports.isEmpty();
+ return uiModel.validate(AdminStep.CONSOLIDATE) && reports != null && !reports.isEmpty();
}
@Override
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No data modif
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Consolidate operation done in %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Save modified %1$s trip(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Data consolidate for trip [%s] %s
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Start consolidate data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.title=Consolidate data
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidate observed data
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No modificaci
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Operación de calculo de datos terminada en %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Guardar las modificaciones de la(s) %1$s marea(s) modificada(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Datos calculados para la marea [%s] %s
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s) \#TODO
observe.ui.datasource.editor.actions.consolidate.title=Consolidar los datos
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidar los datos
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=Aucune donné
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Opération de calcul des données terminée à %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Données calculées pour la marée [%s] %s.
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Marée déjà consolidée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.title=Consolider les données observateur
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolider les données observateur
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
=====================================
@@ -30,6 +30,9 @@ import fr.ird.observe.dto.report.ReportOperationConsumer;
import fr.ird.observe.dto.report.ReportRequestExecutor;
import fr.ird.observe.dto.report.ReportVariable;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Set;
/**
@@ -62,25 +65,26 @@ public class ComputeDynamicHeader implements ReportOperationConsumer {
String repeatVariableName = split[1].trim();
ReportVariable<Object> repeatVariable1 = report.getRepeatVariable(repeatVariableName);
Set<?> repeatVariableValues = repeatVariable1.getValues();
- int columnIndex = 0;
- DataMatrix tmpMatrix = createTmpMatrix(0, 0, incoming.getWidth(), 1);
+ List<String> columnNames = new LinkedList<>(Arrays.asList(fixedColumnNames));
boolean useNullRepeatVariableValue = false;
- for (String beginHeader : fixedColumnNames) {
- tmpMatrix.setValue(columnIndex++, 0, beginHeader);
- }
for (Object repeatVariable : repeatVariableValues) {
if (repeatVariable == null) {
useNullRepeatVariableValue = true;
} else {
if (repeatVariable instanceof WithI18n) {
- tmpMatrix.setValue(columnIndex++, 0, ((WithI18n) repeatVariable).getLabel2());
+ columnNames.add(((WithI18n) repeatVariable).getLabel2());
} else {
- tmpMatrix.setValue(columnIndex++, 0, repeatVariable.toString());
+ columnNames.add(repeatVariable.toString());
}
}
}
if (useNullRepeatVariableValue || repeatVariable1.isAddNullValue()) {
- tmpMatrix.setValue(columnIndex, 0, "Aucun");
+ columnNames.add("Aucun");
+ }
+ int columnIndex = 0;
+ DataMatrix tmpMatrix = createTmpMatrix(0, 0, columnNames.size(), 1);
+ for (String columnName : columnNames) {
+ tmpMatrix.setValue(columnIndex++, 0, columnName);
}
incoming.setY(1);
return DataMatrix.merge(incoming, tmpMatrix);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d177f9ff66ae7d98f4d098e6…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/d177f9ff66ae7d98f4d098e6…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop] 2 commits: Report - review ComputeDynamicHeader code (if incoming matrix is empty, was not working)
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop at ultreiaio / ird-observe
Commits:
c61b184c by Tony Chemit at 2022-12-12T18:59:48+01:00
Report - review ComputeDynamicHeader code (if incoming matrix is empty, was not working)
- - - - -
232a7207 by Tony Chemit at 2022-12-12T18:59:53+01:00
Lorsque que l'on utilise la fonction Précédent de l'assistants rapports, il est possible de lancer les rapports sur des marées non calculées - Closes #2550
- - - - -
9 changed files:
- client/datasource/actions/src/main/i18n/getters/java.getter
- client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
- 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/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.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
- toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
Changes:
=====================================
client/datasource/actions/src/main/i18n/getters/java.getter
=====================================
@@ -38,6 +38,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges
observe.ui.datasource.editor.actions.consolidate.message.operation.done
observe.ui.datasource.editor.actions.consolidate.message.save.changes
observe.ui.datasource.editor.actions.consolidate.message.trip
+observe.ui.datasource.editor.actions.consolidate.skip.trip
observe.ui.datasource.editor.actions.consolidate.start.trip
observe.ui.datasource.editor.actions.consolidate.title
observe.ui.datasource.editor.actions.consolidate.title.tip
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/config/SelectDataUIHandler.java
=====================================
@@ -22,6 +22,7 @@ package fr.ird.observe.client.datasource.actions.config;
* #L%
*/
+import fr.ird.observe.client.datasource.actions.AdminStep;
import fr.ird.observe.client.datasource.actions.AdminTabUIHandler;
import fr.ird.observe.client.datasource.actions.AdminUIModel;
import fr.ird.observe.client.datasource.editor.api.config.TreeConfigUI;
@@ -33,6 +34,7 @@ import fr.ird.observe.client.util.UIHelper;
import fr.ird.observe.navigation.tree.selection.SelectionTree;
import org.nuiton.jaxx.runtime.spi.UIHandler;
import org.nuiton.jaxx.runtime.swing.SwingUtil;
+import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
import javax.swing.SwingUtilities;
import java.awt.GridBagConstraints;
@@ -104,4 +106,16 @@ public class SelectDataUIHandler extends AdminTabUIHandler<SelectDataUI> impleme
ui.getSUCCESSED_panel().removeAll();
ui.getSUCCESSED_panel().add(SwingUtil.boxComponentWithJxLayer(ui.getSelectTreePane()), new GridBagConstraints(0, 0, 1, 1, 1.0, 1, 10, 1, new Insets(3, 3, 3, 3), 0, 0));
}
+
+ @Override
+ protected void onComingFromNextStep(AdminStep oldStep) {
+ AdminUIModel model = ui.getModel();
+ if (model.containsOperation(AdminStep.CONSOLIDATE) && !model.containsOperation(AdminStep.EXPORT_DATA)) {
+ if (model.getStepState(AdminStep.CONSOLIDATE) == WizardState.SUCCESSED) {
+ // set back to pending consolidate step
+ model.setStepState(AdminStep.CONSOLIDATE, WizardState.PENDING);
+ }
+ }
+ super.onComingFromNextStep(oldStep);
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/ConsolidateModel.java
=====================================
@@ -30,6 +30,9 @@ import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.nuiton.jaxx.runtime.swing.wizard.ext.WizardState;
+import java.util.Set;
+import java.util.TreeSet;
+
/**
* Modele pour preparer une validation de donnees d'une base.
*
@@ -43,9 +46,14 @@ public class ConsolidateModel extends AdminActionModel {
* Data source to use for operation.
*/
private ObserveSwingDataSource source;
+ /**
+ * To track trip that has already been consolidated (they won't be again processed).
+ */
+ private final Set<String> alreadyDoneTripIds;
public ConsolidateModel() {
super(AdminStep.CONSOLIDATE);
+ this.alreadyDoneTripIds = new TreeSet<>();
}
public ObserveSwingDataSource getSource() {
@@ -80,4 +88,11 @@ public class ConsolidateModel extends AdminActionModel {
return uiModel.validate(AdminStep.SELECT_DATA) && uiModel.getStepState(step) == WizardState.SUCCESSED;
}
+ public boolean checkIfTripAlreadyProcessed(String tripId) {
+ return alreadyDoneTripIds.contains(tripId);
+ }
+
+ public void setTripProcessed(String tripId) {
+ alreadyDoneTripIds.add(tripId);
+ }
}
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/consolidate/actions/Start.java
=====================================
@@ -96,10 +96,21 @@ public class Start extends AdminTabUIActionSupport<ConsolidateUI> {
for (String tripId : tripIds) {
progressModel.increments();
+
+ if (stepModel.checkIfTripAlreadyProcessed(tripId)) {
+ // this one has already been processed
+ sendMessage(t("observe.ui.datasource.editor.actions.consolidate.skip.trip", ++index, nbTrips, tripId));
+ progressModel.increments();
+ continue;
+ }
sendMessage(t("observe.ui.datasource.editor.actions.consolidate.start.trip", ++index, nbTrips, tripId));
+ // mark trip processed
+ stepModel.setTripProcessed(tripId);
+
if (TripAware.isLonglineId(tripId)) {
// can't consolidate LL trips...
+ progressModel.increments();
continue;
}
TripConsolidateRequest request = new TripConsolidateRequest();
=====================================
client/datasource/actions/src/main/java/fr/ird/observe/client/datasource/actions/report/ReportModel.java
=====================================
@@ -191,7 +191,7 @@ public class ReportModel extends AdminActionModel {
// l'onglet de sélection des données soit ok
ReportModel reportModel = uiModel.getReportModel();
List<Report> reports = reportModel.getReports();
- return uiModel.validate(AdminStep.SELECT_DATA) && reports != null && !reports.isEmpty();
+ return uiModel.validate(AdminStep.CONSOLIDATE) && reports != null && !reports.isEmpty();
}
@Override
=====================================
client/runner/src/main/i18n/translations/client-runner_en_GB.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No data modif
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Consolidate operation done in %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Save modified %1$s trip(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Data consolidate for trip [%s] %s
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Start consolidate data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.title=Consolidate data
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidate observed data
=====================================
client/runner/src/main/i18n/translations/client-runner_es_ES.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=No modificaci
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Operación de calculo de datos terminada en %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Guardar las modificaciones de la(s) %1$s marea(s) modificada(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Datos calculados para la marea [%s] %s
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Skip already consolidated data on trip %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s) \#TODO
observe.ui.datasource.editor.actions.consolidate.title=Consolidar los datos
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolidar los datos
=====================================
client/runner/src/main/i18n/translations/client-runner_fr_FR.properties
=====================================
@@ -477,6 +477,7 @@ observe.ui.datasource.editor.actions.consolidate.message.noChanges=Aucune donné
observe.ui.datasource.editor.actions.consolidate.message.operation.done=Opération de calcul des données terminée à %1$s.
observe.ui.datasource.editor.actions.consolidate.message.save.changes=Sauvegarde des modifications sur la(es) %1$s marée(s) modifiée(s).
observe.ui.datasource.editor.actions.consolidate.message.trip=Données calculées pour la marée [%s] %s.
+observe.ui.datasource.editor.actions.consolidate.skip.trip=Marée déjà consolidée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.start.trip=Démarrage de la consolidation pour la marée %s / %s (%s)
observe.ui.datasource.editor.actions.consolidate.title=Consolider les données observateur
observe.ui.datasource.editor.actions.consolidate.title.tip=Consolider les données observateur
=====================================
toolkit/api/src/main/java/fr/ird/observe/dto/report/operations/ComputeDynamicHeader.java
=====================================
@@ -30,6 +30,9 @@ import fr.ird.observe.dto.report.ReportOperationConsumer;
import fr.ird.observe.dto.report.ReportRequestExecutor;
import fr.ird.observe.dto.report.ReportVariable;
+import java.util.Arrays;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Set;
/**
@@ -62,25 +65,26 @@ public class ComputeDynamicHeader implements ReportOperationConsumer {
String repeatVariableName = split[1].trim();
ReportVariable<Object> repeatVariable1 = report.getRepeatVariable(repeatVariableName);
Set<?> repeatVariableValues = repeatVariable1.getValues();
- int columnIndex = 0;
- DataMatrix tmpMatrix = createTmpMatrix(0, 0, incoming.getWidth(), 1);
+ List<String> columnNames = new LinkedList<>(Arrays.asList(fixedColumnNames));
boolean useNullRepeatVariableValue = false;
- for (String beginHeader : fixedColumnNames) {
- tmpMatrix.setValue(columnIndex++, 0, beginHeader);
- }
for (Object repeatVariable : repeatVariableValues) {
if (repeatVariable == null) {
useNullRepeatVariableValue = true;
} else {
if (repeatVariable instanceof WithI18n) {
- tmpMatrix.setValue(columnIndex++, 0, ((WithI18n) repeatVariable).getLabel2());
+ columnNames.add(((WithI18n) repeatVariable).getLabel2());
} else {
- tmpMatrix.setValue(columnIndex++, 0, repeatVariable.toString());
+ columnNames.add(repeatVariable.toString());
}
}
}
if (useNullRepeatVariableValue || repeatVariable1.isAddNullValue()) {
- tmpMatrix.setValue(columnIndex, 0, "Aucun");
+ columnNames.add("Aucun");
+ }
+ int columnIndex = 0;
+ DataMatrix tmpMatrix = createTmpMatrix(0, 0, columnNames.size(), 1);
+ for (String columnName : columnNames) {
+ tmpMatrix.setValue(columnIndex++, 0, columnName);
}
incoming.setY(1);
return DataMatrix.merge(incoming, tmpMatrix);
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/74681acf4c75e2bbec212e57…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/74681acf4c75e2bbec212e57…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue_avdth_dcp] 4 commits: Une BD sql.gz qui génère une corruption de données systématique - Notre...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch feature/issue_avdth_dcp at ultreiaio / ird-observe
Commits:
296bd417 by Tony Chemit at 2022-12-12T14:11:35+01:00
Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ? - Closes #2571
- - - - -
5a4d1662 by Tony Chemit at 2022-12-12T14:57:16+01:00
Report - correction de certain totaux (exprimé en int au lieu d'en float pour les poids) + revue de certains libellés
- - - - -
d177f9ff by Tony Chemit at 2022-12-12T15:05:07+01:00
Report - suppression des reports psObservationTargetCatchByAssociation et psObservationTargetDiscardedByAssociation
- - - - -
b21143bc by Tony Chemit at 2022-12-12T15:06:18+01:00
Do be continued...
- - - - -
15 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java
- core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties
- src/site/markdown/avdth/logbook.md
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java
- toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java
Changes:
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -827,274 +827,6 @@ report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.re
Group by e
report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.5.repeat=species|column
################################################################################
-## Captures thons selon le type d'association
-################################################################################
-report.psObservationTargetCatchByAssociation.modelType=PS
-report.psObservationTargetCatchByAssociation.name=Observations - Captures de thons selon le type d’association (en t)
-report.psObservationTargetCatchByAssociation.description=Afficher la répartitions des captures de thons selon le type d'association
-report.psObservationTargetCatchByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetCatchByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetCatchByAssociation.operations.1=SumRow
-report.psObservationTargetCatchByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetCatchByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetCatchByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetCatchByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetCatchByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
-## Rejets thons selon le type d'association
-################################################################################
-report.psObservationTargetDiscardedByAssociation.modelType=PS
-report.psObservationTargetDiscardedByAssociation.name=Observations - Rejets de thons selon le type d’association (en t)
-report.psObservationTargetDiscardedByAssociation.description=Afficher la répartitions des rejets de thons selon le type d'association
-report.psObservationTargetDiscardedByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetDiscardedByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetDiscardedByAssociation.operations.1=SumRow
-report.psObservationTargetDiscardedByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetDiscardedByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetDiscardedByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetDiscardedByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetDiscardedByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
## Captures observées
################################################################################
report.psObservationCatch.modelType=PS
@@ -1151,7 +883,7 @@ report.psObservationCatch.request.3.repeat=speciesId|column
################################################################################
report.psObservationCatchTotalCountByGroupPerSpeciesFate.modelType=PS
report.psObservationCatchTotalCountByGroupPerSpeciesFate.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+report.psObservationCatchTotalCountByGroupPerSpeciesFate.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
report.psObservationCatchTotalCountByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1214,8 +946,8 @@ report.psObservationCatchTotalCountByGroupPerSpeciesFate.operations.4=SumIntColu
## Poids des captures par groupe d'espèces
################################################################################
report.psObservationCatchWeightByGroupPerSpeciesFate.modelType=PS
-report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+report.psObservationCatchWeightByGroupPerSpeciesFate.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+report.psObservationCatchWeightByGroupPerSpeciesFate.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerSpeciesFate.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
@@ -1272,13 +1004,13 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerSpeciesFate.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|speciesFate
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerSpeciesFate.operations.4=SumColumn:1|1
################################################################################
## Poids des captures par groupe d'espèces, type de banc et et raison de rejet
################################################################################
report.psObservationCatchWeightByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+report.psObservationCatchWeightByGroupPerReasonForDiscard.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
report.psObservationCatchWeightByGroupPerReasonForDiscard.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
report.psObservationCatchWeightByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
@@ -1336,14 +1068,14 @@ Where m.id In :tripId \
Group by s, sf \
Order By s.homeId
report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.2=ComputeDynamicHeader:Espèce,Total BL,Total BO|reasonForDiscard
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumIntRow:1|3
-report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumIntColumn:1|1
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.3=SumRow:1|3
+report.psObservationCatchWeightByGroupPerReasonForDiscard.operations.4=SumColumn:1|1
################################################################################
## Dénombrement des rejets par groupe d'espèces, type de banc et raison de rejet
################################################################################
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.modelType=PS
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+report.psObservationCatchTotalCountByGroupPerReasonForDiscard.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
report.psObservationCatchTotalCountByGroupPerReasonForDiscard.variable.speciesGroup=fr.ird.observe.dto.referential.common.SpeciesGroupDto|\
Select distinct sg \
From TripImpl t \
=====================================
core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/ImportReferentialContext.java
=====================================
@@ -58,7 +58,6 @@ import fr.ird.observe.entities.referential.ps.logbook.SetSuccessStatus;
import fr.ird.observe.entities.referential.ps.logbook.WellContentStatus;
import fr.ird.observe.entities.referential.ps.logbook.WellSamplingConformity;
import fr.ird.observe.entities.referential.ps.logbook.WellSamplingStatus;
-import fr.ird.observe.persistence.avdth.data.logbook.FloatingObjectReader;
import fr.ird.observe.persistence.avdth.data.logbook.WellPlanReader;
import fr.ird.observe.persistence.avdth.referential.AvdthReferentialImportResult;
import fr.ird.observe.persistence.avdth.referential.SpeciesCache;
@@ -80,10 +79,8 @@ import java.util.function.Consumer;
* @author Tony Chemit - dev(a)tchemit.fr
* @since 9.0.0
*/
-@SuppressWarnings("SpellCheckingInspection")
public class ImportReferentialContext {
-
private Map<String, WeightCategory> landingCategories;
private Map<String, Destination> destinations;
private Map<String, WeightCategory> wellCategories;
@@ -127,6 +124,7 @@ public class ImportReferentialContext {
private ObjectMaterial objectMaterialDFAD;
private ObjectMaterial objectMaterialALOG;
private ObjectMaterial objectMaterialAFAD;
+ private ObjectMaterial objectMaterialBiodegradable;
private ObjectMaterial objectMaterialAlone;
private ObjectMaterial objectMaterialLOG;
private ObjectMaterial objectMaterialFALOG;
@@ -228,6 +226,7 @@ public class ImportReferentialContext {
objectMaterialHALOG = objectMaterial.get("fr.ird.referential.ps.common.ObjectMaterial#0#0.67");
objectMaterialVNLOG = objectMaterial.get("fr.ird.referential.ps.common.ObjectMaterial#0#0.52");
objectMaterialAlone = objectMaterial.get("fr.ird.referential.ps.common.ObjectMaterial#1561561977652#0.5876332198776647");
+ objectMaterialBiodegradable = objectMaterial.get("fr.ird.referential.ps.common.ObjectMaterial#0#0.69");
// catch
catchCategories = new TreeMap<>();
@@ -333,6 +332,26 @@ public class ImportReferentialContext {
return objectMaterialAFAD;
}
+ public ObjectMaterial getObjectMaterialLOG() {
+ return objectMaterialLOG;
+ }
+
+ public ObjectMaterial getObjectMaterialFALOG() {
+ return objectMaterialFALOG;
+ }
+
+ public ObjectMaterial getObjectMaterialHALOG() {
+ return objectMaterialHALOG;
+ }
+
+ public ObjectMaterial getObjectMaterialVNLOG() {
+ return objectMaterialVNLOG;
+ }
+
+ public ObjectMaterial getObjectMaterialBiodegradable() {
+ return objectMaterialBiodegradable;
+ }
+
public ObjectMaterial getObjectMaterialAlone() {
return objectMaterialAlone;
}
@@ -529,79 +548,29 @@ public class ImportReferentialContext {
entity.addObservedSystem(getObservedSystem("102"));
}
- public ObjectOperation getObjectOperationByVesselActivityCode(String vesselActivityCode) {
- String objectOperationCode = FloatingObjectReader.DCP_OBJECT_OPERATION_CODE_MAPPING.get(vesselActivityCode);
- if (objectOperationCode == null) {
- return null;
- }
+ public ObjectOperation getObjectOperation(String objectOperationCode) {
return objectOperation.get(objectOperationCode);
}
- public TransmittingBuoyOperation getTransmittingBuoyOperationByVesselActivityCode(String vesselActivityCode) {
- String transmittingBuoyTypeCode = FloatingObjectReader.TRANSMITTING_BUOY_OPERATION_CODE_MAPPING.get(vesselActivityCode);
+ public TransmittingBuoyOperation getTransmittingBuoyOperation(String transmittingBuoyTypeCode) {
if (transmittingBuoyTypeCode == null) {
return null;
}
return transmittingBuoyOperation.get(transmittingBuoyTypeCode);
}
- public TransmittingBuoyType getTransmittingBuoyTypeByBuoyTypeCode(String buoyTypeCode) {
- String transmittingBuoyTypeCode = FloatingObjectReader.TRANSMITTING_BUOY_TYPE_CODE_MAPPING.get(buoyTypeCode);
- if (transmittingBuoyTypeCode == null) {
- transmittingBuoyTypeCode = "999";
- }
- TransmittingBuoyType transmittingBuoyType = this.transmittingBuoyType.get(transmittingBuoyTypeCode);
- return Objects.requireNonNull(transmittingBuoyType, String.format("Can't find transmittingBuoyType with code: %s", buoyTypeCode));
+ public TransmittingBuoyType getTransmittingBuoyType(String transmittingBuoyTypeCode) {
+ TransmittingBuoyType result = transmittingBuoyType.get(transmittingBuoyTypeCode);
+ return Objects.requireNonNull(result, String.format("Can't find result with code: %s", transmittingBuoyTypeCode));
}
- public TransmittingBuoyOwnership getTransmittingBuoyOwnership(String buoyOwnershipCode) {
- if (buoyOwnershipCode == null) {
- return null;
- }
- String transmittingBuoyOwnershipCode = FloatingObjectReader.TRANSMITTING_BUOY_OWNERSHIP_CODE_MAPPING.get(buoyOwnershipCode);
+ public TransmittingBuoyOwnership getTransmittingBuoyOwnership(String transmittingBuoyOwnershipCode) {
if (transmittingBuoyOwnershipCode == null) {
return null;
}
return transmittingBuoyOwnership.get(transmittingBuoyOwnershipCode);
}
- public ObservedSystem getObservedSystem(String objectTypeCode, String buoyTypeCode) {
- if (objectTypeCode.equals("999")) {
- if (buoyTypeCode.equals("999")) {
- return getObservedSystem0();
- }
- return getObservedSystem20();
- }
- String observedSystemCode = FloatingObjectReader.OBSERVED_SYSTEM_CODE_MAPPING.get(objectTypeCode);
- return getObservedSystem(observedSystemCode, false);
- }
-
- /**
- * To get objectMaterial id associated by a DCP from avdth ACTIVITE.C_TYP_OBJET code.
- *
- * @param objectTypeCode ACTIVITE.C_TYP_OBJET
- * @return material or null
- */
- public ObjectMaterial getObjectMaterialByObjectTypeCode(String objectTypeCode) {
- switch (objectTypeCode) {
- case "1":
- return objectMaterialAFAD;
- case "2":
- return objectMaterialDFAD;
- case "3":
- return objectMaterialLOG;
- case "9":
- return objectMaterialFOB;
- case "10":
- return objectMaterialFALOG;
- case "11":
- return objectMaterialHALOG;
- case "13":
- return objectMaterialVNLOG;
- }
- return null;
- }
-
public WeightCategory getWellWeightCategory(String weightCategoryCode) {
String categoryCode = "W-" + weightCategoryCode;
WeightCategory weightCategory = wellCategories.get(categoryCode);
@@ -611,4 +580,5 @@ public class ImportReferentialContext {
public VesselActivity getVesselActivity6() {
return vesselActivity6;
}
+
}
=====================================
core/persistence/resources/src/main/java/fr/ird/observe/persistence/avdth/data/logbook/FloatingObjectReader.java
=====================================
@@ -23,6 +23,7 @@ package fr.ird.observe.persistence.avdth.data.logbook;
*/
import com.google.common.collect.ImmutableMap;
+import fr.ird.observe.entities.data.ps.logbook.Activity;
import fr.ird.observe.entities.data.ps.logbook.FloatingObject;
import fr.ird.observe.entities.data.ps.logbook.FloatingObjectPart;
import fr.ird.observe.entities.data.ps.logbook.TransmittingBuoy;
@@ -232,54 +233,79 @@ public class FloatingObjectReader extends DataReader<FloatingObject> {
@Override
public FloatingObject read(ImportDataContext dataContext, ResultSet resultSet) throws SQLException {
- String vesselActivityCode = resultSet.getString(13);
- VesselActivity vesselActivity = dataContext.getVesselActivity(vesselActivityCode);
+ // Get the current activity where to add the optional floating object
+ Activity activity = dataContext.getActivity();
+
+ // Get his vessel activity
+ VesselActivity vesselActivity = activity.getVesselActivity();
+
+ // Avdth observed system codes associated to the current activity (need them to compute fill floating object)
Set<String> observedSystemCodes = dataContext.getObservedSystemCodes();
- if (!Objects.equals(vesselActivity.getCode(), "13")) {
- boolean noDcpInObservedSystems = observedSystemCodes.stream().noneMatch(OBSERVED_SYTEM_CODES_WITH_DCP::contains);
- if (noDcpInObservedSystems) {
- reset(dataContext);
- return null;
- }
- }
- FloatingObject entity = newEntity(FloatingObject.SPI);
+ // We need to get the original vessel activity code from AVDTH (to compute some mapping)
+ String vesselActivityCode = resultSet.getString(13);
- ObjectOperation objectOperation = dataContext.getObjectOperationByVesselActivityCode(vesselActivityCode);
- entity.setObjectOperation(Objects.requireNonNull(objectOperation, String.format("Can't find objectOperation with code: %s", vesselActivityCode)));
- boolean addCoordinate = "11".equals(objectOperation.getCode());
- boolean whenArriving = WHEN_ARRIVING_CODE.contains(vesselActivityCode);
- boolean whenLeaving = WHEN_LEAVING_CODE.contains(vesselActivityCode);
+ // Is the floating object can be created by the observed systems?
+ boolean floatingObjectCreatedByObservedSystem = observedSystemCodes.stream().anyMatch(OBSERVED_SYTEM_CODES_WITH_DCP::contains);
+
+ // Is the current vessel activity accept to create Floating object?
+ boolean vesselActivityAllowFad = vesselActivity.isAllowFad();
+
+ // Get object type code
String objectTypeCode = resultSet.getString(28);
if (objectTypeCode == null) {
//FIXME should fail ?
objectTypeCode = "999";
}
- //FIXME 29 - F_DCP_ECO
-// int dcpEcoCode = resultSet.getInt(29);
+
+ // Is floating object exists in avdth?
+ boolean floatingObjectExistsInAvdth = !objectTypeCode.equals("999");
+ //FIXME If objectTypeCode = 999, this means we can not create Floating object?
+
+ if (!vesselActivityAllowFad && !floatingObjectCreatedByObservedSystem) {
+ // do not create the floating object
+ reset(dataContext);
+ return null;
+ }
+
+ FloatingObject entity = newEntity(FloatingObject.SPI);
+
+ ObjectOperation objectOperation = getObjectOperationByVesselActivityCode(dataContext, vesselActivityCode);
+ entity.setObjectOperation(Objects.requireNonNull(objectOperation, String.format("Can't find objectOperation with ACTIVITE.C_OPERA: %s", vesselActivityCode)));
+ boolean addCoordinate = "11".equals(objectOperation.getCode());
+ boolean whenArriving = WHEN_ARRIVING_CODE.contains(vesselActivityCode);
+ boolean whenLeaving = WHEN_LEAVING_CODE.contains(vesselActivityCode);
+
+ Object dcpEcoCode = resultSet.getObject(29);
String buoyOwnershipCode = resultSet.getString(30);
String buoyTypeCode = resultSet.getString(31);
if (buoyTypeCode == null) {
//FIXME should fail?
buoyTypeCode = "999";
}
+ // avdth data has a buoy
+ boolean willCreateBuoy = !"999".equals(buoyTypeCode);
+
String buoyId = resultSet.getString(32);
String dcpWeight = resultSet.getString(33);
if (dcpWeight != null) {
//FIXME Check if ok
entity.setComment(String.format("ACTIVITE.POIDS_ESTIM_DCP value from avdth: %s", dcpWeight));
}
- ObservedSystem observedSystem = dataContext.getObservedSystem(objectTypeCode, buoyTypeCode);
+ ObservedSystem observedSystem = getObservedSystem(dataContext, objectTypeCode, buoyTypeCode);
if (observedSystem != null) {
- dataContext.getActivity().addObservedSystem(observedSystem);
+ activity.addObservedSystem(observedSystem);
}
- // avdth data has a buoy
- boolean willCreateBuoy = !"999".equals(buoyTypeCode);
+
// to add default material if there is a declared buoy and no object material created by ObservedSystem
boolean addDefaultObjectMaterialOnUnknownObjectType = true;
// should create a buoy from ObservedSystem
boolean addBuoyFromObservedSystem = false;
Set<String> objectMaterialUsed = new TreeSet<>();
+ if (!floatingObjectCreatedByObservedSystem && dcpEcoCode != null && Objects.equals(2, dcpEcoCode)) {
+ // add material 4-1 (Biodegradable materials)
+ addObjectMaterial(objectMaterialUsed, dataContext.getObjectMaterialBiodegradable(), whenArriving, whenLeaving, entity);
+ }
if (observedSystemCodes.contains("20")) {
// add ObjectMaterial FOB
addObjectMaterial(objectMaterialUsed, dataContext.getObjectMaterialFOB(), whenArriving, whenLeaving, entity);
@@ -316,25 +342,25 @@ public class FloatingObjectReader extends DataReader<FloatingObject> {
}
} else {
// simple mapping
- ObjectMaterial objectMaterial1 = dataContext.getObjectMaterialByObjectTypeCode(objectTypeCode);
+ ObjectMaterial objectMaterial1 = getObjectMaterialByObjectTypeCode(dataContext, objectTypeCode);
if (objectMaterial1 != null) {
addObjectMaterial(objectMaterialUsed, objectMaterial1, whenArriving, whenLeaving, entity);
}
}
if (willCreateBuoy) {
// only add buoy if buoy type known
- TransmittingBuoyType transmittingBuoyType = dataContext.getTransmittingBuoyTypeByBuoyTypeCode(buoyTypeCode);
- TransmittingBuoyOperation transmittingBuoyOperation = dataContext.getTransmittingBuoyOperationByVesselActivityCode(vesselActivityCode);
+ TransmittingBuoyType transmittingBuoyType = getTransmittingBuoyTypeByBuoyTypeCode(dataContext, buoyTypeCode);
+ TransmittingBuoyOperation transmittingBuoyOperation = getTransmittingBuoyOperationByVesselActivityCode(dataContext, vesselActivityCode);
if (transmittingBuoyOperation != null) {
TransmittingBuoy transmittingBuoy = newEntity(TransmittingBuoy.SPI, transmittingBuoyCount);
transmittingBuoy.setTransmittingBuoyOperation(transmittingBuoyOperation);
transmittingBuoy.setTransmittingBuoyType(transmittingBuoyType);
transmittingBuoy.setCode(buoyId);
if (addCoordinate) {
- transmittingBuoy.setLatitude(dataContext.getActivity().getLatitude());
- transmittingBuoy.setLongitude(dataContext.getActivity().getLongitude());
+ transmittingBuoy.setLatitude(activity.getLatitude());
+ transmittingBuoy.setLongitude(activity.getLongitude());
}
- TransmittingBuoyOwnership transmittingBuoyOwnership = dataContext.getTransmittingBuoyOwnership(buoyOwnershipCode);
+ TransmittingBuoyOwnership transmittingBuoyOwnership = getTransmittingBuoyOwnership(dataContext, buoyOwnershipCode);
transmittingBuoy.setTransmittingBuoyOwnership(transmittingBuoyOwnership);
entity.addTransmittingBuoy(transmittingBuoy);
}
@@ -380,4 +406,74 @@ public class FloatingObjectReader extends DataReader<FloatingObject> {
return floatingObjectPartCount.intValue();
}
+ private ObjectOperation getObjectOperationByVesselActivityCode(ImportDataContext dataContext, String vesselActivityCode) {
+ String objectOperationCode = DCP_OBJECT_OPERATION_CODE_MAPPING.get(vesselActivityCode);
+ return dataContext.getObjectOperation(Objects.requireNonNull(objectOperationCode, String.format("Can't find objectOperation with ACTIVITE.C_OPERA: %s", vesselActivityCode)));
+ }
+
+ private ObservedSystem getObservedSystem(ImportDataContext dataContext,String objectTypeCode, String buoyTypeCode) {
+ if (objectTypeCode.equals("999")) {
+ if (buoyTypeCode.equals("999")) {
+ return dataContext.getObservedSystem0();
+ }
+ return dataContext.getObservedSystem20();
+ }
+ String observedSystemCode = OBSERVED_SYSTEM_CODE_MAPPING.get(objectTypeCode);
+ return dataContext.getObservedSystem(observedSystemCode, false);
+ }
+
+ private TransmittingBuoyOwnership getTransmittingBuoyOwnership(ImportDataContext dataContext,String buoyOwnershipCode) {
+ if (buoyOwnershipCode == null) {
+ return null;
+ }
+ String transmittingBuoyOwnershipCode = TRANSMITTING_BUOY_OWNERSHIP_CODE_MAPPING.get(buoyOwnershipCode);
+ if (transmittingBuoyOwnershipCode == null) {
+ return null;
+ }
+ return dataContext.getTransmittingBuoyOwnership(transmittingBuoyOwnershipCode);
+ }
+
+ private TransmittingBuoyOperation getTransmittingBuoyOperationByVesselActivityCode(ImportDataContext dataContext,String vesselActivityCode) {
+ String transmittingBuoyTypeCode = TRANSMITTING_BUOY_OPERATION_CODE_MAPPING.get(vesselActivityCode);
+ if (transmittingBuoyTypeCode == null) {
+ return null;
+ }
+ return dataContext.getTransmittingBuoyOperation(transmittingBuoyTypeCode);
+ }
+
+
+ private TransmittingBuoyType getTransmittingBuoyTypeByBuoyTypeCode(ImportDataContext dataContext,String buoyTypeCode) {
+ String transmittingBuoyTypeCode = TRANSMITTING_BUOY_TYPE_CODE_MAPPING.get(buoyTypeCode);
+ if (transmittingBuoyTypeCode == null) {
+ transmittingBuoyTypeCode = "999";
+ }
+ TransmittingBuoyType transmittingBuoyType = dataContext.getTransmittingBuoyType(transmittingBuoyTypeCode);
+ return Objects.requireNonNull(transmittingBuoyType, String.format("Can't find transmittingBuoyType with code: %s", buoyTypeCode));
+ }
+
+ /**
+ * To get objectMaterial id associated by a DCP from avdth ACTIVITE.C_TYP_OBJET code.
+ *
+ * @param objectTypeCode ACTIVITE.C_TYP_OBJET
+ * @return material or null
+ */
+ private ObjectMaterial getObjectMaterialByObjectTypeCode(ImportDataContext dataContext,String objectTypeCode) {
+ switch (objectTypeCode) {
+ case "1":
+ return dataContext.getObjectMaterialAFAD();
+ case "2":
+ return dataContext.getObjectMaterialDFAD();
+ case "3":
+ return dataContext.getObjectMaterialLOG();
+ case "9":
+ return dataContext.getObjectMaterialFOB();
+ case "10":
+ return dataContext.getObjectMaterialFALOG();
+ case "11":
+ return dataContext.getObjectMaterialHALOG();
+ case "13":
+ return dataContext.getObjectMaterialVNLOG();
+ }
+ return null;
+ }
}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetCatchByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetCatchByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetDiscardedByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetDiscardedByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe
-syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe
+syntax.name=Observations - Dénombrement des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
+syntax.description=Afficher le nombre de captures rejetées par espèce selon le type de banc et le type de rejet, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
=====================================
@@ -20,7 +20,7 @@
# #L%
###
syntax.name=Observations - Dénombrement des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher les nombres de captures par groupe d'espèce selon le type de banc et le devenir, filtré par groupe
+syntax.description=Afficher les nombres de captures selon le type de banc et le devenir, filtré par groupe
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
=====================================
@@ -19,7 +19,7 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe
+syntax.name=Observations - Poids des rejets par type de banc et raison de rejet, filtrés par groupe (en t)
syntax.description=Afficher le poids de captures rejetées par espèce selon le type de banc et type de rejet, filtrés par groupe
syntax.rows=-1
syntax.columns=-1
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=9
result.rows=2
result.0=Espèce^Total BL^Total BO^Espèce non désirée ou protégée^Taille^Cuve pleine^Poisson abîmé ou impropre à la consommation humaine^Autre ( à préciser dans les notes )^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^12.0^null^null^12.0
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
=====================================
@@ -19,8 +19,8 @@
# <http://www.gnu.org/licenses/gpl-3.0.html>.
# #L%
###
-syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe
-syntax.description=Afficher le poids de captures par groupe d'espèce selon le type de banc et le devenir, filtrés par groupe
+syntax.name=Observations - Poids des captures par type de banc et devenir, filtrés par groupe (en t)
+syntax.description=Afficher le poids de captures selon le type de banc et le devenir, filtrés par groupe (en t)
syntax.rows=-1
syntax.columns=-1
syntax.columnsHeader=
@@ -29,4 +29,4 @@ syntax.nbRequests=1
result.columns=19
result.rows=2
result.0=Espèce^Total BL^Total BO^Ailerons seulements^Partiellement conservé (ex: ailerons de requin, poisson séché)^Autres (à préciser dans les notes)^Conservé pour raisons scientifiques^Conservé pour le marché local ou poisson séché/salé à bord^Conservé à destination de la conserverie^Utilisé en cuisine du bord^Echappe du filet (pour requin-baleine et cétacés)^Rejeté, statut non observé^Rejeté suffocant^Rejeté suffocant blessé^Sortie vivant du filet (pour requin-baleine et cétacés)^Sortie mort du filet (pour requin-baleine et cétacés)^Rejeté vivant^Rejeté mort^Total
-result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12
\ No newline at end of file
+result.1=[FAO]ALV [sc]Alopias vulpinus [fr]Renard^0.0^12.0^null^null^null^null^null^null^null^12.0^null^null^null^null^null^null^null^12.0
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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%
-###
-syntax.name=Observations - Captures de thons selon le type d’association (en t)
-syntax.description=Afficher la répartitions des captures de thons selon le type d'association
-syntax.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
-syntax.nbRequests=4
-result.columns=7
-result.rows=5
-result.0=175.0^0.0^7.0^0.0^0.0^0.0^182.0
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^1.0^0.0^0.0^1.0^12.1406^14.1406
-result.4=175.0^1.0^7.0^0.0^1.0^12.1406^196.1406
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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%
-###
-result.0=0.0^0.0^0.0^0.0^0.0^0.2882^0.2882
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^0.0^5.0^0.0^0.0^148.303^153.303
-result.4=0.0^0.0^5.0^0.0^0.0^148.5912^153.5912
-result.columns=7
-result.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.description=Afficher la répartitions des rejets de thons selon le type d'association
-syntax.name=Observations - Rejets de thons selon le type d’association (en t)
-syntax.nbRequests=4
-syntax.rows=5
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
=====================================
src/site/markdown/avdth/logbook.md
=====================================
@@ -46,7 +46,7 @@ La table est déversée dans plusieurs tables :
| ACTIVITE_26 | V_VENT_DIR | Activity.windDirection | |
| ACTIVITE_27 | V_VENT_VIT | Activity.wind | [9](#n_0_9) |
| ACTIVITE_28 | C_TYP_OBJET | | [10](#n_0_10) |
-| ACTIVITE_29 | F_DCP_ECO | ??? | |
+| ACTIVITE_29 | F_DCP_ECO | Dcp écologique | [10](#n_0_10) |
| ACTIVITE_30 | F_PROP_BALISE | TransmittingBuoy.transmittingBuoyOwnerShip | [10](#n_0_10) |
| ACTIVITE_31 | C_TYP_BALISE | | [10](#n_0_10) |
| ACTIVITE_32 | V_ID_BALISE | TransmittingBuoy.code | |
@@ -218,6 +218,7 @@ Pour le **simple mapping** on utilise la translation :
| 3 | fr.ird.referential.ps.common.ObjectMaterial#0#0.50 | 2 LOG |
| 9 | fr.ird.referential.ps.common.ObjectMaterial#0#1.3 | FOB |
+Enfin si la valeur du champs **ACTIVITE.F_DCP_ECO** vaut **2**, alors on ajoute le matériel **4-1** (*Matériaux biodégradables*).
* ```FloatingObject.transmittingBuoy```
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceContext.java
=====================================
@@ -279,8 +279,11 @@ public class TopiaMigrationServiceContext {
}
}
- public void saveModelVersion() {
- saveVersion(null, getModelVersion());
+ protected void saveModelVersionAndCommit() {
+ Version version = getModelVersion();
+ log.info(String.format("[ Version %s ] Saving persistence model database version and commit.", version));
+ sqlHelper.saveAndCommit(jdbcHelper, version.getVersion());
+ dbVersion = version;
}
public Optional<TopiaMigrationServiceAskUserToMigrate> getAskUserToMigrate() {
@@ -289,11 +292,7 @@ public class TopiaMigrationServiceContext {
protected void saveVersion(TopiaSqlSupport sqlSupport, Version version) {
log.info(String.format("[ Version %s ] Saving new database version.", version));
- if (sqlSupport != null) {
- sqlHelper.save(sqlSupport, version.getVersion());
- } else {
- sqlHelper.save(jdbcHelper, version.getVersion());
- }
+ sqlHelper.save(sqlSupport, version.getVersion());
dbVersion = version;
}
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/TopiaMigrationServiceImpl.java
=====================================
@@ -91,7 +91,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
context.dropLegacyTable();
if (dbVersion.equals(modelVersion)) {
log.info("Database is up to date, but was coming from legacy migration table, fill new migration table.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
}
@@ -103,7 +103,7 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
if (versionTableExist && dbNotVersioned) {
log.info("Database is empty, no migration needed.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
@@ -113,8 +113,9 @@ public class TopiaMigrationServiceImpl implements TopiaMigrationService {
List<Version> versionsToApply = context.getResources().getVersionsAfter(dbVersion);
if (versionsToApply.isEmpty()) {
+ //TODO This case should never happen?
log.info("No version to apply, no migration needed.");
- context.saveModelVersion();
+ context.saveModelVersionAndCommit();
return;
}
=====================================
toolkit/persistence/src/main/java/org/nuiton/topia/service/migration/version/MigrationServiceSqlHelper.java
=====================================
@@ -149,9 +149,9 @@ public interface MigrationServiceSqlHelper {
return deleteTableSql() + fillVersionSql(version);
}
- default void save(JdbcHelper jdbcHelper, String version) {
+ default void saveAndCommit(JdbcHelper jdbcHelper, String version) {
try {
- jdbcHelper.runUpdate(saveTableSql(version));
+ jdbcHelper.runUpdate(saveTableSql(version) + "commit;");
} catch (Exception e) {
throw new TopiaException(String.format("Could not save version %s", version), e);
}
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9567a9b04e40b1cb116f626e…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/9567a9b04e40b1cb116f626e…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][feature/issue_2573] 4 commits: Une BD sql.gz qui génère une corruption de données systématique - Notre...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch feature/issue_2573 at ultreiaio / ird-observe
Commits:
296bd417 by Tony Chemit at 2022-12-12T14:11:35+01:00
Une BD sql.gz qui génère une corruption de données systématique - Notre espoir de comprendre le problème ? - Closes #2571
- - - - -
5a4d1662 by Tony Chemit at 2022-12-12T14:57:16+01:00
Report - correction de certain totaux (exprimé en int au lieu d'en float pour les poids) + revue de certains libellés
- - - - -
d177f9ff by Tony Chemit at 2022-12-12T15:05:07+01:00
Report - suppression des reports psObservationTargetCatchByAssociation et psObservationTargetDiscardedByAssociation
- - - - -
deeff0f3 by Tony Chemit at 2022-12-12T15:06:06+01:00
to be continued
- - - - -
30 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/landing/LandingSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySampleSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ll/logbook/SampleSpi.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/ActivitySpi.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/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/FloatingObjectSpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/logbook/RouteSpi.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/ActivityImpl.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/ActivitySpi.java
- core/persistence/java/src/main/java/fr/ird/observe/entities/data/ps/observation/FloatingObjectSpi.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/SetSpi.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchTotalCountByGroupPerSpeciesFate.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerReasonForDiscard.properties
- core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationCatchWeightByGroupPerSpeciesFate.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties
- toolkit/persistence/src/main/java/fr/ird/observe/spi/context/DataDtoEntityContext.java
- toolkit/persistence/src/main/java/fr/ird/observe/spi/context/EditableDtoEntityContext.java
- toolkit/persistence/src/main/java/fr/ird/observe/spi/context/OpenableDtoEntityContext.java
- toolkit/persistence/src/main/java/fr/ird/observe/spi/context/ReferentialDtoEntityContext.java
The diff was not included because it is too large.
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5110b84f5b68aa4d136e4e74…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/compare/5110b84f5b68aa4d136e4e74…
You're receiving this email because of your account on gitlab.com.
1
0
[Git][ultreiaio/ird-observe][develop-9.0.x] Report - suppression des reports psObservationTargetCatchByAssociation et...
by Tony CHEMIT (@tchemit) 12 Dec '22
by Tony CHEMIT (@tchemit) 12 Dec '22
12 Dec '22
Tony CHEMIT pushed to branch develop-9.0.x at ultreiaio / ird-observe
Commits:
d177f9ff by Tony Chemit at 2022-12-12T15:05:07+01:00
Report - suppression des reports psObservationTargetCatchByAssociation et psObservationTargetDiscardedByAssociation
- - - - -
5 changed files:
- core/api/dto/src/main/resources/observe-reports.properties
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java
- − core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties
- − core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties
Changes:
=====================================
core/api/dto/src/main/resources/observe-reports.properties
=====================================
@@ -827,274 +827,6 @@ report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.re
Group by e
report.psObservationCatchTotalCountByGroupAndSpeciesFateDiscardPerAssociation.request.5.repeat=species|column
################################################################################
-## Captures thons selon le type d'association
-################################################################################
-report.psObservationTargetCatchByAssociation.modelType=PS
-report.psObservationTargetCatchByAssociation.name=Observations - Captures de thons selon le type d’association (en t)
-report.psObservationTargetCatchByAssociation.description=Afficher la répartitions des captures de thons selon le type d'association
-report.psObservationTargetCatchByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetCatchByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetCatchByAssociation.operations.1=SumRow
-report.psObservationTargetCatchByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetCatchByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetCatchByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetCatchByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetCatchByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = FALSE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
-## Rejets thons selon le type d'association
-################################################################################
-report.psObservationTargetDiscardedByAssociation.modelType=PS
-report.psObservationTargetDiscardedByAssociation.name=Observations - Rejets de thons selon le type d’association (en t)
-report.psObservationTargetDiscardedByAssociation.description=Afficher la répartitions des rejets de thons selon le type d'association
-report.psObservationTargetDiscardedByAssociation.columns=YFT, SKJ, BET, LTA, FRI, Autres, Total
-report.psObservationTargetDiscardedByAssociation.rows=BL sans baleine, BL avec baleine, BO avec requin-baleine, BO sans requin-baleine, Total
-report.psObservationTargetDiscardedByAssociation.operations.1=SumRow
-report.psObservationTargetDiscardedByAssociation.operations.2=SumColumn
-# ligne 1
-report.psObservationTargetDiscardedByAssociation.request.1=0,0|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os not in elements(a.observedSystem)
-# ligne 2
-report.psObservationTargetDiscardedByAssociation.request.7=0,1|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#2' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9395222812356602' \
- and os in elements(a.observedSystem)
-# ligne 3
-report.psObservationTargetDiscardedByAssociation.request.13=0,2|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os in elements(a.observedSystem)
-# ligne 4
-report.psObservationTargetDiscardedByAssociation.request.19=0,3|row|\
- Select \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then ct.catchWeight \
- Else 0.0 End), \
- Sum(CASE ct.species.topiaId When 'fr.ird.referential.common.Species#1239832685474#0.8943253454598569' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685474#0.975344121171992' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685475#0.13349466123905152' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.8024257002747615' Then 0.0 \
- When 'fr.ird.referential.common.Species#1239832685477#0.3846921632590058' Then 0.0 \
- Else ct.catchWeight End) \
- From TripImpl m \
- Join m.routeObs r \
- Join r.activity a \
- Join a.set c \
- with c.schoolType.id = 'fr.ird.referential.ps.common.SchoolType#0#1' \
- Join c.catches ct \
- Join ct.speciesFate sf with sf.discard = TRUE, \
- ObservedSystemImpl os \
- Where \
- m.id In :tripId \
- and os.topiaId = 'fr.ird.referential.ps.common.ObservedSystem#1239832686428#0.9217864901728908' \
- and os not in elements(a.observedSystem)
-################################################################################
## Captures observées
################################################################################
report.psObservationCatch.modelType=PS
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetCatchByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetCatchByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetCatchByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/java/fr/ird/observe/services/service/report/ps/PsObservationTargetDiscardedByAssociationReportFixture.java deleted
=====================================
@@ -1,49 +0,0 @@
-/*
- * #%L
- * ObServe Core :: Services :: Test
- * %%
- * Copyright (C) 2008 - 2022 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%
- */
-package fr.ird.observe.services.service.report.ps;
-
-import com.google.auto.service.AutoService;
-import fr.ird.observe.dto.report.Report;
-import fr.ird.observe.dto.report.ReportRequest;
-import fr.ird.observe.services.service.ReportFixture;
-
-import java.util.Iterator;
-
-/**
- * Test le report {@code targetDiscardedByAssociation}.
- *
- * @author Tony Chemit - dev(a)tchemit.fr
- * @since 1.9
- */
-(a)AutoService(ReportFixture.class)
-public class PsObservationTargetDiscardedByAssociationReportFixture extends ReportFixture {
-
- @Override
- public void assertSyntax(Report report) {
- super.assertSyntax(report);
- Iterator<ReportRequest> requests = getRequestIterator(report);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 0);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 1);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 2);
- assertReportRequestDimension(requests, ReportRequest.RequestLayout.row, 0, 3);
- }
-}
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetCatchByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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%
-###
-syntax.name=Observations - Captures de thons selon le type d’association (en t)
-syntax.description=Afficher la répartitions des captures de thons selon le type d'association
-syntax.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
-syntax.nbRequests=4
-result.columns=7
-result.rows=5
-result.0=175.0^0.0^7.0^0.0^0.0^0.0^182.0
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^1.0^0.0^0.0^1.0^12.1406^14.1406
-result.4=175.0^1.0^7.0^0.0^1.0^12.1406^196.1406
\ No newline at end of file
=====================================
core/services/test/src/main/resources/fixtures/fr/ird/observe/services/service/ReportService-psObservationTargetDiscardedByAssociation.properties deleted
=====================================
@@ -1,35 +0,0 @@
-###
-# #%L
-# ObServe Core :: Services :: Test
-# %%
-# Copyright (C) 2008 - 2022 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%
-###
-result.0=0.0^0.0^0.0^0.0^0.0^0.2882^0.2882
-result.1=null^null^null^null^null^null^0.0
-result.2=null^null^null^null^null^null^0.0
-result.3=0.0^0.0^5.0^0.0^0.0^148.303^153.303
-result.4=0.0^0.0^5.0^0.0^0.0^148.5912^153.5912
-result.columns=7
-result.rows=5
-syntax.columns=7
-syntax.columnsHeader=YFT^SKJ^BET^LTA^FRI^Autres^Total
-syntax.description=Afficher la répartitions des rejets de thons selon le type d'association
-syntax.name=Observations - Rejets de thons selon le type d’association (en t)
-syntax.nbRequests=4
-syntax.rows=5
-syntax.rowsHeader=BL sans baleine^BL avec baleine^BO avec requin-baleine^BO sans requin-baleine^Total
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/d177f9ff66ae7d98f4d098e65…
--
View it on GitLab: https://gitlab.com/ultreiaio/ird-observe/-/commit/d177f9ff66ae7d98f4d098e65…
You're receiving this email because of your account on gitlab.com.
1
0