Tutti-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
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
January 2014
- 8 participants
- 108 discussions
r1511 - trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic
by tchemit@users.forge.codelutin.com 19 Jan '14
by tchemit@users.forge.codelutin.com 19 Jan '14
19 Jan '14
Author: tchemit
Date: 2014-01-19 14:15:24 +0100 (Sun, 19 Jan 2014)
New Revision: 1511
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1511
Log:
refs #4135: [EXPORT GENERIQUE] demande d'?\195?\169volutions
Modified:
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java
trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java 2014-01-19 12:58:20 UTC (rev 1510)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/AccidentalCatchExportModel.java 2014-01-19 13:15:24 UTC (rev 1511)
@@ -77,7 +77,7 @@
newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER);
newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
- newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
+// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
newColumnForExport("BatchId", AccidentalCatchExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
newColumnForExport("ReferenceTaxonId", AccidentalBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-01-19 12:58:20 UTC (rev 1510)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/CatchExportModel.java 2014-01-19 13:15:24 UTC (rev 1511)
@@ -71,12 +71,11 @@
newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER);
newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
- newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
+// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
newColumnForExport("Code_Taxon", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.INTEGER);
newColumnForExport("Code_Espece_Campagne", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_SURVEY_CODE);
newColumnForExport("Nom_scientifique", SpeciesBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_NAME);
newColumnForExport("Commentaire", SpeciesBatch.PROPERTY_COMMENT);
- //FIXME Use me newColumnForExport("Coef_Final_Elevation", CatchExportRow.FINAL_RAISING_FACTOR);
for (SampleCategoryModelEntry entry : sampleCategoryModel.getCategory()) {
addSampleCategory(entry.getCanonicalLabel(), entry.getOrder());
@@ -95,6 +94,7 @@
newColumnForExport("Poids_Reference", CatchExportRow.REFERENCE_WEIGHT, TuttiCsvUtil.PRIMITIVE_FLOAT);
newColumnForExport("Coef_Elev_Espece_Capture", CatchExportRow.RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT);
+ newColumnForExport("Coef_Final_Elevation", CatchExportRow.FINAL_RAISING_FACTOR, TuttiCsvUtil.PRIMITIVE_FLOAT);
}
public void prepareRows(PersistenceService persistenceService,
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java 2014-01-19 12:58:20 UTC (rev 1510)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/IndividualObservationExportModel.java 2014-01-19 13:15:24 UTC (rev 1511)
@@ -49,24 +49,16 @@
*/
public class IndividualObservationExportModel extends TuttiCsvUtil.AbstractTuttiExportModel<IndividualObservationExportRow> {
-// protected final Caracteristic caracteristicSample;
-//
-// protected final Caracteristic caracteristicOtolithe;
-
protected final Caracteristic caracteristicWeight;
protected final Caracteristic caracteristicPmfmId;
public IndividualObservationExportModel(
char separator,
-// Caracteristic caracteristicSample,
-// Caracteristic caracteristicOtolithe,
Caracteristic caracteristicWeight,
Caracteristic caracteristicPmfmId) {
super(separator);
-// this.caracteristicSample = caracteristicSample;
-// this.caracteristicOtolithe = caracteristicOtolithe;
this.caracteristicWeight = caracteristicWeight;
this.caracteristicPmfmId = caracteristicPmfmId;
@@ -77,7 +69,7 @@
newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER);
newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
- newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
+// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
newColumnForExport("BatchId", IndividualObservationExportRow.PROPERTY_BATCH_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
newColumnForExport("ReferenceTaxonId", IndividualObservationBatch.PROPERTY_SPECIES + "." + Species.PROPERTY_REFERENCE_TAXON_ID, TuttiCsvUtil.PRIMITIVE_INTEGER);
@@ -98,20 +90,6 @@
if (CollectionUtils.isNotEmpty(observations)) {
for (IndividualObservationBatch child : observations) {
-// addCaracteristicRow(rows,
-// cruise,
-// operation,
-// child,
-// caracteristicSample,
-// child.getSamplingCode());
-//
-// addCaracteristicRow(rows,
-// cruise,
-// operation,
-// child,
-// caracteristicOtolithe,
-// child.getCalcifiedPieceSamplingCode());
-
addCaracteristicRow(rows,
cruise,
operation,
Modified: trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java
===================================================================
--- trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java 2014-01-19 12:58:20 UTC (rev 1510)
+++ trunk/tutti-service/src/main/java/fr/ifremer/tutti/service/export/generic/MarineLitterExportModel.java 2014-01-19 13:15:24 UTC (rev 1511)
@@ -54,7 +54,7 @@
newColumnForExport("Code_station", FishingOperation.PROPERTY_STATION_NUMBER);
newColumnForExport("Id_Operation", FishingOperation.PROPERTY_FISHING_OPERATION_NUMBER, TuttiCsvUtil.INTEGER);
newColumnForExport("Poche", FishingOperation.PROPERTY_MULTIRIG_AGGREGATION);
- newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
+// newColumnForExport("Navire", Cruise.PROPERTY_VESSEL, TuttiCsvUtil.VESSEL_VALUE_FORMATTER);
newColumnForExport("MarineLitterCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER);
newColumnForExport("MarineLitterSizeCategory", MarineLitterBatch.PROPERTY_MARINE_LITTER_SIZE_CATEGORY, TuttiCsvUtil.CARACTERISTIC_VALUE_FORMATTER);
1
0
r1510 - in trunk/tutti-ui-swing/src/main/help: export fr
by tchemit@users.forge.codelutin.com 19 Jan '14
by tchemit@users.forge.codelutin.com 19 Jan '14
19 Jan '14
Author: tchemit
Date: 2014-01-19 13:58:20 +0100 (Sun, 19 Jan 2014)
New Revision: 1510
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1510
Log:
refs #3939: [SPECS] Fournir la documentation sur le format g?\195?\169n?\195?\169rique
Added:
trunk/tutti-ui-swing/src/main/help/export/exportCruise-example.zip
Modified:
trunk/tutti-ui-swing/src/main/help/export/accidentalCatch.csv
trunk/tutti-ui-swing/src/main/help/export/catch.csv
trunk/tutti-ui-swing/src/main/help/export/individualObservation.csv
trunk/tutti-ui-swing/src/main/help/export/marineLitter.csv
trunk/tutti-ui-swing/src/main/help/export/operation.csv
trunk/tutti-ui-swing/src/main/help/export/parameter.csv
trunk/tutti-ui-swing/src/main/help/export/species.csv
trunk/tutti-ui-swing/src/main/help/export/survey.csv
trunk/tutti-ui-swing/src/main/help/fr/genericExport.html
Modified: trunk/tutti-ui-swing/src/main/help/export/accidentalCatch.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/accidentalCatch.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/accidentalCatch.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,7 +1,6 @@
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;1393;Rejet mort;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;196;Femelle;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;220;10.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;299;1.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100007;11183;Brissopsis atlantica;;101;10.0;
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;31;4098;Abralia;commentaire capture accidentelle;1393;Rejet mort;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;31;4098;Abralia;commentaire capture accidentelle;196;Femelle;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;31;4098;Abralia;commentaire capture accidentelle;220;12.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;31;4098;Abralia;commentaire capture accidentelle;1433;323;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;31;4098;Abralia;commentaire capture accidentelle;323;1.0;
Modified: trunk/tutti-ui-swing/src/main/help/export/catch.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/catch.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/catch.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,7 +1,9 @@
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;Taxon;Nom_scientifique;Commentaire;V_HV;Num_Ordre_V_HV_H2;Tot_V_HV;Ech_V_HV;Type_Volume_Poids_V_HV;Unite_Volume_Poids_V_HV;Class_Tri_;Num_Ordre_Class_Tri__H2;Tot_Class_Tri_;Ech_Class_Tri_;Type_Volume_Poids_Class_Tri_;Unite_Volume_Poids_Class_Tri_;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturité;Num_Ordre_Maturité_H2;Tot_Maturité;Ech_Maturité;Type_Volume_Poids_Maturité;Unite_Volume_Poids_Maturité;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Libelle_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Elev_Espece_Capture
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;495;Abralia veranyi;|Commentaire Espèce Très gros;Vrac;1;;;Poids;kg;TG - Très gros;1;50.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;299;Longueur céphalothoracique (LC) - individu - céphalothorax - Mesure au mm par un observateur;10.0;1;10.0;mm;1.0;3;10.0;6.4942336;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;495;Abralia veranyi;|Commentaire Espèce Très gros;Vrac;1;;;Poids;kg;TG - Très gros;1;50.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;299;Longueur céphalothoracique (LC) - individu - céphalothorax - Mesure au mm par un observateur;11.0;2;3.0;mm;1.0;2;3.0;21.647446;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;495;Abralia veranyi;|;Vrac;1;;;Poids;kg;G - Gros;2;10.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;10.0;6.4942336;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;495;Abralia veranyi;;Hors Vrac;1;5.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;1;5.0;1.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;4626;Adamsia carciniopados;Commentaires benthos|;Vrac;1;;;Poids;kg;TG - Très gros;1;0.5;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;0.5;1.5153213;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;4626;Adamsia carciniopados;Commentaires benthos|;Vrac;1;;;Poids;kg;G - Gros;2;0.2;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;0.2;3.7883031;
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;Code_Taxon;Code_Espece_Campagne;Nom_scientifique;Commentaire;V_HV;Num_Ordre_V_HV_H2;Tot_V_HV;Ech_V_HV;Type_Volume_Poids_V_HV;Unite_Volume_Poids_V_HV;Class_Tri_;Num_Ordre_Class_Tri__H2;Tot_Class_Tri_;Ech_Class_Tri_;Type_Volume_Poids_Class_Tri_;Unite_Volume_Poids_Class_Tri_;Sexe;Num_Ordre_Sexe_H2;Tot_Sexe;Ech_Sexe;Type_Volume_Poids_Sexe;Unite_Volume_Poids_Sexe;Maturité;Num_Ordre_Maturité_H2;Tot_Maturité;Ech_Maturité;Type_Volume_Poids_Maturité;Unite_Volume_Poids_Maturité;Age;Num_Ordre_Age_H2;Tot_Age;Ech_Age;Type_Volume_Poids_Age;Unite_Volume_Poids_Age;Code_Longueur;Libelle_Longueur;Taille;NumOrdre_Taille_H2;Poids_Classe_Taille;Unite_Taille;Precision_Mesure;Nbr;Poids_Reference;Coef_Elev_Espece_Capture;Coef_Final_Elevation
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1749;;Ammodytes tobianus;Commentaire V|;Vrac;1;;;Poids;kg;TG - Très gros;1;20.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;20.0;4.5;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1749;;Ammodytes tobianus;Commentaire V|Commentaire V/G|;Vrac;1;;;Poids;kg;G - Gros;2;70.0;;Poids;kg;Male;1;67.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;323;Largeur céphalothoracique (LAC) - individu - céphalothorax - Mesure au mm par un observateur;10.0;1;10.0;mm;1.0;12;10.0;9.0;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1749;;Ammodytes tobianus;Commentaire V|Commentaire V/G|;Vrac;1;;;Poids;kg;G - Gros;2;70.0;;Poids;kg;Male;1;67.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;323;Largeur céphalothoracique (LAC) - individu - céphalothorax - Mesure au mm par un observateur;11.0;2;12.0;mm;1.0;2;12.0;7.5;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1749;;Ammodytes tobianus;Commentaire V|Commentaire V/G|;Vrac;1;;;Poids;kg;G - Gros;2;70.0;;Poids;kg;Male;1;67.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;323;Largeur céphalothoracique (LAC) - individu - céphalothorax - Mesure au mm par un observateur;12.0;3;12.0;mm;1.0;3;12.0;7.5;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1749;;Ammodytes tobianus;Commentaire V|Commentaire V/G|Commentaire V/G/F;Vrac;1;;;Poids;kg;G - Gros;2;70.0;;Poids;kg;Femelle;2;3.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;12;3.0;30.0;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;1938;;Agonus cataphractus;|;Vrac;2;;;Poids;kg;G - Gros;1;10.0;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;2;10.0;1.0;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;4622;;Abietinaria abietina;commentaire benthos V|commentaire benthos V/G;Vrac;1;;;Poids;kg;G - Gros;1;0.5;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;;0.5;1.4;0.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;4622;;Abietinaria abietina;commentaire benthos V|commentaire benthos V/M;Vrac;1;;;Poids;kg;M - Moyen;2;0.2;;Poids;kg;NA;;;;;kg;NA;;;;;kg;NA;;;;;kg;;;;;;;;1;0.2;3.5;0.0;
Added: trunk/tutti-ui-swing/src/main/help/export/exportCruise-example.zip
===================================================================
(Binary files differ)
Property changes on: trunk/tutti-ui-swing/src/main/help/export/exportCruise-example.zip
___________________________________________________________________
Added: svn:mime-type
+ application/octet-stream
Modified: trunk/tutti-ui-swing/src/main/help/export/individualObservation.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/individualObservation.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/individualObservation.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,17 +1,12 @@
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100001;495;Abralia veranyi;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100001;495;Abralia veranyi;;299;10.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100001;495;Abralia veranyi;;198;TG - Très gros;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100002;495;Abralia veranyi;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100002;495;Abralia veranyi;;299;10.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100002;495;Abralia veranyi;;198;TG - Très gros;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100003;495;Abralia veranyi;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100003;495;Abralia veranyi;;299;10.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100003;495;Abralia veranyi;;198;TG - Très gros;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100004;495;Abralia veranyi;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100004;495;Abralia veranyi;;299;11.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100004;495;Abralia veranyi;;198;TG - Très gros;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100005;495;Abralia veranyi;;1433;299;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100005;495;Abralia veranyi;;299;11.0;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100005;495;Abralia veranyi;;198;TG - Très gros;
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;100006;495;Abralia veranyi;;220;5.0;
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;BatchId;ReferenceTaxonId;ReferenceTaxonName;Commentaire;CaracteristicId;CaracteristicValue
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;220;0.09;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;1433;299;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;299;2.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;198;G - Gros;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;196;UNK - Indetermine;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;29;1938;Agonus cataphractus;commentaire observation individuelle 1;1435;1;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;30;1938;Agonus cataphractus;commentaire observation individuelle 2;220;0.02;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;30;1938;Agonus cataphractus;commentaire observation individuelle 2;1433;299;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;30;1938;Agonus cataphractus;commentaire observation individuelle 2;299;2.0;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;30;1938;Agonus cataphractus;commentaire observation individuelle 2;198;G - Gros;
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;30;1938;Agonus cataphractus;commentaire observation individuelle 2;1435;2;
Modified: trunk/tutti-ui-swing/src/main/help/export/marineLitter.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/marineLitter.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/marineLitter.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,2 +1,2 @@
-Annee;Serie;Serie_Partielle;Engin;Code_station;Numero_Trait;Poche;Navire;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Commentaire
-2014;Export Générique;1;SENSOR Micrel/NKE TPS 100;A;1;1;278970;"L3d Objets métalliques de grande taille - Barils, pièces de machinerie, appareils électriques, etc.";A: <5*5 cm= 25 cm2;2;10.0;Grille pains;
+Annee;Serie;Serie_Partielle;Engin;Code_station;Id_Operation;Poche;MarineLitterCategory;MarineLitterSizeCategory;Number;Weight;Commentaire
+2014;Campagne CGFS;;OTT 15/21.2;A;1;1;"L3d Objets métalliques de grande taille - Barils, pièces de machinerie, appareils électriques, etc.";A: <5*5 cm= 25 cm2;12;20.0;commentaire macro-dechet;
Modified: trunk/tutti-ui-swing/src/main/help/export/operation.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/operation.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/operation.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,2 +1,2 @@
-Annee;Serie;Serie_Partielle;Code_Station;Numero_Trait;Poche;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Ouv_Verticale;Ouv_Horizontale_Ailes;Ouv_Horizontale_Panneaux;Saisisseur;NavireAssocie;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Carroussel_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule
-2014;Export Générique;1;A;1;1;SENSOR Micrel/NKE TPS 100;278970;17/01/2014 00:00:00;41.3;1.5;17/01/2014 01:00:00;41.3;1.6;60;Strate 1D;NA;Localité 1D1;Y;Y;8363.0;NA;NA;NA;Ching-Maria VILLANUEVA|Joel VIGNEAU;005-07 (nat.) - NAVIRE OFIMER|FRA000868095 - THALASSA;;70.7;Y;60.7;Y;5.0;Y;5.0;N;;?;;?;65.0;Y;60.0;Y;60.0;Y;5.0;Y;0.0;Y;0.0;Y;0.7;Y;0.7;Y;0.7;Y;0.0;Y;0.0;Y;0.0;Y;10.0;Y;
+Annee;Serie;Serie_Partielle;Code_Station;Id_Operation;Poche;Engin;Navire;DateDeb_Op;LatDeb;LongDeb;DateFin_Op;LatFin;LongFin;Duree;Strate;Sous-Strate;Localite;Validite_OP;Rectiligne;Distance;Saisisseur;NavireAssocie;Commentaire;Poids_Total;Poids_Total_Calcule;Poids_Total_Vrac;Poids_Total_Vrac_Calcule;Poids_Total_HorsVrac;Poids_Total_HorsVrac_Calcule;Poids_Total_Non_Trie;Poids_Total_Non_Trie_Calcule;Poids_Total_Tremis;Poids_Total_Tremis_Calcule;Poids_Total_Carroussel;Poids_Total_Carroussel_Calcule;Poids_Total_Espece;Poids_Total_Espece_Calcule;Poids_Total_Espece_Vrac;Poids_Total_Espece_Vrac_Calcule;Poids_Total_Espece_Vrac_Trie;Poids_Total_Espece_Vrac_Trie_Calcule;Poids_Total_Espece_HorsVrac;Poids_Total_Espece_HorsVrac_Calcule;Poids_Total_Espece_Inerte_Trie;Poids_Total_Espece_Inerte_Trie_Calcule;Poids_Total_Espece_Vivant_non_detaille_trie;Poids_Total_Espece_Vivant_non_detaille_trie_Calcule;Poids_Total_Benthos;Poids_Total_Benthos_Calcule;Poids_Total_Benthos_Vrac;Poids_Total_Benthos_Vrac_Calcule;Poids_Total_Benthos_Vrac_Trie;Poids_Total_Benthos_Vrac_Trie_Calcule;Poids_Total_Benthos_HorsVrac;Poids_Total_Benthos_HorsVrac_Calcule;Poids_Total_Benthos_Inerte_Trie;Poids_Total_Benthos_Inerte_Trie_Calcule;Poids_Total_Benthos_Vivant_non_detaille_trie;Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule;Poids_Total_Macro_Dechet;Poids_Total_Macro_Dechet_Calcule
+2014;Campagne CGFS;;A;1;1;OTT 15/21.2;854508;19/01/2014 00:00:00;45.1;0.45;19/01/2014 01:00:00;45.1;0.49;60;Strate 1D;NA;Localité 1D2;Y;Y;3143.0;Claire VOLNY-ANNE|Celine VIGNOT;000 (nat.) - NAVIRE OFIMER|FRA000385795 - THALIA;commentaire Trait;100.7;Y;100.7;Y;0.0;Y;0.0;Y;-9.0;?;-9.0;?;100.0;Y;100.0;Y;100.0;Y;0.0;Y;0.0;Y;0.0;Y;0.72;Y;0.72;Y;0.72;Y;0.0;Y;0.02;N;0.0;Y;20.0;Y;
Modified: trunk/tutti-ui-swing/src/main/help/export/parameter.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/parameter.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/parameter.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,8 +1,19 @@
-Annee;Serie;Serie_Partielle;Code_station;Numero_Trait;Poche;Code_PMFM;Libelle_PMFm;Valeur
-2014;Export Générique;1;A;1;1;833;Ouverture verticale (chalut ou drague) - opération - totale - Instrument de bord;2.0;
-2014;Export Générique;1;A;1;1;828;Ouverture Horizontale aux pointes d'ailes - opération - totale - Instrument de bord;3.0;
-2014;Export Générique;1;A;1;1;905;Longueur d'un bras - engin - bras - Inconnue;5.0;
-2014;Export Générique;1;A;1;1;826;Longueur des funes - opération - totale - Instrument de bord;6.0;
-2014;Export Générique;1;A;1;1;863;"Température - masse d'eau, eau brute - Fond début de pêche - Instrument de bord";10.0;
-2014;Export Générique;1;A;1;1;862;"Température - masse d'eau, eau brute - Fond fin de pêche - Instrument de bord";9.0;
-2014;Export Générique;1;A;1;1;173;"Profondeur fond - masse d'eau, eau brute - totale - Inconnue";100.0;
+Annee;Serie;Serie_Partielle;Code_station;Id_Operation;Poche;Code_PMFM;Libelle_PMFm;Valeur
+2014;Campagne CGFS;;A;1;1;828;Ouverture Horizontale aux pointes d'ailes - opération - totale - Instrument de bord;12.0;
+2014;Campagne CGFS;;A;1;1;965;Ouverture verticale (chalut ou drague) - engin - totale - Inconnue;3.0;
+2014;Campagne CGFS;;A;1;1;855;Sonde - opération - Début de pêche - Instrument de bord;4.0;
+2014;Campagne CGFS;;A;1;1;826;Longueur de fune - opération - totale - Instrument de bord;33.0;
+2014;Campagne CGFS;;A;1;1;854;Sonde - opération - Fin de pêche - Instrument de bord;3.0;
+2014;Campagne CGFS;;A;1;1;194;"Etat de la mer - masse d'eau, eau brute - totale - Observation par un observateur";"0 - calme, vagues absentes";
+2014;Campagne CGFS;;A;1;1;230;Vitesse du vent - air - totale - Inconnue;12.0;
+2014;Campagne CGFS;;A;1;1;847;"Salinité - masse d'eau, eau brute - Fond début de pêche - Instrument de bord";34.0;
+2014;Campagne CGFS;;A;1;1;848;"Salinité - masse d'eau, eau brute - Fond fin de pêche - Instrument de bord";44.0;
+2014;Campagne CGFS;;A;1;1;849;"Salinité moyenne - masse d'eau, eau brute - Fond total - Instrument de bord";4.0;
+2014;Campagne CGFS;;A;1;1;850;"Salinité - masse d'eau, eau brute - Surface mise à l'eau - Instrument de bord";4.0;
+2014;Campagne CGFS;;A;1;1;851;"Salinité - masse d'eau, eau brute - Surface sortie de l'eau - Instrument de bord";4.0;
+2014;Campagne CGFS;;A;1;1;862;"Température - masse d'eau, eau brute - Fond fin de pêche - Instrument de bord";3.0;
+2014;Campagne CGFS;;A;1;1;863;"Température - masse d'eau, eau brute - Fond début de pêche - Instrument de bord";55.0;
+2014;Campagne CGFS;;A;1;1;881;"Température moyenne - masse d'eau, eau brute - Fond total - Instrument de bord";5.0;
+2014;Campagne CGFS;;A;1;1;882;"Température - masse d'eau, eau brute - Surface mise à l'eau - Instrument de bord";5.0;
+2014;Campagne CGFS;;A;1;1;883;"Température - masse d'eau, eau brute - Surface sortie de l'eau - Instrument de bord";5.0;
+2014;Campagne CGFS;;A;1;1;821;Direction vent - air - totale - Instrument de bord;33.0;
Modified: trunk/tutti-ui-swing/src/main/help/export/species.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/species.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/species.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,4 +1,5 @@
Id;Code_Rubin;Nom Scientifique;Code campagne
-495;ABRLVER;Abralia veranyi;ABRAVER;
-4626;ADAMCAR;Adamsia carciniopados;;
-11183;;Brissopsis atlantica;;
+1749;AMMOTOB;Ammodytes tobianus;AMMOTOB;
+1938;AGONCAT;Agonus cataphractus;AGONCAT;
+4098;ABRL;Abralia;;
+4622;ABIEABI;Abietinaria abietina;;
Modified: trunk/tutti-ui-swing/src/main/help/export/survey.csv
===================================================================
--- trunk/tutti-ui-swing/src/main/help/export/survey.csv 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/export/survey.csv 2014-01-19 12:58:20 UTC (rev 1510)
@@ -1,2 +1,2 @@
Annee;Serie;Serie_Partielle;Navire;Pays;Zone_Etude;Campagne;Id_Sismer;Date_Deb_Campagne;Port_Deb_Campagne;Date_Fin_Campagne;Port_Fin_Campagne;Chef_Mission;Resp_Salle_Tri;Commentaire
-2014;Export Générique;1;278970;FRA;CGFS - Manche Est / Sud Mer du Nord;Export Générique_2014_1;;14/01/2014 00:00:00;La Barbotière (Gujan-Mestras);29/01/2014 00:00:00;Etang de Palo;Adrian LEVREL|Alain BISEAU;Alain BISEAU|Alain TETARD;;
+2014;Campagne CGFS;;854508;FRA;CGFS - Manche Est / Sud Mer du Nord;Campagne CGFS_2014;;19/01/2014 00:00:00;La Barbotière (Gujan-Mestras);25/01/2014 00:00:00;La Barbotière (Gujan-Mestras);- Testeur Ifremer;Adrian LEVREL;;
Modified: trunk/tutti-ui-swing/src/main/help/fr/genericExport.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-01-19 12:57:12 UTC (rev 1509)
+++ trunk/tutti-ui-swing/src/main/help/fr/genericExport.html 2014-01-19 12:58:20 UTC (rev 1510)
@@ -64,6 +64,8 @@
├── parameter.csv
├── species.csv
└── survey.csv</pre>
+ <p>Vous pouvez télécharger <a href="../export/exportCruise-example.zip" target="export">un exemple d'export générique.</a></p>
+
<h2>Fichier accidentalCatch.csv</h2>
<p>
Ce fichier contient les <strong>Captures accidentelles</strong>.
@@ -89,10 +91,9 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr class='danger'><td>Navire</td><td>Opération</td><td>Navire</td><td><strong>A supprimer?</strong></td></tr>
- <tr class='active'><td>BatchId</td><td>Opération > Capture</td><td>Numéro de lôt de capture</td><td>Id technique non visible à l'écran</td></tr>
+ <tr class='active'><td>BatchId</td><td>Opération > Capture</td><td>Numéro de lôt de capture</td><td>Id du lot capture</td></tr>
<tr><td>ReferenceTaxonId</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>ReferenceTaxonName</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Commentaire</td><td>Opération > Observations individuelles</td><td>Tableau > Commentaire</td><td></td></tr>
@@ -101,7 +102,14 @@
</tbody>
</table>
- <p><strong>(1)</strong> On retrouve aussi les caractéristiques définies dans le protocole > Caractéristiques > Observations individuelles qui sont des colonnes du tableau</p>
+ <p><strong>(1)</strong> On retrouve en plus les caractéristiques définies directement dans le tableau :</p>
+ <ul>
+ <li>Tableau > Sexe</li>
+ <li>Tableau > Poids observé</li>
+ <li>Tableau > Taille</li>
+ <li>Tableau > Classe de taille</li>
+ <li>Tableau > Mort ou vivant</li>
+ </ul>
<h2>Fichier catch.csv</h2>
<p>
Ce fichier contient les données des <strong>Captures espèces et benthos</strong>.
@@ -127,36 +135,62 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
- <tr class='danger'><td>Navire</td><td>Opération</td><td>Navire</td><td><strong>A supprimer?</strong></td></tr>
- <tr><td>Taxon</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
+ <tr><td>Code_Taxon</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
+ <tr><td>Code_Espece_Campagne</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Nom_scientifique</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Espèce</td><td></td></tr>
- <tr><td>Commentaire</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Commentaire</td><td></td></tr>
- <tr><td>V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Poids Vrac</td><td></td></tr>
- <tr><td>Num_Ordre_V_HV_H2</td><td>Opération > Captures > Espèces ou Benthos</td><td>Numéro ordre du lot</td><td></td></tr>
- <tr><td>Tot_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Vrac (sur le lôt père)</td><td></td></tr>
+ <tr><td>Commentaire</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Commentaire</td><td>Les commentaires séparés par des <strong>|</strong>; en partant du lôt père jusqu'au lot feuille</td></tr>
+ <tr><td>V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Poids Vrac</td><td>Valeur: <strong>Vrac</strong> ou <strong>Hors Vrac</strong></td></tr>
+ <tr class='active'><td>Num_Ordre_V_HV_H2</td><td>Opération > Captures > Espèces ou Benthos</td><td>Numéro ordre du lot</td><td>(rankOrder)</td></tr>
+ <tr><td>Tot_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Vrac / Hors Vrac</td><td></td></tr>
<tr><td>Ech_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>Tableau > Poids sous échantillonné</td><td></td></tr>
- <tr><td>Type_Volume_Poids_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>TODO</td><td></td></tr>
- <tr><td>Unite_Volume_Poids_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td>TODO</td><td></td></tr>
+ <tr class='active'><td>Type_Volume_Poids_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td></td><td>Poids ou volume (toujours <strong>Poids</strong>)</td></tr>
+ <tr class='active'><td>Unite_Volume_Poids_V_HV</td><td>Opération > Captures > Espèces ou Benthos</td><td></td><td>Unité de poids (toujours <strong>kg</strong>)</td></tr>
<tr><td>(1)</td><td>Opération > Captures > Espèces ou Benthos</td><td>Catégorisations</td><td></td></tr>
- <tr><td>Code_Longueur</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>TODO</td><td></td></tr>
- <tr><td>Libelle_Longueur</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>TODO</td><td></td></tr>
- <tr><td>Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>TODO</td><td></td></tr>
- <tr><td>NumOrdre_Taille_H2</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>TODO</td><td></td></tr>
- <tr><td>Poids_Classe_Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Poids</td><td></td></tr>
- <tr><td>Unite_Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Classe de taille</td><td></td></tr>
- <tr><td>Precision_Mesure</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Précision</td><td></td></tr>
- <tr><td>Nbr</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Nombre d'individus</td><td></td></tr>
- <tr><td>Poids_Reference</td><td>Opération > Captures > Espèces ou Benthos</td><td>Poids de référence</td><td></td></tr>
- <tr><td>Coef_Elev_Espece_Capture</td><td>Opération > Captures > Espèces ou Benthos</td><td>coefficient d'élévation à la capture totale</td><td></td></tr>
+ <tr><td>Code_Longueur</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Type de mesure</td><td></td></tr>
+ <tr><td>Libelle_Longueur</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Type de mesure</td><td></td></tr>
+ <tr><td>Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Tableau > Taille</td><td></td></tr>
+ <tr class='active'><td>NumOrdre_Taille_H2</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Numéro ordre du lot</td><td>(rankOrder)</td></tr>
+ <tr><td>Poids_Classe_Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Tableau > Poids observé</td><td></td></tr>
+ <tr><td>Unite_Taille</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Type de mesure</td><td></td></tr>
+ <tr><td>Precision_Mesure</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Type de mesure</td><td></td></tr>
+ <tr><td>Nbr</td><td>Opération > Captures > Espèces ou Benthos > Mensurations</td><td>Tableau > Nombre</td><td></td></tr>
+ <tr class='active'><td>Poids_Reference</td><td>Opération > Captures > Espèces ou Benthos</td><td>Poids de référence</td><td>Poids utilisé pour faire l'élévation</td></tr>
+ <tr class='active'><td>Coef_Elev_Espece_Capture</td><td>Opération > Captures > Espèces ou Benthos</td><td>Coefficient d'élévation à la capture totale</td><td>Valeur calculée</td></tr>
+ <tr class='danger'><td>Coef_Final_Elevation</td><td>Opération > Captures > Espèces ou Benthos</td><td>Coefficient d'élévation par catégorie à la capture totale</td><td>Valeur calculée à définir</td></tr>
</tbody>
</table>
-
+ <p><strong>(1)</strong> Comme pour <strong>V_HV</strong>; pour chaque catégorisation <strong>XXX</strong> on aura 6 colonnes :</p>
+ <dl>
+ <dt>XXX</dt>
+ <dd>
+ Valeur de la catégorisation (i.e valeur de la catartéristique) (<strong>NA</strong> si cette catégorisation n'est pas utilisée)
+ </dd>
+ <dt>Num_Ordre_XXX</dt>
+ <dd>
+ La position du lot (technique)
+ </dd>
+ <dt>Tot_XXX</dt>
+ <dd>
+ Tableau > XXX
+ <br/>
+ Le poids total pour tous les lots de cette catégorie
+ </dd>
+ <dt>Ech_XXX</dt>
+ <dd>Tableau > Poids sous échantillonné
+ <br/>
+ Le poids échantillon de enregistre les modifications faites dans les différents champs.
+ </dd>
+ <dt>Type_Volume_Poids_XXX</dt>
+ <dd>Poids ou volume (toujours <strong>Poids</strong>)</dd>
+ <dt>Unite_Volume_Poids_XXX</dt>
+ <dd>Unité de poids (toujours <strong>kg</strong>)</dd>
+ </dl>
<h2>Fichier gearCaracteristics.csv</h2>
<p>
- Ce fichier contient les données de <strong>mises en oeuvre de l'engin</strong>.
+ Ce fichier contient les caractéristiques des engins d'une campagne.
</p>
<h3>Entête du fichier</h3>
<pre>
@@ -177,10 +211,10 @@
<tr><td>Annee</td><td>Campagne</td><td>Date de début</td><td>format YYYY</td></tr>
<tr><td>Serie</td><td>Campagne</td><td>Série</td><td></td></tr>
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
- <tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
- <tr><td>Code_PMFM</td><td>Opération > Mise en oeuvre de l'engin</td><td>Tableau > Caractéristique</td><td></td></tr>
- <tr><td>Libelle_PMFM</td><td>Opération > Mise en oeuvre de l'engin</td><td>Tableau > Caractéristique</td><td></td></tr>
- <tr><td>Valeur</td><td>Opération > Mise en oeuvre de l'engin</td><td>Tableau > Valeur</td><td></td></tr>
+ <tr><td>Engin</td><td>Campagne</td><td>Engin</td><td></td></tr>
+ <tr><td>Code_PMFM</td><td>Campagne > Engin</td><td>Tableau > Caractéristique</td><td></td></tr>
+ <tr><td>Libelle_PMFM</td><td>Campagne > Engin</td><td>Tableau > Caractéristique</td><td></td></tr>
+ <tr><td>Valeur</td><td>Campagne > Engin</td><td>Tableau > Valeur</td><td></td></tr>
</tbody>
</table>
@@ -209,19 +243,20 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
- <tr class='danger'><td>Navire</td><td>Opération</td><td>Navire</td><td><strong>A supprimer?</strong></td></tr>
<tr><td>BatchId</td><td>Opération > Observations individuelles</td><td>Id technique</td><td></td></tr>
<tr><td>ReferenceTaxonId</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>ReferenceTaxonName</td><td>Opération > Observations individuelles</td><td>Tableau > Espèce</td><td></td></tr>
<tr><td>Commentaire</td><td>Opération > Observations individuelles</td><td>Tableau > Commentaire</td><td></td></tr>
- <tr><td>CaracteristicId</td><td>Opération > Observations individuelles</td><td>Tableau > Caractéristique</td><td></td></tr>
- <tr><td>CaracteristicValue</td><td>Opération > Observations individuelles</td><td>Tableau > Valeur</td><td></td></tr>
+ <tr><td>CaracteristicId</td><td>Opération > Observations individuelles</td><td>Tableau > Autre Caractéristiques > Tableau > Caractéristique</td><td>(1)</td></tr>
+ <tr><td>CaracteristicValue</td><td>Opération > Observations individuelles</td><td>Tableau > Autre Caractéristiques > Tableau > Valeur</td><td>(1)</td></tr>
</tbody>
</table>
+ <p><strong>(1)</strong> On retrouve aussi les caractéristiques communes définies dans le protocole, affichées dans
+ des colonnes du tableau avanat <i>Autres caractéristiques</i></p>
<h2>Fichier marineLitter.csv</h2>
<p>
Ce fichier contient les données de <strong>Macro dechêts</strong>.
@@ -247,10 +282,9 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
- <tr class='danger'><td>Navire</td><td>Opération</td><td>Navire</td><td><strong>A supprimer?</strong></td></tr>
<tr><td>MarineLitterCategory</td><td>Opération > Macro-déchet</td><td>Tableau > Catégorie</td><td></td></tr>
<tr><td>MarineLitterSizeCategory</td><td>Opération > Macro-déchet</td><td>Tableau > Catégorie de taille</td><td></td></tr>
<tr><td>Number</td><td>Opération > Macro-déchet</td><td>Tableau > Nombre</td><td></td></tr>
@@ -284,73 +318,74 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Navire</td><td>Opération</td><td>Navire</td><td></td></tr>
- <tr><td>DateDeb_Op</td><td>Opération</td><td>Date début</td><td></td></tr>
- <tr><td>LatDeb</td><td>Opération</td><td>Latitude début</td><td></td></tr>
- <tr><td>LongDeb</td><td>Opération</td><td>Longitude début</td><td></td></tr>
- <tr><td>DateFin_Op</td><td>Opération</td><td>Date fin</td><td></td></tr>
- <tr><td>LatFin</td><td>Opération</td><td>Latitude fin</td><td></td></tr>
- <tr><td>LongFin</td><td>Opération</td><td>Longitude fin</td><td></td></tr>
- <tr><td>Duree</td><td>Opération</td><td>Durée du trait</td><td></td></tr>
- <tr><td>Strate</td><td>Opération</td><td>Strate</td><td></td></tr>
- <tr><td>Sous-Strate</td><td>Opération</td><td>Sous strate</td><td></td></tr>
- <tr><td>Localite</td><td>Opération</td><td>Localité</td><td></td></tr>
+ <tr><td>DateDeb_Op</td><td>Opération</td><td>Date début</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
+ <tr><td>LatDeb</td><td>Opération</td><td>Latitude début</td><td>format DD</td></tr>
+ <tr><td>LongDeb</td><td>Opération</td><td>Longitude début</td><td>format DD</td></tr>
+ <tr><td>DateFin_Op</td><td>Opération</td><td>Date fin</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
+ <tr><td>LatFin</td><td>Opération</td><td>Latitude fin</td><td>format DD</td></tr>
+ <tr><td>LongFin</td><td>Opération</td><td>Longitude fin</td><td>format DD</td></tr>
+ <tr><td>Duree</td><td>Opération</td><td>Durée du trait</td><td>(3)</td></tr>
+ <tr><td>Strate</td><td>Opération</td><td>Strate</td><td>(1)</td></tr>
+ <tr><td>Sous-Strate</td><td>Opération</td><td>Sous strate</td><td>(1)</td></tr>
+ <tr><td>Localite</td><td>Opération</td><td>Localité</td><td>(1)</td></tr>
<tr><td>Validite_OP</td><td>Opération</td><td>Opération valide</td><td></td></tr>
<tr><td>Rectiligne</td><td>Opération</td><td>Opération rectiligne</td><td></td></tr>
<tr><td>Distance</td><td>Opération</td><td>Distance</td><td></td></tr>
- <tr><td>Ouv_Verticale</td><td>Opération</td><td></td><td>TODO A supprimer car c'est une caractéristique du trait</td></tr>
- <tr><td>Ouv_Horizontale_Ailes</td><td>Opération</td><td></td><td>TODO A supprimer car c'est une caractéristique du trait</td></tr>
- <tr><td>Ouv_Horizontale_Panneaux</td><td>Opération</td><td></td><td>TODO A supprimer car c'est une caractéristique du trait</td></tr>
- <tr><td>Saisisseur</td><td>Opération</td><td>Saisisseur</td><td></td></tr>
- <tr><td>NavireAssocie</td><td>Opération</td><td>Navire associé</td><td></td></tr>
+ <tr><td>Saisisseur</td><td>Opération</td><td>Saisisseur</td><td>(2)</td></tr>
+ <tr><td>NavireAssocie</td><td>Opération</td><td>Navire associé</td><td>(2)</td></tr>
<tr><td>Commentaire</td><td>Opération</td><td>Commentaire</td><td></td></tr>
- <tr><td>Poids_Total</td><td>Opération > Capture > Résumé</td><td>Poids total capture</td><td></td></tr>
- <tr><td>Poids_Total_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total calculé</td><td></td></tr>
- <tr><td>Poids_Total_Vrac</td><td>Opération > Capture > Résumé</td><td>Poids total Vrac</td><td></td></tr>
- <tr><td>Poids_Total_Vrac_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_HorsVrac</td><td>Opération > Capture > Résumé</td><td>Poids total Hors Vrac</td><td></td></tr>
- <tr><td>Poids_Total_HorsVrac_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Hors Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_Non_Trie</td><td>Opération > Capture > Résumé</td><td>Poids total Non trié</td><td></td></tr>
- <tr><td>Poids_Total_Non_Trie_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Non trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Tremis</td><td>Opération > Capture > Résumé</td><td>Poids total Trémis</td><td></td></tr>
- <tr><td>Poids_Total_Tremis_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Trémis calculé</td><td></td></tr>
- <tr><td>Poids_Total_Carroussel</td><td>Opération > Capture > Résumé</td><td>Poids total Carroussel</td><td></td></tr>
- <tr><td>Poids_Total_Carroussel_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Carroussel calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece</td><td>Opération > Capture > Espèce</td><td>Poids total</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vrac</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vrac_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vrac_Trie</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac trié</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vrac_Trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece_HorsVrac</td><td>Opération > Capture > Espèce</td><td>Poids total Hors Vrac</td><td></td></tr>
- <tr><td>Poids_Total_Espece_HorsVrac_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Hors Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Inerte_Trie</td><td>Opération > Capture > Espèce</td><td>Poids total interte trié</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Inerte_Trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total interte trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vivant_non_detaille_trie</td><td>Opération > Capture > Espèce</td><td>Poids total no détaillé trié</td><td></td></tr>
- <tr><td>Poids_Total_Espece_Vivant_non_detaille_trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total no détaillé trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos</td><td>Opération > Capture > Benthos</td><td>Poids total</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vrac</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vrac_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vrac_Trie</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac trié</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vrac_Trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_HorsVrac</td><td>Opération > Capture > Benthos</td><td>Poids total Hors Vrac</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_HorsVrac_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Hors Vrac calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Inerte_Trie</td><td>Opération > Capture > Benthos</td><td>Poids total interte trié</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Inerte_Trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total interte trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie</td><td>Opération > Capture > Benthos</td><td>Poids total no détaillé trié</td><td></td></tr>
- <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total no détaillé trié calculé</td><td></td></tr>
- <tr><td>Poids_Total_Macro_Dechet</td><td>Opération > Capture > Macro déchêt</td><td>Poids total</td><td></td></tr>
- <tr><td>Poids_Total_Macro_Dechet_Calcule</td><td>Opération > Capture > Macro déchêt</td><td>Poids total calculé</td><td></td></tr>
+ <tr><td>Poids_Total</td><td>Opération > Capture > Résumé</td><td>Poids total capture</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Vrac</td><td>Opération > Capture > Résumé</td><td>Poids total Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Vrac_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_HorsVrac</td><td>Opération > Capture > Résumé</td><td>Poids total Hors Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_HorsVrac_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Hors Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Non_Trie</td><td>Opération > Capture > Résumé</td><td>Poids total Non trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Non_Trie_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Non trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Tremis</td><td>Opération > Capture > Résumé</td><td>Poids total Trémis</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Tremis_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Trémis calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Carroussel</td><td>Opération > Capture > Résumé</td><td>Poids total Carroussel</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Carroussel_Calcule</td><td>Opération > Capture > Résumé</td><td>Poids total Carroussel calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece</td><td>Opération > Capture > Espèce</td><td>Poids total</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece_Vrac</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_Vrac_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece_Vrac_Trie</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_Vrac_Trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Vrac trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece_HorsVrac</td><td>Opération > Capture > Espèce</td><td>Poids total Hors Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_HorsVrac_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total Hors Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece_Inerte_Trie</td><td>Opération > Capture > Espèce</td><td>Poids total interte trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_Inerte_Trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total interte trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Espece_Vivant_non_detaille_trie</td><td>Opération > Capture > Espèce</td><td>Poids total non détaillé trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Espece_Vivant_non_detaille_trie_Calcule</td><td>Opération > Capture > Espèce</td><td>Poids total non détaillé trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos</td><td>Opération > Capture > Benthos</td><td>Poids total</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vrac</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vrac_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vrac_Trie</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vrac_Trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Vrac trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos_HorsVrac</td><td>Opération > Capture > Benthos</td><td>Poids total Hors Vrac</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_HorsVrac_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total Hors Vrac calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos_Inerte_Trie</td><td>Opération > Capture > Benthos</td><td>Poids total interte trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_Inerte_Trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total interte trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie</td><td>Opération > Capture > Benthos</td><td>Poids total non détaillé trié</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Benthos_Vivant_non_detaille_trie_Calcule</td><td>Opération > Capture > Benthos</td><td>Poids total non détaillé trié calculé</td><td>(4)</td></tr>
+ <tr><td>Poids_Total_Macro_Dechet</td><td>Opération > Capture > Macro déchêt</td><td>Poids total</td><td>(3)</td></tr>
+ <tr><td>Poids_Total_Macro_Dechet_Calcule</td><td>Opération > Capture > Macro déchêt</td><td>Poids total calculé</td><td>(4)</td></tr>
</tbody>
</table>
+ <p><strong>(1)</strong> : <strong>NA</strong> si pas de valeur</p>
+ <p><strong>(2)</strong> : Valeurs séparées par des <strong>|</strong></p>
+ <p><strong>(3)</strong> : <strong>-9</strong> si pas de valeur</p>
+ <p><strong>(4)</strong> : <strong>Y</strong> si valeur calculée, <strong>N</strong> si valeur observée</p>
<h2>Fichier parameter.csv</h2>
<p>
- Ce fichier contient les des <strong>Caractéristiques du trait</strong>.
+ Ce fichier contient tous les <strong>Caractéristiques du trait</strong>.
</p>
<h3>Entête du fichier</h3>
<pre>Annee;Serie;Serie_Partielle;Code_station;Numero_Trait;Poche;Code_PMFM;Libelle_PMFm;Valeur</pre>
@@ -372,18 +407,24 @@
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Engin</td><td>Opération</td><td>Engin</td><td></td></tr>
<tr><td>Code_station</td><td>Opération</td><td>Code station</td><td></td></tr>
- <tr><td>Numero_Trait</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
+ <tr><td>Id_Operation</td><td>Opération</td><td>Numéro de trait</td><td></td></tr>
<tr><td>Poche</td><td>Opération</td><td>Numéro de pôche</td><td></td></tr>
- <tr><td>Code_PMFM</td><td>Code du pmfm</td><td>Tableau > Caractéristique</td><td></td></tr>
- <tr><td>Libelle_PMFm</td><td>Libellé du psfm</td><td>Tableau > Caractéristique</td><td></td></tr>
- <tr><td>Valeur</td><td>Valeur</td><td>Tableau > Valeur</td><td></td></tr>
+ <tr><td>Code_PMFM</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Caractéristique</td><td></td></tr>
+ <tr><td>Libelle_PMFm</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Caractéristique</td><td></td></tr>
+ <tr><td>Valeur</td><td>Opération > Mise en oeuvre de l'engin (ou Autres paramètres)</td><td>Tableau > Valeur</td><td></td></tr>
</tbody>
</table>
<h2>Fichier species.csv</h2>
<p>
- Ce fichier contient l'ensemble des espèces rencontrées dans les captures du trait.
+ Ce fichier contient l'ensemble des espèces rencontrées dans les captures du trait, à savoir :
</p>
+ <ul>
+ <li>Capture espèces</li>
+ <li>Capture benthos</li>
+ <li>Capture accidentelles</li>
+ <li>Observations individuelles</li>
+ </ul>
<h3>Entête du fichier</h3>
<pre>Id;Code_Rubin;Nom Scientifique;Code campagne</pre>
<h3>Exemple</h3>
@@ -393,16 +434,14 @@
<thead>
<tr>
<th>Nom de colonne</th>
- <th>Ecran</th>
- <th>Champs</th>
<th>Commentaire</th>
</tr>
</thead>
<tbody>
- <tr><td>Id</td><td>Identifiant du taxon</td><td></td><td></td></tr>
- <tr><td>Code_Rubin</td><td>RefTaxon</td><td></td><td></td></tr>
- <tr><td>Nom Scientifique</td><td></td><td></td><td></td></tr>
- <tr><td>Code campagne</td><td>Code campagne renseigné dans le protocole</td><td></td><td></td></tr>
+ <tr><td>Id</td><td>Identifiant du taxon</td></tr>
+ <tr><td>Code_Rubin</td><td>RefTaxon</td></tr>
+ <tr><td>Nom Scientifique</td><td>Nom scientifique</td></tr>
+ <tr><td>Code campagne</td><td>Code campagne renseigné dans le protocole</td></tr>
</tbody>
</table>
@@ -430,10 +469,10 @@
<tr><td>Serie</td><td>Campagne</td><td>Série</td><td></td></tr>
<tr><td>Serie_Partielle</td><td>Campagne</td><td>Série partielle</td><td></td></tr>
<tr><td>Navire</td><td>Campagne</td><td>Navire</td><td>Code</td></tr>
- <tr><td>Pays</td><td>Campagne</td><td>Pays</td><td>Provient de la configuration</td></tr>
+ <tr><td>Pays</td><td>Configuration > Application</td><td>Id du pays à utiliser (export)</td><td></td></tr>
<tr><td>Zone_Etude</td><td>Série de Campagne</td><td>Zone</td><td></td></tr>
<tr><td>Campagne</td><td>Campagne</td><td>Nom</td><td></td></tr>
- <tr><td>Id_Sismer</td><td>Campagne</td><td>TODO</td><td></td></tr>
+ <tr><td>Id_Sismer</td><td>Campagne</td><td></td><td>Vide pour le moment (voir http://forge.codelutin.com/issues/2877)</td></tr>
<tr><td>Date_Deb_Campagne</td><td>Campagne</td><td>Date de début</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
<tr><td>Port_Deb_Campagne</td><td>Campagne</td><td>Port de départ</td><td></td></tr>
<tr><td>Date_Fin_Campagne</td><td>Campagne</td><td>Date de fin</td><td>format JJ/MM/YYYY HH:MM:ss</td></tr>
1
0
r1509 - trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence
by tchemit@users.forge.codelutin.com 19 Jan '14
by tchemit@users.forge.codelutin.com 19 Jan '14
19 Jan '14
Author: tchemit
Date: 2014-01-19 13:57:12 +0100 (Sun, 19 Jan 2014)
New Revision: 1509
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1509
Log:
fixes #4154: [REFERENTIEL] Probl?\195?\168me si des esp?\195?\168ces sont supprim?\195?\169s
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-01-18 23:08:52 UTC (rev 1508)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-01-19 12:57:12 UTC (rev 1509)
@@ -84,6 +84,7 @@
import java.io.File;
import java.io.IOException;
import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.concurrent.Callable;
@@ -168,8 +169,6 @@
try {
V result = call.call();
return result;
- } catch (ApplicationTechnicalException e) {
- throw e;
} catch (RuntimeException e) {
throw e;
} catch (Exception e) {
@@ -644,7 +643,39 @@
@Override
public TuttiProtocol getProtocol(String id) {
- return protocolService.getProtocol(id);
+ TuttiProtocol protocol = protocolService.getProtocol(id);
+
+ // sanity it (remove all bad species and benthos)
+ // see http://forge.codelutin.com/issues/4154
+ List<Species> allReferentSpecies = getAllReferentSpecies();
+
+ Map<String, Species> map = TuttiEntities.splitByTaxonId(allReferentSpecies);
+
+ Iterator<SpeciesProtocol> iterator = protocol.getSpecies().iterator();
+ while (iterator.hasNext()) {
+ SpeciesProtocol speciesProtocol = iterator.next();
+ String taxonId = String.valueOf(speciesProtocol.getSpeciesReferenceTaxonId());
+ Species species = map.get(taxonId);
+ if (species == null) {
+ if (log.isWarnEnabled()) {
+ log.warn("Could not find protocol species " + taxonId + " (" + speciesProtocol.getSpeciesSurveyCode() + ") in referential.");
+ }
+ iterator.remove();
+ }
+ }
+ iterator = protocol.getBenthos().iterator();
+ while (iterator.hasNext()) {
+ SpeciesProtocol speciesProtocol = iterator.next();
+ String taxonId = String.valueOf(speciesProtocol.getSpeciesReferenceTaxonId());
+ Species species = map.get(taxonId);
+ if (species == null) {
+ if (log.isWarnEnabled()) {
+ log.warn("Could not find protocol benthos " + taxonId + " (" + speciesProtocol.getSpeciesSurveyCode() + ") in referential.");
+ }
+ iterator.remove();
+ }
+ }
+ return protocol;
}
//------------------------------------------------------------------------//
1
0
r1508 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol
by tchemit@users.forge.codelutin.com 18 Jan '14
by tchemit@users.forge.codelutin.com 18 Jan '14
18 Jan '14
Author: tchemit
Date: 2014-01-19 00:08:52 +0100 (Sun, 19 Jan 2014)
New Revision: 1508
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1508
Log:
fix npe
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2014-01-18 22:47:12 UTC (rev 1507)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2014-01-18 23:08:52 UTC (rev 1508)
@@ -493,6 +493,11 @@
if (CollectionUtils.isNotEmpty(speciesProtocols)) {
for (SpeciesProtocol speciesProtocol : speciesProtocols) {
Integer taxonId = speciesProtocol.getSpeciesReferenceTaxonId();
+
+ if (taxonId == null) {
+
+ continue;
+ }
String taxonIdStr = String.valueOf(taxonId);
// remove all synonyms from available synonym list
1
0
18 Jan '14
Author: tchemit
Date: 2014-01-18 23:47:12 +0100 (Sat, 18 Jan 2014)
New Revision: 1507
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1507
Log:
refs #4150: [AIDE] Manque aide pour Action + ou - sur l'?\195?\169cran
Modified:
trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html
Modified: trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html
===================================================================
--- trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html 2014-01-18 22:41:26 UTC (rev 1506)
+++ trunk/tutti-ui-swing/src/main/help/fr/editFishingOperation.html 2014-01-18 22:47:12 UTC (rev 1507)
@@ -149,6 +149,14 @@
<h3>Description des actions<a name="traitActions"></a></h3>
<dl>
+ <dt>+</dt>
+ <dd>
+ Pour créer un nouveau trait.
+ </dd>
+ <dt>-</dt>
+ <dd>
+ Pour supprimer le trait sélectionné.
+ </dd>
<dt>Réinitialiser</dt>
<dd>
si des valeurs ont été modifiées et avant enregistrement, permet de
1
0
r1506 - in trunk/tutti-ui-swing/src/main: java/fr/ifremer/tutti/ui/swing/action resources/i18n
by tchemit@users.forge.codelutin.com 18 Jan '14
by tchemit@users.forge.codelutin.com 18 Jan '14
18 Jan '14
Author: tchemit
Date: 2014-01-18 23:41:26 +0100 (Sat, 18 Jan 2014)
New Revision: 1506
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1506
Log:
refs #4145: [PROTOCOLE] erreur apr?\195?\168s import protocole (d'avant 3.0), changement nom, et enregistrement. Urgent car bloque cr?\195?\169ation protocole
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java 2014-01-18 18:26:45 UTC (rev 1505)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java 2014-01-18 22:41:26 UTC (rev 1506)
@@ -310,7 +310,7 @@
if (log.isInfoEnabled()) {
log.info("Clean benthos and Import");
}
- TuttiProtocols.removeBadSpecies(badBenthos.keySet(), protocol.getSpecies());
+ TuttiProtocols.removeBadSpecies(badBenthos.keySet(), protocol.getBenthos());
break;
default:
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-18 18:26:45 UTC (rev 1505)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-18 22:41:26 UTC (rev 1506)
@@ -64,8 +64,8 @@
tutti.common.askBeforeEditProtocolBenthos.title=Des espèces (benthos) non reconnues dans le protocole
tutti.common.askBeforeEditProtocolSpecies.title=Des espèces non reconnues dans le protocole
tutti.common.askBeforeImportProtocol.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Importer</strong> pour importer le protocole en conservant les catégories non connues (elle ne seront pas affichées)</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
-tutti.common.askBeforeImportProtocolBenthos.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
-tutti.common.askBeforeImportProtocolSpecies.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
+tutti.common.askBeforeImportProtocolBenthos.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les benthos non connues</li></ul>
+tutti.common.askBeforeImportProtocolSpecies.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les espèces non connues</li></ul>
tutti.common.askBeforeUpdate.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas effectuer la mise à jour</li><li><strong>OK</strong> pour lancer la mise à jour</li></ul>
tutti.common.cancel=Annuler
tutti.common.cancel.mnemonic=A
1
0
r1505 - trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches
by tchemit@users.forge.codelutin.com 18 Jan '14
by tchemit@users.forge.codelutin.com 18 Jan '14
18 Jan '14
Author: tchemit
Date: 2014-01-18 19:26:45 +0100 (Sat, 18 Jan 2014)
New Revision: 1505
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1505
Log:
fixes #4151: [CAPTURE] Mauvais focus suite ?\195?\160 une ?\195?\169l?\195?\169vation de poids
Modified:
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-01-18 15:14:32 UTC (rev 1504)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/operation/catches/EditCatchesUIHandler.java 2014-01-18 18:26:45 UTC (rev 1505)
@@ -140,7 +140,16 @@
@Override
protected JComponent getComponentToFocus() {
- return getUI().getCatchTotalWeightField();
+ JComponent result;
+ if (getModel().getCatchTotalComputedWeight() != null) {
+ // if there is a computed value, never focus inside the component
+ // see http://forge.codelutin.com/issues/4151
+ result = null;
+ } else {
+
+ result = getUI().getCatchTotalWeightField();
+ }
+ return result;
}
@Override
1
0
r1504 - in trunk/tutti-persistence/src/main: java/fr/ifremer/adagio/core/service/technical java/fr/ifremer/adagio/core/service/technical/sanity java/fr/ifremer/adagio/core/service/technical/sanity/task java/fr/ifremer/tutti/persistence java/fr/ifremer/tutti/persistence/service resources/META-INF/services
by tchemit@users.forge.codelutin.com 18 Jan '14
by tchemit@users.forge.codelutin.com 18 Jan '14
18 Jan '14
Author: tchemit
Date: 2014-01-18 16:14:32 +0100 (Sat, 18 Jan 2014)
New Revision: 1504
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1504
Log:
fixes #4149: [TECH] Mise ?\195?\160 jour de r?\195?\169f?\195?\169rentiel - Erreur sur les donn?\195?\169es suite ?\195?\160 la mise ?\195?\160 jour
Added:
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityServiceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTask.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselFeatures.java
trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselRegistrationPeriod.java
trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTask
Removed:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceService.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceServiceImpl.java
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityService.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityService.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,41 @@
+package fr.ifremer.adagio.core.service.technical.sanity;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import org.springframework.transaction.annotation.Transactional;
+
+/**
+ * To check that a base is sane and try to clean it if possible.
+ * <p/>
+ * Created on 1/18/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.0.1
+ */
+@Transactional(readOnly = false)
+public interface DatabaseSanityService {
+
+ void sanity();
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityServiceImpl.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityServiceImpl.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,79 @@
+package fr.ifremer.adagio.core.service.technical.sanity;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.service.technical.CacheService;
+import fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTask;
+import org.hibernate.SessionFactory;
+import org.hibernate.classic.Session;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import javax.annotation.Resource;
+import java.util.ServiceLoader;
+import java.util.Set;
+
+/**
+ * Default implementation of the {@link DatabaseSanityService}.
+ * <p/>
+ * Created on 1/18/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.0.1
+ */
+@Service("databaseSanityService")
+public class DatabaseSanityServiceImpl implements DatabaseSanityService {
+
+ /**
+ * Session factory.
+ */
+ @Autowired
+ protected SessionFactory sessionFactory;
+
+ /**
+ * Cache service.
+ */
+ @Resource(name = "cacheService")
+ protected CacheService cacheService;
+
+ @Override
+ public void sanity() {
+
+ Session currentSession = sessionFactory.getCurrentSession();
+
+ Set<String> cacheIds = Sets.newHashSet();
+
+ for (DatabaseSanityTask checker : ServiceLoader.load(DatabaseSanityTask.class)) {
+ Set<String> ids = checker.sanity(currentSession);
+ cacheIds.addAll(ids);
+ }
+
+ // clear caches
+ for (String cacheId : cacheIds) {
+ cacheService.clearCache(cacheId);
+ }
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/DatabaseSanityServiceImpl.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTask.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTask.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTask.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,46 @@
+package fr.ifremer.adagio.core.service.technical.sanity.task;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import org.hibernate.classic.Session;
+
+import java.util.Set;
+
+/**
+ * Created on 1/18/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.0.1
+ */
+public interface DatabaseSanityTask {
+
+ /**
+ * Sanity the database and return the set of cache id to refresh.
+ *
+ * @param currentSession database session
+ * @return the set of cache ids to clean.
+ */
+ Set<String> sanity(Session currentSession);
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTask.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselFeatures.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselFeatures.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselFeatures.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,99 @@
+package fr.ifremer.adagio.core.service.technical.sanity.task;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.VesselFeaturesImpl;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.FlushMode;
+import org.hibernate.Query;
+import org.hibernate.classic.Session;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Check and clean vessel features.
+ * <p/>
+ * Created on 1/18/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.0.1
+ */
+public class DatabaseSanityTaskVesselFeatures implements DatabaseSanityTask {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(DatabaseSanityTaskVesselFeatures.class);
+
+ @Override
+ public Set<String> sanity(Session currentSession) {
+
+ Set<String> cacheIds = Sets.newHashSet();
+
+ // get all VESSEL_FEATURES with more than one unclosed period
+
+ Query query = currentSession.createQuery("SELECT vessel.code FROM " + VesselFeaturesImpl.class.getName() + " WHERE endDateTime IS NULL GROUP BY vessel.code HAVING COUNT(id)>1");
+ List<String> vesselCodes = query.list();
+
+ if (CollectionUtils.isEmpty(vesselCodes)) {
+ if (log.isInfoEnabled()) {
+ log.info("vesselFeatures are sane");
+ }
+ return cacheIds;
+ }
+
+ for (String vesselCode : vesselCodes) {
+
+ // Get all features having a null endDatetime
+ Query query1 = currentSession.createQuery("SELECT id FROM " + VesselFeaturesImpl.class.getName() + " WHERE endDateTime IS NULL AND vessel.code = :vesselCode ORDER BY startDateTime DESC");
+ query1.setString("vesselCode", vesselCode);
+
+ List<Integer> vesselFeaturesIds = Lists.<Integer>newArrayList(query1.list());
+
+ // remove first id (this one will stay on db)
+ vesselFeaturesIds.remove(0);
+
+ // remove all others ids
+ if (log.isInfoEnabled()) {
+ log.info(String.format("Remove %d bad vesselFeature with vessel: %s",
+ vesselFeaturesIds.size(), vesselCode));
+ }
+ currentSession.createQuery("DELETE FROM " + VesselFeaturesImpl.class.getName() + " WHERE id in :id").
+ setParameterList("id", vesselFeaturesIds).executeUpdate();
+ }
+
+ currentSession.setFlushMode(FlushMode.COMMIT);
+ currentSession.flush();
+
+ // clean vessel caches
+ cacheIds.add("fishingVessels");
+ cacheIds.add("vesselByCode");
+
+ return cacheIds;
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselFeatures.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Added: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselRegistrationPeriod.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselRegistrationPeriod.java (rev 0)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselRegistrationPeriod.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,105 @@
+package fr.ifremer.adagio.core.service.technical.sanity.task;
+
+/*
+ * #%L
+ * Tutti :: Persistence
+ * $Id$
+ * $HeadURL:$
+ * %%
+ * Copyright (C) 2012 - 2014 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/gpl-3.0.html>.
+ * #L%
+ */
+
+import com.google.common.collect.Lists;
+import com.google.common.collect.Sets;
+import fr.ifremer.adagio.core.dao.data.vessel.VesselRegistrationPeriod;
+import fr.ifremer.adagio.core.dao.data.vessel.VesselRegistrationPeriodImpl;
+import fr.ifremer.adagio.core.service.technical.CacheService;
+import org.apache.commons.collections.CollectionUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.hibernate.FlushMode;
+import org.hibernate.Query;
+import org.hibernate.classic.Session;
+
+import java.util.List;
+import java.util.Set;
+
+/**
+ * Check that vessel registration periods are sane.
+ * <p/>
+ * Created on 1/18/14.
+ *
+ * @author Tony Chemit <chemit(a)codelutin.com>
+ * @since 3.0.1
+ */
+public class DatabaseSanityTaskVesselRegistrationPeriod implements DatabaseSanityTask {
+
+ /** Logger. */
+ private static final Log log = LogFactory.getLog(DatabaseSanityTaskVesselRegistrationPeriod.class);
+
+ @Override
+ public Set<String> sanity(Session currentSession) {
+
+ Set<String> cacheIds = Sets.newHashSet();
+
+ // get all VESSEL_REGISTRATION_PERIOD with more than one unclosed period
+ Query query = currentSession.createQuery(
+ "SELECT vesselRegistrationPeriodPk.vessel.code FROM " +
+ VesselRegistrationPeriodImpl.class.getName() + " WHERE endDateTime IS NULL GROUP BY vesselRegistrationPeriodPk.vessel.code HAVING COUNT(*)>1");
+ List<String> vesselCodes = query.list();
+
+ if (CollectionUtils.isEmpty(vesselCodes)) {
+ if (log.isInfoEnabled()) {
+ log.info("vesselRegistrationPeriods are sane");
+ }
+ return cacheIds ;
+ }
+
+ for (String vesselCode : vesselCodes) {
+
+ // Get all features having a null endDatetime
+ Query query1 = currentSession.createQuery(
+ "SELECT vesselRegistrationPeriodPk FROM " + VesselRegistrationPeriodImpl.class.getName() +
+ " WHERE endDateTime IS NULL AND vesselRegistrationPeriodPk.vessel.code = :vesselCode ORDER BY vesselRegistrationPeriodPk.startDateTime DESC")
+ .setString("vesselCode", vesselCode);
+
+ List<VesselRegistrationPeriod> vesselRegistrationPeriods = Lists.<VesselRegistrationPeriod>newArrayList(query1.list());
+
+ // remove first id (this one will stay on db)
+ vesselRegistrationPeriods.remove(0);
+
+ // remove all others ids
+ if (log.isWarnEnabled()) {
+ log.warn(String.format("Remove %d bad VesselRegistrationPeriod for vessel: %s",
+ vesselRegistrationPeriods.size(), vesselCode));
+ }
+ currentSession.createQuery("DELETE FROM " + VesselRegistrationPeriodImpl.class.getName() + " WHERE vesselRegistrationPeriodPk in :vesselRegistrationPeriodPk").
+ setParameterList("vesselRegistrationPeriodPk", vesselRegistrationPeriods).executeUpdate();
+ }
+
+ currentSession.setFlushMode(FlushMode.COMMIT);
+ currentSession.flush();
+
+ // clean vessel caches
+ // clean vessel caches
+ cacheIds.add("fishingVessels");
+ cacheIds.add("vesselByCode");
+
+ return cacheIds;
+ }
+}
Property changes on: trunk/tutti-persistence/src/main/java/fr/ifremer/adagio/core/service/technical/sanity/task/DatabaseSanityTaskVesselRegistrationPeriod.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision
Added: svn:eol-style
+ native
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-01-18 15:13:52 UTC (rev 1503)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/TuttiPersistenceImpl.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -30,6 +30,7 @@
import fr.ifremer.adagio.core.dao.technical.DatabaseSchemaUpdateException;
import fr.ifremer.adagio.core.dao.technical.VersionNotFoundException;
import fr.ifremer.adagio.core.service.technical.CacheService;
+import fr.ifremer.adagio.core.service.technical.sanity.DatabaseSanityService;
import fr.ifremer.shared.application.ApplicationTechnicalException;
import fr.ifremer.tutti.persistence.entities.CaracteristicMap;
import fr.ifremer.tutti.persistence.entities.TuttiEntities;
@@ -64,7 +65,6 @@
import fr.ifremer.tutti.persistence.service.BenthosBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.CatchBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.CruisePersistenceService;
-import fr.ifremer.tutti.persistence.service.DatabaseCheckPersistenceService;
import fr.ifremer.tutti.persistence.service.FishingOperationPersistenceService;
import fr.ifremer.tutti.persistence.service.IndividualObservationBatchPersistenceService;
import fr.ifremer.tutti.persistence.service.MarineLitterBatchPersistenceService;
@@ -137,7 +137,7 @@
protected AttachmentPersistenceService attachmentService;
@Autowired
- protected DatabaseCheckPersistenceService databaseCheckPersistenceService;
+ protected DatabaseSanityService databaseSanityService;
@Autowired
protected CacheService cacheService;
@@ -228,7 +228,6 @@
individualObservationBatchService.init();
protocolService.init();
attachmentService.init();
- databaseCheckPersistenceService.init();
TuttiEnumerationFile enumerationFile = getEnumerationFile();
@@ -236,8 +235,8 @@
if (CHECK) {
- // check database is sane
- databaseCheckPersistenceService.check();
+ // sanity database
+ databaseSanityService.sanity();
}
}
@@ -265,7 +264,6 @@
individualObservationBatchService.close();
protocolService.close();
attachmentService.close();
- databaseCheckPersistenceService.close();
TuttiPersistenceServiceLocator.close();
}
}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceService.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceService.java 2014-01-18 15:13:52 UTC (rev 1503)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceService.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -1,44 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%L
- * Tutti :: Persistence
- * $Id$
- * $HeadURL:$
- * %%
- * Copyright (C) 2012 - 2014 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
-import org.springframework.transaction.annotation.Transactional;
-
-/**
- * To fix some errors in db.
- *
- * Created on 1/15/14.
- *
- * @author Tony Chemit <chemit(a)codelutin.com>
- * @since 3.0
- */
-@Transactional(readOnly = true)
-public interface DatabaseCheckPersistenceService extends TuttiPersistenceServiceImplementor {
-
- @Transactional(readOnly = false)
- public void check();
-
-}
Deleted: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceServiceImpl.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceServiceImpl.java 2014-01-18 15:13:52 UTC (rev 1503)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/DatabaseCheckPersistenceServiceImpl.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -1,98 +0,0 @@
-package fr.ifremer.tutti.persistence.service;
-
-/*
- * #%L
- * Tutti :: Persistence
- * $Id$
- * $HeadURL:$
- * %%
- * Copyright (C) 2012 - 2014 Ifremer
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/gpl-3.0.html>.
- * #L%
- */
-
-import com.google.common.collect.Lists;
-import fr.ifremer.adagio.core.dao.data.vessel.feature.physical.VesselFeaturesImpl;
-import org.apache.commons.collections.CollectionUtils;
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.hibernate.FlushMode;
-import org.hibernate.Query;
-import org.hibernate.classic.Session;
-import org.springframework.stereotype.Service;
-
-import java.util.List;
-
-/**
- * To fix some errors in db.
- * <p/>
- * Created on 1/15/14.
- *
- * @author Tony Chemit <chemit(a)codelutin.com>
- * @since 3.0
- */
-@Service("databaseCheckPersistenceService")
-public class DatabaseCheckPersistenceServiceImpl extends AbstractPersistenceService
- implements DatabaseCheckPersistenceService {
-
- /** Logger. */
- private static final Log log =
- LogFactory.getLog(DatabaseCheckPersistenceServiceImpl.class);
-
- @Override
- public void check() {
- checkVesselFeatures();
- }
-
- public void checkVesselFeatures() {
-
- // get all VESSEL_FEATURES with more than one unclosed period
- Session currentSession = getCurrentSession();
-
- Query query = currentSession.createQuery("SELECT vessel.code FROM " + VesselFeaturesImpl.class.getName() + " WHERE endDateTime IS NULL GROUP BY vessel.code HAVING COUNT(id)>1");
- List<String> vesselCodes = query.list();
-
- if (CollectionUtils.isEmpty(vesselCodes)) {
- if (log.isInfoEnabled()) {
- log.info("vesselFeatures are sane");
- }
- return;
- }
-
- for (String vesselCode : vesselCodes) {
-
- // Get all features having a null endDatetime
- Query query1 = currentSession.createQuery("SELECT id FROM " + VesselFeaturesImpl.class.getName() + " WHERE endDateTime IS NULL AND vessel.code = :vesselCode ORDER BY startDateTime DESC");
- query1.setString("vesselCode", vesselCode);
-
- List<Integer> vesselFeaturesIds = Lists.<Integer>newArrayList(query1.list());
-
- // remove first id (this one will stay on db)
- vesselFeaturesIds.remove(0);
-
- // remove all others ids
- if (log.isInfoEnabled()) {
- log.info("Remove vesselFeature with id: " + vesselFeaturesIds);
- }
- currentSession.createQuery("DELETE FROM " + VesselFeaturesImpl.class.getName() + " WHERE id in :id").
- setParameterList("id", vesselFeaturesIds).executeUpdate();
- }
-
- getCurrentSession().setFlushMode(FlushMode.COMMIT);
- getCurrentSession().flush();
- }
-
-}
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-01-18 15:13:52 UTC (rev 1503)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/service/TuttiPersistenceServiceLocator.java 2014-01-18 15:14:32 UTC (rev 1504)
@@ -25,6 +25,7 @@
*/
import fr.ifremer.adagio.core.service.ServiceLocator;
+import fr.ifremer.adagio.core.service.technical.sanity.DatabaseSanityService;
import fr.ifremer.adagio.core.service.technical.synchro.ReferentialSynchroService;
import fr.ifremer.tutti.persistence.TuttiPersistence;
import fr.ifremer.tutti.persistence.TuttiPersistenceServiceImplementor;
@@ -122,6 +123,13 @@
return service;
}
+ //TODO Move this to adagio
+ public static DatabaseSanityService getDatabaseSanityService() {
+ DatabaseSanityService service = instance().getService(
+ "databaseSanityService", DatabaseSanityService.class);
+ return service;
+ }
+
public static AttachmentPersistenceService getAttachmentPersistenceService() {
return getPersistenceService("attachmentPersistenceService",
AttachmentPersistenceService.class);
Added: trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTask
===================================================================
--- trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTask (rev 0)
+++ trunk/tutti-persistence/src/main/resources/META-INF/services/fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTask 2014-01-18 15:14:32 UTC (rev 1504)
@@ -0,0 +1,2 @@
+fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTaskVesselFeatures
+fr.ifremer.adagio.core.service.technical.sanity.task.DatabaseSanityTaskVesselRegistrationPeriod
\ No newline at end of file
1
0
r1503 - in trunk: tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol tutti-persistence/src/main/resources/i18n tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol tutti-ui-swing/src/main/resources/i18n
by tchemit@users.forge.codelutin.com 18 Jan '14
by tchemit@users.forge.codelutin.com 18 Jan '14
18 Jan '14
Author: tchemit
Date: 2014-01-18 16:13:52 +0100 (Sat, 18 Jan 2014)
New Revision: 1503
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1503
Log:
fixes #4145: [PROTOCOLE] erreur apr?\195?\168s import protocole (d'avant 3.0), changement nom, et enregistrement. Urgent car bloque cr?\195?\169ation protocole
Modified:
trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java
trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
Modified: trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java
===================================================================
--- trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-persistence/src/main/java/fr/ifremer/tutti/persistence/entities/protocol/TuttiProtocols.java 2014-01-18 15:13:52 UTC (rev 1503)
@@ -52,7 +52,9 @@
import java.io.BufferedWriter;
import java.io.File;
import java.io.Reader;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -195,6 +197,16 @@
}
}
+ public static void removeBadSpecies(Set<Integer> speciesIds, List<SpeciesProtocol> protocol) {
+ Iterator<SpeciesProtocol> iterator = protocol.iterator();
+ while (iterator.hasNext()) {
+ SpeciesProtocol next = iterator.next();
+ if (speciesIds.contains(next.getSpeciesReferenceTaxonId())) {
+ iterator.remove();
+ }
+ }
+ }
+
public static String getBadCategoriesMessage(Set<Integer> badCategories,
Decorator<Caracteristic> decorator,
TuttiPersistence persistenceService) {
@@ -217,6 +229,26 @@
return message;
}
+ public static String getBadSpeciesMessage(Map<Integer, String> badSpecies) {
+ List<String> badCategoriesStr = Lists.newArrayList();
+
+ for (Map.Entry<Integer, String> id : badSpecies.entrySet()) {
+ badCategoriesStr.add("<li>" + id.getKey() + " : " + (id.getValue() == null ? "" : id.getValue()) + "</li>");
+ }
+ String message = _("tutti.persistence.error.protocol.species.not.found", Joiner.on("").join(badCategoriesStr));
+ return message;
+ }
+
+ public static String getBadBenthosMessage(Map<Integer, String> badSpecies) {
+ List<String> badCategoriesStr = Lists.newArrayList();
+
+ for (Map.Entry<Integer, String> id : badSpecies.entrySet()) {
+ badCategoriesStr.add("<li>" + id.getKey() + " : " + (id.getValue() == null ? "" : id.getValue()) + "</li>");
+ }
+ String message = _("tutti.persistence.error.protocol.benthos.not.found", Joiner.on("").join(badCategoriesStr));
+ return message;
+ }
+
protected static TuttiProtocol fromTuttiProtocol1(TuttiEnumerationFile enumeration, TuttiProtocol1 tuttiProtocol1) {
TuttiProtocol result = newTuttiProtocol();
Binder<TuttiProtocol1, TuttiProtocol> binder = BinderFactory.newBinder(TuttiProtocol1.class, TuttiProtocol.class);
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_en_GB.properties 2014-01-18 15:13:52 UTC (rev 1503)
@@ -95,7 +95,9 @@
tutti.persistence.dbMetadata.instanciation.error=
tutti.persistence.error.caracteristic.notFound=
tutti.persistence.error.no.convertor=
+tutti.persistence.error.protocol.benthos.not.found=
tutti.persistence.error.protocol.categories.not.compatible=
+tutti.persistence.error.protocol.species.not.found=
tutti.persistence.loader.error=
tutti.persistence.protocol.delete.error=
tutti.persistence.protocol.fromFile.error=
Modified: trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties
===================================================================
--- trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-persistence/src/main/resources/i18n/tutti-persistence_fr_FR.properties 2014-01-18 15:13:52 UTC (rev 1503)
@@ -95,7 +95,9 @@
tutti.persistence.dbMetadata.instanciation.error=Erreur lors de l'initialisation des metadata de la base de données par la connexion %s
tutti.persistence.error.caracteristic.notFound=Caractéristique inconnue
tutti.persistence.error.no.convertor=Impossible de convertir en modèle de catégorie le type %s avec la valeur %s
+tutti.persistence.error.protocol.benthos.not.found=Le protocole utilise des benthos non connus dans le référentiel \: <ul>%s</ul>
tutti.persistence.error.protocol.categories.not.compatible=Le protocole utilise des catégories non connues par la configuration des catégorisations \: <ul>%s</ul>
+tutti.persistence.error.protocol.species.not.found=Le protocole utilise des espèces non connues dans le référentiel \: <ul>%s</ul>
tutti.persistence.loader.error=Erreur de conversion du dossier %s en URL
tutti.persistence.protocol.delete.error=Erreur lors de la suppression du protocole %1s (fichier %2s)
tutti.persistence.protocol.fromFile.error=Erreur lors de l'import du protocole du fichier %s
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/action/ImportProtocolAction.java 2014-01-18 15:13:52 UTC (rev 1503)
@@ -25,15 +25,20 @@
*/
import com.google.common.base.Preconditions;
+import com.google.common.collect.Maps;
import com.google.common.collect.Sets;
+import fr.ifremer.tutti.persistence.entities.TuttiEntities;
import fr.ifremer.tutti.persistence.entities.data.SampleCategoryModel;
+import fr.ifremer.tutti.persistence.entities.protocol.SpeciesProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocol;
import fr.ifremer.tutti.persistence.entities.protocol.TuttiProtocols;
import fr.ifremer.tutti.persistence.entities.referential.Caracteristic;
+import fr.ifremer.tutti.persistence.entities.referential.Species;
import fr.ifremer.tutti.service.protocol.ProtocolImportExportService;
import fr.ifremer.tutti.ui.swing.TuttiScreen;
import fr.ifremer.tutti.ui.swing.content.MainUIHandler;
import fr.ifremer.tutti.ui.swing.util.AbstractTuttiUIHandler;
+import jaxx.runtime.JAXXUtil;
import jaxx.runtime.context.JAXXContextEntryDef;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -41,6 +46,7 @@
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import java.io.File;
+import java.util.Map;
import java.util.Set;
import static org.nuiton.i18n.I18n._;
@@ -57,7 +63,8 @@
private static final Log log =
LogFactory.getLog(ImportProtocolAction.class);
- public static final JAXXContextEntryDef<TuttiProtocol> IMPORT_PROTOCOL_ENTRY = new JAXXContextEntryDef<TuttiProtocol>("importProtocol", TuttiProtocol.class);
+ public static final JAXXContextEntryDef<TuttiProtocol> IMPORT_PROTOCOL_ENTRY =
+ JAXXUtil.newContextEntryDef("importProtocol", TuttiProtocol.class);
protected TuttiProtocol protocol;
@@ -101,66 +108,30 @@
protocol.setId((String) null);
sendMessage(_("tutti.importProtocol.action.success", protocol.getName()));
+ }
+ if (doAction) {
+
// check that protocol is compatible with sample category model
- SampleCategoryModel sampleCategoryModel =
- getDataContext().getSampleCategoryModel();
+ doAction = cleanCategories(protocol);
- Set<Integer> badCategories = Sets.newHashSet();
+ }
- TuttiProtocols.checkSampleCategories(sampleCategoryModel,
- protocol,
- badCategories);
+ if (doAction) {
- if (!badCategories.isEmpty()) {
+ Map<String, Species> allReferentSpeciesByTaxonId = TuttiEntities.splitByTaxonId(
+ getDataContext().getReferentSpecies());
- // detect some bad categories
- if (log.isWarnEnabled()) {
- log.warn("There is some bad categories: " + badCategories);
- }
+ // clean species
+ doAction = cleanSpecies(allReferentSpeciesByTaxonId, protocol);
- String message = TuttiProtocols.getBadCategoriesMessage(
- badCategories,
- getDecorator(Caracteristic.class, null),
- getContext().getPersistenceService());
+ if (doAction) {
- String htmlMessage = String.format(
- AbstractTuttiUIHandler.CONFIRMATION_FORMAT,
- message,
- _("tutti.common.askBeforeImportProtocol.help"));
- int response = JOptionPane.showOptionDialog(
- getContext().getActionUI(),
- htmlMessage,
- _("tutti.common.askBeforeEditProtocol.title"),
- JOptionPane.YES_NO_OPTION,
- JOptionPane.WARNING_MESSAGE,
- UIManager.getIcon("warning"),
- new Object[]{_("tutti.option.cleanAndImport"), _("tutti.option.import"), _("tutti.option.cancel")},
- _("tutti.option.cancel")
- );
-
- switch (response) {
- case 0:
- // clean and import
- if (log.isInfoEnabled()) {
- log.info("Clean and Import");
- }
- TuttiProtocols.removeBadCategories(sampleCategoryModel,
- protocol);
- break;
- case 1:
- // import with no clean
- if (log.isInfoEnabled()) {
- log.info("Import with no cleaning");
- }
- break;
- default:
-
- // cancel
- doAction = false;
- }
+ // clean benthos
+ doAction = cleanBenthos(allReferentSpeciesByTaxonId, protocol);
}
}
+
return doAction;
}
@@ -177,4 +148,176 @@
getContext().setProtocolId(null);
super.doAction();
}
+
+ protected boolean cleanCategories(TuttiProtocol protocol) {
+
+ boolean doAction = true;
+ SampleCategoryModel sampleCategoryModel =
+ getDataContext().getSampleCategoryModel();
+
+ Set<Integer> badCategories = Sets.newHashSet();
+
+ TuttiProtocols.checkSampleCategories(sampleCategoryModel,
+ protocol,
+ badCategories);
+
+ if (!badCategories.isEmpty()) {
+
+ if (log.isWarnEnabled()) {
+ log.warn("There is some bad categories: " + badCategories);
+ }
+
+ String message = TuttiProtocols.getBadCategoriesMessage(
+ badCategories,
+ getDecorator(Caracteristic.class, null),
+ getContext().getPersistenceService());
+
+ String htmlMessage = String.format(
+ AbstractTuttiUIHandler.CONFIRMATION_FORMAT,
+ message,
+ _("tutti.common.askBeforeImportProtocol.help"));
+ int response = JOptionPane.showOptionDialog(
+ getContext().getActionUI(),
+ htmlMessage,
+ _("tutti.common.askBeforeEditProtocol.title"),
+ JOptionPane.YES_NO_OPTION,
+ JOptionPane.WARNING_MESSAGE,
+ UIManager.getIcon("warning"),
+ new Object[]{_("tutti.option.cleanAndImport"), _("tutti.option.import"), _("tutti.option.cancel")},
+ _("tutti.option.cancel")
+ );
+
+ switch (response) {
+ case 0:
+ if (log.isInfoEnabled()) {
+ log.info("Clean and Import");
+ }
+ TuttiProtocols.removeBadCategories(sampleCategoryModel,
+ protocol);
+ break;
+ case 1:
+ if (log.isInfoEnabled()) {
+ log.info("Import with no cleaning");
+ }
+ break;
+ default:
+
+ // cancel
+ doAction = false;
+ }
+ }
+ return doAction;
+ }
+
+
+ protected boolean cleanSpecies(Map<String, Species> allReferentSpeciesByTaxonId, TuttiProtocol protocol) {
+
+ boolean doAction = true;
+
+ Map<Integer, String> badSpecies = Maps.newLinkedHashMap();
+
+ for (SpeciesProtocol speciesProtocol : protocol.getSpecies()) {
+ Integer taxonId = speciesProtocol.getSpeciesReferenceTaxonId();
+ if (!allReferentSpeciesByTaxonId.containsKey(String.valueOf(taxonId))) {
+
+ badSpecies.put(taxonId, speciesProtocol.getSpeciesSurveyCode());
+ }
+ }
+
+ if (!badSpecies.isEmpty()) {
+
+ if (log.isWarnEnabled()) {
+ log.warn("There is some bad species: " + badSpecies);
+ }
+
+ String message = TuttiProtocols.getBadSpeciesMessage(badSpecies);
+
+ String htmlMessage = String.format(
+ AbstractTuttiUIHandler.CONFIRMATION_FORMAT,
+ message,
+ _("tutti.common.askBeforeImportProtocolSpecies.help"));
+
+ int response = JOptionPane.showOptionDialog(
+ getContext().getActionUI(),
+ htmlMessage,
+ _("tutti.common.askBeforeEditProtocolSpecies.title"),
+ JOptionPane.YES_NO_OPTION,
+ JOptionPane.WARNING_MESSAGE,
+ UIManager.getIcon("warning"),
+ new Object[]{_("tutti.option.cleanAndImport"), _("tutti.option.cancel")},
+ _("tutti.option.cancel")
+ );
+
+ switch (response) {
+ case 0:
+
+ if (log.isInfoEnabled()) {
+ log.info("Clean species and Import");
+ }
+ TuttiProtocols.removeBadSpecies(badSpecies.keySet(),
+ protocol.getSpecies());
+ break;
+ default:
+
+ // cancel
+ doAction = false;
+ }
+ }
+ return doAction;
+ }
+
+ protected boolean cleanBenthos(Map<String, Species> allReferentSpeciesByTaxonId, TuttiProtocol protocol) {
+
+ boolean doAction = true;
+
+ Map<Integer, String> badBenthos = Maps.newLinkedHashMap();
+
+ for (SpeciesProtocol speciesProtocol : protocol.getBenthos()) {
+ Integer taxonId = speciesProtocol.getSpeciesReferenceTaxonId();
+ if (!allReferentSpeciesByTaxonId.containsKey(String.valueOf(taxonId))) {
+
+ badBenthos.put(taxonId, speciesProtocol.getSpeciesSurveyCode());
+ }
+ }
+
+ if (!badBenthos.isEmpty()) {
+
+ if (log.isWarnEnabled()) {
+ log.warn("There is some bad benthos: " + badBenthos);
+ }
+
+ String message = TuttiProtocols.getBadBenthosMessage(badBenthos);
+
+ String htmlMessage = String.format(
+ AbstractTuttiUIHandler.CONFIRMATION_FORMAT,
+ message,
+ _("tutti.common.askBeforeImportProtocolBenthos.help"));
+
+ int response = JOptionPane.showOptionDialog(
+ getContext().getActionUI(),
+ htmlMessage,
+ _("tutti.common.askBeforeEditProtocolBenthos.title"),
+ JOptionPane.YES_NO_OPTION,
+ JOptionPane.WARNING_MESSAGE,
+ UIManager.getIcon("warning"),
+ new Object[]{_("tutti.option.cleanAndImport"), _("tutti.option.cancel")},
+ _("tutti.option.cancel")
+ );
+
+ switch (response) {
+ case 0:
+
+ if (log.isInfoEnabled()) {
+ log.info("Clean benthos and Import");
+ }
+ TuttiProtocols.removeBadSpecies(badBenthos.keySet(), protocol.getSpecies());
+ break;
+ default:
+
+ // cancel
+ doAction = false;
+ }
+ }
+ return doAction;
+ }
}
Modified: trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java
===================================================================
--- trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-ui-swing/src/main/java/fr/ifremer/tutti/ui/swing/content/protocol/EditProtocolUIHandler.java 2014-01-18 15:13:52 UTC (rev 1503)
@@ -502,6 +502,8 @@
// get species referent taxon
Species species = allReferentSpeciesByTaxonId.get(taxonIdStr);
+ // make sure it exists
+ Preconditions.checkNotNull(species, "Espèce inconnue : "+taxonIdStr);
speciesSet.add(species);
EditProtocolSpeciesRowModel row = EditProtocolSpeciesTableModel.newRow(sampleCategoryModel);
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_en_GB.properties 2014-01-18 15:13:52 UTC (rev 1503)
@@ -68,7 +68,11 @@
tutti.common.askBeforeCloneProtocol.help=
tutti.common.askBeforeEditProtocol.help=
tutti.common.askBeforeEditProtocol.title=
+tutti.common.askBeforeEditProtocolBenthos.title=
+tutti.common.askBeforeEditProtocolSpecies.title=
tutti.common.askBeforeImportProtocol.help=
+tutti.common.askBeforeImportProtocolBenthos.help=
+tutti.common.askBeforeImportProtocolSpecies.help=
tutti.common.askBeforeUpdate.help=
tutti.common.cancel=
tutti.common.cancel.mnemonic=
Modified: trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties
===================================================================
--- trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-18 00:01:01 UTC (rev 1502)
+++ trunk/tutti-ui-swing/src/main/resources/i18n/tutti-ui-swing_fr_FR.properties 2014-01-18 15:13:52 UTC (rev 1503)
@@ -61,7 +61,11 @@
tutti.common.askBeforeCloneProtocol.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas cloner le protocole</li><li><strong>Cloner</strong> pour cloner le protocole en conservant les catégories non connues (elle ne seront pas affichées)</li><li><strong>Nettoyer et Cloner</strong> pour supprimer les catégories non compatibles dans le protocole cloné</li></ul>
tutti.common.askBeforeEditProtocol.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas éditer le protocole</li><li><strong>Éditer</strong> pour éditer le protocole en conservant les catégories non connues (elle ne seront pas affichées)</li><li><strong>Nettoyer et Éditer</strong> pour supprimer les catégories non compatibles et éditer le protocole</li></ul>
tutti.common.askBeforeEditProtocol.title=Catégories non compatibles détectées dans le protocole
+tutti.common.askBeforeEditProtocolBenthos.title=Des espèces (benthos) non reconnues dans le protocole
+tutti.common.askBeforeEditProtocolSpecies.title=Des espèces non reconnues dans le protocole
tutti.common.askBeforeImportProtocol.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Importer</strong> pour importer le protocole en conservant les catégories non connues (elle ne seront pas affichées)</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
+tutti.common.askBeforeImportProtocolBenthos.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
+tutti.common.askBeforeImportProtocolSpecies.help=Que voulez-vous faire?<ul><li><strong>Annuler</strong> pour ne pas importer le protocole</li><li><strong>Nettoyer et Importer</strong> pour supprimer les catégories non compatibles dans le protocole importé</li></ul>
tutti.common.askBeforeUpdate.help=Que voulez-vous faire ?<ul><li><strong>Annuler</strong> pour ne pas effectuer la mise à jour</li><li><strong>OK</strong> pour lancer la mise à jour</li></ul>
tutti.common.cancel=Annuler
tutti.common.cancel.mnemonic=A
1
0
Author: tchemit
Date: 2014-01-18 01:01:01 +0100 (Sat, 18 Jan 2014)
New Revision: 1502
Url: http://forge.codelutin.com/projects/tutti/repository/revisions/1502
Log:
update jre version
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-01-17 16:31:44 UTC (rev 1501)
+++ trunk/pom.xml 2014-01-18 00:01:01 UTC (rev 1502)
@@ -157,7 +157,7 @@
<license.licenseName>gpl_v3</license.licenseName>
<!-- Last JRE version to use -->
- <jreVersion>1.7.45</jreVersion>
+ <jreVersion>1.7.51</jreVersion>
</properties>
1
0