Wao-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
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
February 2014
- 2 participants
- 24 discussions
r1700 - trunk/wao-services/src/main/java/fr/ifremer/wao/services/service
by bleny@users.forge.codelutin.com 28 Feb '14
by bleny@users.forge.codelutin.com 28 Feb '14
28 Feb '14
Author: bleny
Date: 2014-02-28 16:24:50 +0100 (Fri, 28 Feb 2014)
New Revision: 1700
Url: http://codelutin.com/projects/wao/repository/revisions/1700
Log:
import BoatService import methods in a new class, will be merged in ReferentialService next commit
Added:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/LegacyBoatsServiceMethodsToMergeInReferentialService.java
Copied: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/LegacyBoatsServiceMethodsToMergeInReferentialService.java (from rev 1698, tags/wao-3.4.1/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java)
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/LegacyBoatsServiceMethodsToMergeInReferentialService.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/LegacyBoatsServiceMethodsToMergeInReferentialService.java 2014-02-28 15:24:50 UTC (rev 1700)
@@ -0,0 +1,202 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.services.service;
+
+import com.google.common.collect.Maps;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.BoatGroup;
+import fr.ifremer.wao.entity.BoatGroupTopiaDao;
+import fr.ifremer.wao.entity.BoatGroups;
+import fr.ifremer.wao.entity.BoatTopiaDao;
+import fr.ifremer.wao.entity.Fleet;
+import fr.ifremer.wao.entity.FleetTopiaDao;
+import fr.ifremer.wao.entity.Fleets;
+import fr.ifremer.wao.entity.LocationType;
+import fr.ifremer.wao.entity.ShipOwner;
+import fr.ifremer.wao.entity.ShipOwnerTopiaDao;
+import fr.ifremer.wao.entity.ShipOwners;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.entity.TerrestrialLocationTopiaDao;
+import fr.ifremer.wao.services.service.csv.BoatGroupImportModel;
+import fr.ifremer.wao.services.service.csv.BoatImportExportModel;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.csv.Import;
+import org.nuiton.csv.ImportRuntimeException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+import java.util.List;
+import java.util.Map;
+
+
+public class LegacyBoatsServiceMethodsToMergeInReferentialService extends WaoServiceSupport {
+
+ private static final Log log = LogFactory.getLog(LegacyBoatsServiceMethodsToMergeInReferentialService.class);
+
+ /**
+ * Import boats from CSV file, given data will be merged with data already
+ * in the DB. All shipowner or district code mentioned will be added to
+ * the database on the fly
+ */
+ public void importBoats(InputStream input) throws ImportErrorException {
+
+ // Before importing, we need to retrieve all ports that may be mentioned
+ // in the CSV file
+ TerrestrialLocationTopiaDao terrestrialLocationDao =
+ getPersistenceContext().getTerrestrialLocationDao();
+ List<TerrestrialLocation> ports = terrestrialLocationDao.forLocationTypeEquals(LocationType.PORT).findAll();
+ List<TerrestrialLocation> districts = terrestrialLocationDao.forLocationTypeEquals(LocationType.DISTRICT).findAll();
+
+ // Building the model, providing ports
+ BoatImportExportModel model = new BoatImportExportModel(ports, districts);
+ Import<Boat> boatImport = Import.newImport(model, input);
+
+ // Getting some DAOs
+ BoatTopiaDao boatDao = getPersistenceContext().getBoatDao();
+ ShipOwnerTopiaDao shipOwnerDao = getPersistenceContext().getShipOwnerDao();
+ FleetTopiaDao fleetDao = getPersistenceContext().getFleetDao();
+
+ // load data that will be linked to the boat
+ Map<String, ShipOwner> shipOwners =
+ Maps.uniqueIndex(
+ shipOwnerDao.findAll(),
+ ShipOwners.getCode());
+ Map<String, Fleet> fleets =
+ Maps.uniqueIndex(
+ fleetDao.findAll(),
+ Fleets.getCode());
+
+ // now iterating over the lines of the CSV
+ try {
+ for (Boat boat : boatImport) {
+
+ // first each boat read, merge with data already in database or add
+ // all new boats encountered. New district codes or shipowners may be
+ // added on the fly too.
+
+ // first, find and reuse existing ship owner
+ String shipOwnerCode = boat.getShipOwner().getCode();
+ ShipOwner shipOwner = shipOwners.get(shipOwnerCode);
+ if (shipOwner == null) {
+ shipOwner = shipOwnerDao.create(boat.getShipOwner());
+ shipOwners.put(shipOwnerCode, shipOwner);
+ }
+ boat.setShipOwner(shipOwner);
+
+ // secondly, find and reuse fleet
+ String fleetCode = boat.getFleet().getCode();
+ if (fleetCode == null) {
+ boat.setFleet(null);
+ } else {
+ Fleet fleet = fleets.get(fleetCode);
+ if (fleet == null) {
+ fleet = fleetDao.create(boat.getFleet());
+ fleets.put(fleetCode, fleet);
+ }
+ boat.setFleet(fleet);
+ }
+
+ // now boat object is ready
+ Boat existingBoat = boatDao.forImmatriculationEquals(boat.getImmatriculation()).findUniqueOrNull();
+ if (existingBoat == null) {
+ boatDao.create(boat);
+ } else {
+ // copy new values in found entity and save changes
+ existingBoat.setName(boat.getName());
+ existingBoat.setBoatLength(boat.getBoatLength());
+ existingBoat.setBuildYear(boat.getBuildYear());
+ existingBoat.setActive(boat.isActive());
+ existingBoat.setShipOwner(boat.getShipOwner());
+ existingBoat.setDistrict(boat.getDistrict());
+ existingBoat.setPortOfRegistry(boat.getPortOfRegistry());
+ existingBoat.setFleet(boat.getFleet());
+ boatDao.update(existingBoat);
+ }
+
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ getReferentialService().updateReferentialMeta(Boat.class.getName());
+
+ commit();
+
+ }
+
+ public void importBoatGroups(InputStream input) throws ImportErrorException {
+ // Building the model, providing ports
+ BoatGroupImportModel model = new BoatGroupImportModel();
+ Import<Boat> boatImport = Import.newImport(model, input);
+
+ // Getting some DAOs
+ BoatTopiaDao boatDao = getPersistenceContext().getBoatDao();
+ BoatGroupTopiaDao boatGroupDAO = getPersistenceContext().getBoatGroupDao();
+
+ Map<String, BoatGroup> boatGroups =
+ Maps.uniqueIndex(
+ boatGroupDAO.findAll(),
+ BoatGroups.getCode());
+
+ // now iterating over the lines of the CSV
+ try {
+ for (Boat boat : boatImport) {
+
+ // fourth, the group
+ String boatGroupCode = boat.getBoatGroup().getCode();
+ if (boatGroupCode == null) {
+ boat.setBoatGroup(null);
+ } else {
+ BoatGroup boatGroup = boatGroups.get(boatGroupCode);
+ if (boatGroup == null) {
+ boatGroup = boatGroupDAO.create(boat.getBoatGroup());
+ boatGroups.put(boatGroupCode, boatGroup);
+ }
+ boat.setBoatGroup(boatGroup);
+ }
+
+ // now boat object is ready
+ Boat existingBoat = boatDao.forImmatriculationEquals(boat.getImmatriculation()).findUniqueOrNull();
+ if (existingBoat == null) {
+ throw new ImportRuntimeException(I18n.t("wao.import.contact.failure.wrongBoat", String.valueOf(boat.getImmatriculation())));
+ } else {
+ // copy new values in found entity and save changes
+ existingBoat.setBoatGroup(boat.getBoatGroup());
+ boatDao.update(existingBoat);
+ }
+
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ getReferentialService().updateReferentialMeta(Boat.class.getName());
+
+ commit();
+
+ }
+
+}
Property changes on: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/LegacyBoatsServiceMethodsToMergeInReferentialService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:mergeinfo
+ /branches/wao-1.5.x/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java:679-733
1
0
r1699 - trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity
by bleny@users.forge.codelutin.com 28 Feb '14
by bleny@users.forge.codelutin.com 28 Feb '14
28 Feb '14
Author: bleny
Date: 2014-02-28 16:23:55 +0100 (Fri, 28 Feb 2014)
New Revision: 1699
Url: http://codelutin.com/projects/wao/repository/revisions/1699
Log:
add some Guava methods for some entities
Added:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatGroups.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/Fleets.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ShipOwners.java
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatGroups.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatGroups.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatGroups.java 2014-02-28 15:23:55 UTC (rev 1699)
@@ -0,0 +1,18 @@
+package fr.ifremer.wao.entity;
+
+import com.google.common.base.Function;
+
+public class BoatGroups {
+
+ public static Function<BoatGroup, String> getCode() {
+ return new GetCode();
+ }
+
+ protected static class GetCode implements Function<BoatGroup, String> {
+
+ @Override
+ public String apply(BoatGroup input) {
+ return input.getCode();
+ }
+ }
+}
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/Fleets.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/Fleets.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/Fleets.java 2014-02-28 15:23:55 UTC (rev 1699)
@@ -0,0 +1,18 @@
+package fr.ifremer.wao.entity;
+
+import com.google.common.base.Function;
+
+public class Fleets {
+
+ public static Function<Fleet, String> getCode() {
+ return new GetCode();
+ }
+
+ protected static class GetCode implements Function<Fleet, String> {
+
+ @Override
+ public String apply(Fleet input) {
+ return input.getCode();
+ }
+ }
+}
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ShipOwners.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ShipOwners.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ShipOwners.java 2014-02-28 15:23:55 UTC (rev 1699)
@@ -0,0 +1,18 @@
+package fr.ifremer.wao.entity;
+
+import com.google.common.base.Function;
+
+public class ShipOwners {
+
+ public static Function<ShipOwner, String> getCode() {
+ return new GetCode();
+ }
+
+ protected static class GetCode implements Function<ShipOwner, String> {
+
+ @Override
+ public String apply(ShipOwner input) {
+ return input.getCode();
+ }
+ }
+}
1
0
r1698 - in trunk/wao-services: . src/test/java/fr/ifremer/wao/services/service src/test/java/fr/ifremer/wao/services/service/csv
by bleny@users.forge.codelutin.com 28 Feb '14
by bleny@users.forge.codelutin.com 28 Feb '14
28 Feb '14
Author: bleny
Date: 2014-02-28 16:04:53 +0100 (Fri, 28 Feb 2014)
New Revision: 1698
Url: http://codelutin.com/projects/wao/repository/revisions/1698
Log:
reimport test for ObsMerObsVenteSamplingPlanImportExportModel
Added:
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/
trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModelTest.java
Modified:
trunk/wao-services/pom.xml
Modified: trunk/wao-services/pom.xml
===================================================================
--- trunk/wao-services/pom.xml 2014-02-28 14:54:40 UTC (rev 1697)
+++ trunk/wao-services/pom.xml 2014-02-28 15:04:53 UTC (rev 1698)
@@ -112,6 +112,11 @@
<artifactId>xwork-core</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.mockito</groupId>
+ <artifactId>mockito-core</artifactId>
+ </dependency>
+
</dependencies>
<build>
Copied: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModelTest.java (from rev 1697, tags/wao-3.4.1/wao-business/src/test/java/fr/ifremer/wao/io/csv2/models/ObsMerObsVenteSamplingPlanImportExportModelTest.java)
===================================================================
--- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModelTest.java (rev 0)
+++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModelTest.java 2014-02-28 15:04:53 UTC (rev 1698)
@@ -0,0 +1,62 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2012 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+package fr.ifremer.wao.services.service.csv;
+
+import org.junit.Assert;
+import org.junit.Test;
+import org.mockito.Mockito;
+import org.nuiton.util.DateUtil;
+import org.nuiton.util.PeriodDates;
+
+import java.util.Arrays;
+import java.util.List;
+
+public class ObsMerObsVenteSamplingPlanImportExportModelTest {
+
+ /**
+ * Vérifie la bonne détection de la période de temps (en mois) écrite
+ * dans les entêtes.
+ */
+ @Test
+ public void testFindMinMaxMonth() {
+
+ List<String> headers = Arrays.asList("A", "B", "C", "03/2011",
+ "04/2011", "05/2011", "06/2011", "D", "E", "F");
+
+ ObsMerObsVenteSamplingPlanImportExportModel mock =
+ Mockito.mock(ObsMerObsVenteSamplingPlanImportExportModel.class);
+ Mockito.when(mock.findMinMaxMonth(headers)).thenCallRealMethod();
+
+ PeriodDates actualPeriodDates = mock.findMinMaxMonth(headers);
+ PeriodDates expectedPeriodDates = new PeriodDates(DateUtil.createDate(1, 3, 2011), DateUtil.createDate(1, 6, 2011));
+
+ Assert.assertEquals(
+ expectedPeriodDates.getFromDate(),
+ actualPeriodDates.getFromDate());
+ Assert.assertEquals(
+ expectedPeriodDates.getThruDate(),
+ actualPeriodDates.getThruDate());
+ }
+
+}
Property changes on: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModelTest.java
___________________________________________________________________
Added: svn:mergeinfo
+ /branches/wao-1.5.x/wao-business/src/test/java/fr/ifremer/wao/io/csv2/models/ObsMerObsVenteSamplingPlanImportExportModelTest.java:679-733
1
0
r1697 - in trunk/wao-web/src/main: resources/i18n webapp/WEB-INF/decorators
by bleny@users.forge.codelutin.com 28 Feb '14
by bleny@users.forge.codelutin.com 28 Feb '14
28 Feb '14
Author: bleny
Date: 2014-02-28 15:54:40 +0100 (Fri, 28 Feb 2014)
New Revision: 1697
Url: http://codelutin.com/projects/wao/repository/revisions/1697
Log:
enable a way to change user locale
Modified:
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 14:23:50 UTC (rev 1696)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 14:54:40 UTC (rev 1697)
@@ -208,6 +208,7 @@
wao.ui.import.boatsLabel=of boats
wao.ui.import.contactStateMotivesLabel=of the contact state motives
wao.ui.import.description=File %s %s \:
+wao.ui.import.disclaimer=You must upload CSV files using ";" as seperator and UTF-8 as character encoding
wao.ui.import.fishingZoneLabel=of fishing zones
wao.ui.import.fullDescription=Import %s (%s format with UTF-8 characters set)
wao.ui.import.longTitle=CSV Import/Export (UTF-8)
@@ -349,4 +350,3 @@
wao.ui.userList=Users list
wao.ui.userMustAcceptCgu=You must accept the terms of use
wao.ui.validLogin=Valid identifier
-wao.ui.import.disclaimer=You must upload CSV files using ";" as seperator and UTF-8 as character encoding
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 14:23:50 UTC (rev 1696)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 14:54:40 UTC (rev 1697)
@@ -11,7 +11,6 @@
wao.import.terrestrialDivisions.success=Import des unités d'observation réalisé avec succès
wao.import.terrestrialLocations.prompt=Import des lieux terrestres
wao.import.terrestrialLocations.success=Import des lieux terrestres réalisé avec succès
-wao.ui.import.disclaimer=Veuillez utiliser des fichiers CSV utilisant « ; » comme séparateur et UTF-8 comme encodage de caractères.
wao.ui.acceptCgu=J'ai lu et j'accepte les conditions d'utilisation
wao.ui.action.acceptContact=Valider le contact
wao.ui.action.add=Ajouter
@@ -209,6 +208,7 @@
wao.ui.import.boatsLabel=des navires
wao.ui.import.contactStateMotivesLabel=des motifs de refus
wao.ui.import.description=Fichier %s %s \:
+wao.ui.import.disclaimer=Veuillez utiliser des fichiers CSV utilisant « ; » comme séparateur et UTF-8 comme encodage de caractères.
wao.ui.import.fishingZoneLabel=des zones de pêches
wao.ui.import.fullDescription=Import %s (format %s avec encodage UTF-8)
wao.ui.import.longTitle=Import/Export CSV (UTF-8)
Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-02-28 14:23:50 UTC (rev 1696)
+++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-02-28 14:54:40 UTC (rev 1697)
@@ -28,31 +28,31 @@
<ul class="nav">
<li class="active">
<s:url action="news" id="newsUrl" />
- <s:a href="%{newsUrl}" title="Consulter les actualités">
+ <s:a href="%{newsUrl}">
<s:property value="getText('wao.ui.page.Index.title')" />
</s:a>
</li>
<li>
<s:url action="sampling-plan" id="samplingPlanUrl" />
- <s:a href="%{samplingPlanUrl}" title="Consulter le plan d'échantillonnage">
+ <s:a href="%{samplingPlanUrl}">
<s:property value="getText('wao.ui.page.SamplingPlan.title')" />
</s:a>
</li>
<li>
<s:url action="boats" id="boatsUrl" />
- <s:a href="%{boatsUrl}" title="Consulter le référentiel de navires et créer des contacts">
+ <s:a href="%{boatsUrl}">
<s:property value="getText('wao.ui.page.Boats.title')" />
</s:a>
</li>
<li>
<s:url action="contacts" id="contactsUrl" />
- <s:a href="%{contactsUrl}" title="Consulter les contacts">
+ <s:a href="%{contactsUrl}">
<s:property value="getText('wao.ui.page.Contacts.title')" />
</s:a>
</li>
<li>
<s:url action="synthesis" id="synthesisUrl" />
- <s:a href="%{synthesisUrl}" title="Consulter les synthèses">
+ <s:a href="%{synthesisUrl}">
<s:property value="getText('wao.ui.page.Synthesis.title')" />
</s:a>
</li>
@@ -79,7 +79,19 @@
</a>
<ul class="dropdown-menu">
<li>
- <a href="#"><i class="icon-flag"></i> <s:property value="getText('wao.ui.action.changeLocale')" /></a>
+ <s:url id="changeLocaleUrl">
+ <s:param name="request_locale">
+ <s:if test="\"fr\".equals(locale.toLanguageTag())">
+ en
+ </s:if>
+ <s:else>
+ fr
+ </s:else>
+ </s:param>
+ </s:url>
+ <s:a href="%{changeLocaleUrl}">
+ <i class="icon-flag"></i> <s:property value="getText('wao.ui.action.changeLocale')" />
+ </s:a>
</li>
<li>
<a href="#"><i class="icon-user"></i> <s:property value="getText('wao.ui.page.UserProfileForm.title')" /></a>
1
0
28 Feb '14
Author: bleny
Date: 2014-02-28 15:23:50 +0100 (Fri, 28 Feb 2014)
New Revision: 1696
Url: http://codelutin.com/projects/wao/repository/revisions/1696
Log:
refs #4482 introduce import for fishing zones, terrestrial locations, terrestrial divisions, obsdeb codes, contact state motives, DCF codes, show referential states
Added:
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionTopiaDao.java
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ImportErrorException.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialService.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialState.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/AbstractImportReferentialAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportContactStateMotivesAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportFishingZonesAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportObsdebCodesAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialDivisionsAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialLocationsAction.java
trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ReferentialManagementAction.java
trunk/wao-web/src/main/webapp/WEB-INF/content/administration/
trunk/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp
Modified:
trunk/pom.xml
trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/InitWaoService.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
trunk/wao-web/src/main/webapp/WEB-INF/web.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/pom.xml 2014-02-28 14:23:50 UTC (rev 1696)
@@ -114,7 +114,7 @@
<nuitonWebVersion>1.15-SNAPSHOT</nuitonWebVersion>
<nuitonI18nVersion>3.0</nuitonI18nVersion>
<nuitonConfigVersion>3.0-alpha-1</nuitonConfigVersion>
- <nuitonCsvVersion>3.0-alpha-1</nuitonCsvVersion>
+ <nuitonCsvVersion>3.0-alpha-3</nuitonCsvVersion>
<nuitonUtilsVersion>3.0-SNAPSHOT</nuitonUtilsVersion>
<eugeneVersion>2.7.3</eugeneVersion>
<topiaVersion>3.0-SNAPSHOT</topiaVersion>
Modified: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -49,4 +49,17 @@
public String getShortCode() {
return shortCode;
}
+
+ public boolean isObsMer() {
+ return OBSMER == this;
+ }
+
+ public boolean isObsVente() {
+ return OBSVENTE == this;
+ }
+
+ public boolean isObsDeb() {
+ return OBSDEB == this;
+ }
+
}
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionTopiaDao.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionTopiaDao.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialDivisionTopiaDao.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,14 @@
+package fr.ifremer.wao.entity;
+
+import java.util.Collections;
+
+public class TerrestrialDivisionTopiaDao extends AbstractTerrestrialDivisionTopiaDao<TerrestrialDivision> {
+
+ public long countDistinctTerrestrialDivision() {
+ String hql = " select distinct td.code"
+ + " " + newFromClause("td")
+ + " where td.code is not null";
+ return count(hql, Collections.<String, Object>emptyMap());
+ }
+
+}
Added: trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java
===================================================================
--- trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java (rev 0)
+++ trunk/wao-persistence/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationTopiaDao.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,21 @@
+package fr.ifremer.wao.entity;
+
+import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep;
+
+import java.util.Collections;
+import java.util.List;
+
+public class TerrestrialLocationTopiaDao extends AbstractTerrestrialLocationTopiaDao<TerrestrialLocation> {
+
+ public List<String> findAllDistinctDistrictCodesUsedInLocations() {
+ String hql = " select distinct tl.districtCode"
+ + " " + newFromClause("tl")
+ + " where tl." + TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL + " is not null";
+ return findAll(hql, Collections.<String, Object>emptyMap());
+ }
+
+ public TopiaQueryBuilderAddCriteriaOrRunQueryStep<TerrestrialLocation> forLocationTypeEquals(LocationType locationType) {
+ return forLocationTypeOrdinalEquals(locationType.ordinal());
+ }
+
+}
Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ImportErrorException.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ImportErrorException.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ImportErrorException.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,23 @@
+package fr.ifremer.wao.services.service;
+
+import fr.ifremer.wao.WaoException;
+import org.nuiton.csv.ImportRuntimeException;
+import org.nuiton.i18n.I18n;
+
+/**
+ * Une erreur est survenue lors d'un import CSV.
+ */
+public class ImportErrorException extends WaoException {
+
+ protected static final String MESSAGE = I18n.t("wao.import.failure");
+
+ public ImportErrorException(ImportRuntimeException e) {
+ super(e);
+ }
+
+ @Override
+ public String getMessage() {
+ return MESSAGE + " " + getCause().getMessage();
+ }
+
+}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/InitWaoService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/InitWaoService.java 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/InitWaoService.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -4,6 +4,10 @@
public void init() {
+ ReferentialService referentialService = getReferentialService();
+
+ referentialService.initialImport();
+
}
}
Copied: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialService.java (from rev 1687, tags/wao-3.4.1/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java)
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialService.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialService.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,824 @@
+/*
+ * #%L
+ * Wao :: Business
+ *
+ * $Id$
+ * $HeadURL$
+ * %%
+ * Copyright (C) 2009 - 2010 Ifremer
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Affero 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 Affero General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ * #L%
+ */
+
+package fr.ifremer.wao.services.service;
+
+import com.google.common.base.Preconditions;
+import com.google.common.collect.ImmutableSet;
+import fr.ifremer.wao.WaoTechnicalException;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.BoatGroup;
+import fr.ifremer.wao.entity.ContactState;
+import fr.ifremer.wao.entity.ContactStateMotif;
+import fr.ifremer.wao.entity.ContactStateMotifTopiaDao;
+import fr.ifremer.wao.entity.DCF5Code;
+import fr.ifremer.wao.entity.FishingGearDCF;
+import fr.ifremer.wao.entity.FishingGearDCFTopiaDao;
+import fr.ifremer.wao.entity.FishingZone;
+import fr.ifremer.wao.entity.FishingZoneTopiaDao;
+import fr.ifremer.wao.entity.LocationType;
+import fr.ifremer.wao.entity.ObsDebCode;
+import fr.ifremer.wao.entity.ObsDebCodeDetails;
+import fr.ifremer.wao.entity.ObsDebCodeDetailsImpl;
+import fr.ifremer.wao.entity.ObsDebCodeDetailsTopiaDao;
+import fr.ifremer.wao.entity.ObsDebCodeImpl;
+import fr.ifremer.wao.entity.ObsDebCodeTopiaDao;
+import fr.ifremer.wao.entity.ObsProgram;
+import fr.ifremer.wao.entity.ReferentialMeta;
+import fr.ifremer.wao.entity.ReferentialMetaImpl;
+import fr.ifremer.wao.entity.ReferentialMetaTopiaDao;
+import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.SampleRowTopiaDao;
+import fr.ifremer.wao.entity.TargetSpeciesDCF;
+import fr.ifremer.wao.entity.TargetSpeciesDCFTopiaDao;
+import fr.ifremer.wao.entity.TerrestrialDivision;
+import fr.ifremer.wao.entity.TerrestrialDivisionImpl;
+import fr.ifremer.wao.entity.TerrestrialDivisionTopiaDao;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.entity.TerrestrialLocationImpl;
+import fr.ifremer.wao.entity.TerrestrialLocationTopiaDao;
+import fr.ifremer.wao.services.service.csv.ContactStateMotivesImportModel;
+import fr.ifremer.wao.services.service.csv.FishingZoneImportModel;
+import fr.ifremer.wao.services.service.csv.RawObsDebCode;
+import fr.ifremer.wao.services.service.csv.RawObsDebCodesImportModel;
+import fr.ifremer.wao.services.service.csv.TerrestrialDivisionImportModel;
+import fr.ifremer.wao.services.service.csv.TerrestrialLocationImportModel;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang3.ArrayUtils;
+import org.apache.commons.lang3.StringUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.csv.Import;
+import org.nuiton.csv.ImportModel;
+import org.nuiton.csv.ImportRuntimeException;
+import org.nuiton.i18n.I18n;
+import org.nuiton.topia.persistence.TopiaDao;
+import org.nuiton.topia.persistence.TopiaEntity;
+import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep;
+import org.nuiton.util.beans.Binder;
+import org.nuiton.util.beans.BinderFactory;
+
+import java.io.InputStream;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Service permettant la gestion des différents référentiels.
+ */
+public class ReferentialService extends WaoServiceSupport {
+
+ private static final Log log = LogFactory.getLog(ReferentialService.class);
+
+ /** Pour chaque programme, les référentiels utilisés par ce programme. */
+ protected static final Map<ObsProgram, List<String>> PER_PROGRAM_REFERENTIAL;
+
+ static {
+ Map<ObsProgram, List<String>> perProgramReferential = new HashMap<>();
+
+ perProgramReferential.put(ObsProgram.OBSMER, Arrays.asList(
+ FishingZone.class.getName(),
+ ContactStateMotif.class.getName(),
+ TerrestrialLocation.class.getName(),
+ Boat.class.getName()));
+
+ perProgramReferential.put(ObsProgram.OBSVENTE, Arrays.asList(
+ FishingZone.class.getName(),
+ TerrestrialLocation.class.getName(),
+ Boat.class.getName()));
+
+ perProgramReferential.put(ObsProgram.OBSDEB, Arrays.asList(
+ FishingZone.class.getName(),
+ TerrestrialLocation.class.getName(),
+ TerrestrialDivision.class.getName(),
+ ObsDebCode.class.getName(),
+ Boat.class.getName(),
+ BoatGroup.class.getName()));
+
+ PER_PROGRAM_REFERENTIAL = Collections.unmodifiableMap(perProgramReferential);
+ }
+
+ /**
+ * Permet de maintenir à jour les informations sur les référentiels. À
+ * chaque import de référentiel par Wao, il faut appeler cette méthode en
+ * indiquant quel référentiel a été mis à jour.
+ *
+ * Cela aura pour effet de sauvegarder la date de dernière mise à jour du
+ * référentiel lorsqu'il faudra l'indiquer aux administrateurs plus tard.
+ *
+ * @param entityClassFqn le FQN de la classe-entité du référentiel modifié.
+ * Il doit être parmi les classe listées dans #PER_PROGRAM_REFERENTIAL
+ */
+ protected void updateReferentialMeta(String entityClassFqn) {
+
+ Class<?> entityClass;
+ try {
+ entityClass = getClass().getClassLoader().loadClass(entityClassFqn);
+ } catch (ClassNotFoundException e) {
+ throw new IllegalArgumentException(entityClassFqn);
+ }
+
+ if ( ! TopiaEntity.class.isAssignableFrom(entityClass)) {
+ throw new IllegalArgumentException("il faut passer le FQN d'une classe d'entité");
+ }
+
+ ReferentialMetaTopiaDao dao = getPersistenceContext().getReferentialMetaDao();
+ ReferentialMeta referentialMeta = dao.findByEntityClassFqn(entityClassFqn);
+
+ if (referentialMeta == null) {
+ referentialMeta = dao.create(
+ ReferentialMeta.PROPERTY_ENTITY_CLASS_FQN, entityClassFqn);
+ }
+
+ referentialMeta.setLastUpdate(getNow());
+
+ dao.update(referentialMeta);
+
+ }
+
+ /**
+ * Import des zones de pêche.
+ */
+ public void importFishingZones(InputStream input) throws ImportErrorException {
+
+ FishingZoneImportModel model = new FishingZoneImportModel();
+ Import<FishingZone> fishingZoneImport = Import.newImport(model, input);
+
+ FishingZoneTopiaDao dao = getPersistenceContext().getFishingZoneDao();
+
+ try {
+ for (FishingZone fishingZone : fishingZoneImport) {
+
+ FishingZone existingFishingZone =
+ dao.forDistrictCodeEquals(fishingZone.getDistrictCode()).findUniqueOrNull();
+
+ if (existingFishingZone == null) {
+ dao.create(fishingZone);
+ } else {
+ existingFishingZone.setFacadeName(fishingZone.getFacadeName());
+ existingFishingZone.setSectorName(fishingZone.getSectorName());
+ existingFishingZone.setLatitude(fishingZone.getLatitude());
+ existingFishingZone.setLongitude(fishingZone.getLongitude());
+ dao.update(existingFishingZone);
+ }
+
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ updateReferentialMeta(FishingZone.class.getName());
+
+ commit();
+
+ }
+
+ /**
+ * Import des lieux terrestres (ports et criées).
+ */
+ public void importTerrestrialLocations(InputStream input) throws ImportErrorException {
+
+ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao();
+
+ // first, we will read the CSV file, line by line
+ // at, each line, we will look if the location is already in database
+ // if yes, some attribute may have change, so we use a binder to copy all field
+ // if no, add the new location in database
+
+ ImportModel<TerrestrialLocation> model = new TerrestrialLocationImportModel();
+ Import<TerrestrialLocation> terrestrialLocationImport = Import.newImport(model, input);
+
+ // we will need a binder, to copy location for an update
+ Binder<TerrestrialLocation, TerrestrialLocation> locationBinder =
+ BinderFactory.newBinder(TerrestrialLocation.class);
+ // some counts for logging purpose
+ int locationAdded = 0, locationUpdated = 0;
+
+ // for each line of the CSV
+ try {
+ Iterator<TerrestrialLocation> locationIterator = terrestrialLocationImport.iterator();
+ while (locationIterator.hasNext()) {
+ // location is a line of the CSV
+ TerrestrialLocation location = locationIterator.next();
+
+ // look if already exists and update existing or add new
+ TerrestrialLocation existingLocation = dao.forProperties(
+ TerrestrialLocation.PROPERTY_CODE, location.getCode(),
+ TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, location.getLocationTypeOrdinal()).findUniqueOrNull();
+ if (existingLocation == null) {
+ dao.create(location);
+ locationAdded += 1;
+ } else {
+ locationBinder.copyExcluding(location, existingLocation,TopiaEntity.PROPERTY_TOPIA_ID,
+ TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION);
+ dao.update(existingLocation);
+ locationUpdated += 1;
+ }
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ // now, all the CSV file has been read and dumped into database,
+ // Now, we need to update database by adding any missing district
+ // Each location has a district (identified by a district code)
+ // We must find all the distinct district ids and check that
+ // we have an entity representing it. In database a disctrict can
+ // be distinguished from a location by having it's
+ // locationTypeOrdinal null.
+ List<String> districtCodes = dao.findAllDistinctDistrictCodesUsedInLocations();
+
+ // a binder, needed for update
+ Binder<TerrestrialLocation, TerrestrialLocation> districtBinder =
+ BinderFactory.newBinder(TerrestrialLocation.class);
+ // counts for logging
+ int districtAdded = 0, districtUpdated = 0;
+ int regionAdded = 0, regionUpdated = 0;
+
+ for (String districtCode : districtCodes) { // for each district code found
+
+ // let's find a location which is in this particular district
+ TerrestrialLocation location = dao.forDistrictCodeEquals(districtCode).findAny();
+
+ // create the district by copying region, country etc. from location
+ TerrestrialLocation district = new TerrestrialLocationImpl();
+ districtBinder.copyExcluding(location, district, TerrestrialLocation.PROPERTY_NAME,
+ TerrestrialLocation.PROPERTY_CODE, TerrestrialLocation.PROPERTY_PORT_CODE,
+ TerrestrialLocation.PROPERTY_PORT_NAME, TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL,
+ TopiaEntity.PROPERTY_TOPIA_ID, TopiaEntity.PROPERTY_TOPIA_CREATE_DATE,
+ TerrestrialLocation.PROPERTY_TOPIA_VERSION);
+ district.setLocationType(LocationType.DISTRICT);
+
+ // A particular case, some location (not in France) has no
+ // district (district code null), so we must add a district
+ // for them
+ if (StringUtils.isEmpty(district.getDistrictCode())) {
+ // distinct will select a random place with no district code
+ // it can be in England, Sweden or whatever. It's bad for us
+ // because we don't want some data not to be filtered when looking
+ // for England while we want to filter on all country except France
+ district.setCountryCode(null);
+ district.setCountryName("Hors France");
+ district.setSeaboardCode(null);
+ district.setSeaboardName(null);
+ district.setCoastFAOCode(null);
+ district.setCoastFAOName(null);
+ district.setDistrictCode(null);
+ }
+
+ // now, we have the 'district' object we want to have in the
+ // database. Now let's add it if not already in or update
+ // it already in
+ TerrestrialLocation existingDistrict =
+ dao.forProperties(
+ TerrestrialLocation.PROPERTY_DISTRICT_CODE, district.getDistrictCode(),
+ TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.DISTRICT.ordinal()).findUniqueOrNull();
+ if (existingDistrict == null) {
+ dao.create(district);
+ districtAdded += 1;
+ } else {
+ locationBinder.copyExcluding(district, existingDistrict, TopiaEntity.PROPERTY_TOPIA_ID,
+ TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION);
+ dao.update(existingDistrict);
+ districtUpdated += 1;
+ }
+
+ // creating a region object for this district
+ TerrestrialLocation region = dao.newInstance();
+ locationBinder.copyExcluding(district, region, TopiaEntity.PROPERTY_TOPIA_ID,
+ TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION,
+ TerrestrialLocation.PROPERTY_DISTRICT_CODE, TerrestrialLocation.PROPERTY_DISTRICT_NAME,
+ TerrestrialLocation.PROPERTY_DEPARTMENT_CODE, TerrestrialLocation.PROPERTY_DEPARTMENT_NAME,
+ TerrestrialLocation.PROPERTY_SUB_REGION_IFREMER_CODE, TerrestrialLocation.PROPERTY_SUB_REGION_IFREMER_NAME);
+ region.setLocationType(LocationType.REGION);
+
+ // prevent to deal with case "Hors France"
+ if (region.getRegionIfremerCode() != null) {
+
+ // try to find it if it's already in DB
+ TerrestrialLocation existingRegion = dao.forProperties(
+ TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE, region.getRegionIfremerCode(),
+ TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.REGION.ordinal()).findUniqueOrNull();
+
+ // create or update
+ if (existingRegion == null) {
+ dao.create(region);
+ regionAdded += 1;
+ } else {
+ locationBinder.copyExcluding(region, existingRegion, TopiaEntity.PROPERTY_TOPIA_ID,
+ TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION);
+ dao.update(existingRegion);
+ regionUpdated += 1;
+ }
+ }
+ }
+
+ if (log.isInfoEnabled()) {
+ log.info(locationAdded + " terrestrial locations added, " + locationUpdated + " updated");
+ log.info(districtAdded + " terrestrial district added, " + districtUpdated + " updated");
+ log.info(regionAdded + " terrestrial region added, " + regionUpdated + " updated");
+ }
+
+ updateReferentialMeta(TerrestrialLocation.class.getName());
+
+ commit();
+
+ }
+
+ /** Find ports and auctions in a given district */
+ public List<TerrestrialLocation> getAllPortsAndAuctions(TerrestrialLocation district) {
+
+ Preconditions.checkArgument(district.isDistrict(), "terrestrial location " + district + " is not district");
+
+ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao();
+
+ TopiaQueryBuilderAddCriteriaOrRunQueryStep<TerrestrialLocation> query = dao.newQueryBuilder();
+
+ query.addIn(TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, ImmutableSet.of(LocationType.PORT.ordinal(), LocationType.AUCTION.ordinal()));
+
+ query.addEquals(TerrestrialLocation.PROPERTY_DISTRICT_CODE, district.getDistrictCode());
+
+ List<TerrestrialLocation> result = query.findAll();
+
+ return result;
+
+ }
+
+ public List<TerrestrialLocation> executeGetAllRegionIfremers() {
+
+ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao();
+
+ List<TerrestrialLocation> allRegionIfremers = dao.forLocationTypeOrdinalEquals(LocationType.REGION.ordinal()).findAll();
+
+ return allRegionIfremers;
+
+ }
+
+ public TerrestrialLocation getTerrestrialDistrict(String districtCode) {
+
+ Preconditions.checkArgument(StringUtils.isNotBlank(districtCode));
+
+ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao();
+
+ TerrestrialLocation terrestrialDistrict = dao.forProperties(
+ TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.DISTRICT.ordinal(),
+ TerrestrialLocation.PROPERTY_DISTRICT_CODE, districtCode).findUnique();
+
+ return terrestrialDistrict;
+
+ }
+
+ /**
+ * @param contactState if null, return motifs for all contact states
+ */
+ public List<ContactStateMotif> getAllContactStateMotifs(ContactState contactState) throws Exception {
+
+ ContactStateMotifTopiaDao dao = getPersistenceContext().getContactStateMotifDao();
+
+ List<ContactStateMotif> result;
+ if (contactState == null) {
+ result = dao.findAll();
+ } else {
+ ContactState substituteState = ContactState.getSubstituteForMotif(contactState);
+ result = dao.forContactStateOrdinalEquals(substituteState.ordinal()).findAll();
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug(result.size() + " motifs found for state " + contactState);
+ }
+
+ return result;
+
+ }
+
+ public void importContactStateMotives(InputStream input) throws ImportErrorException {
+
+ ImportModel<ContactStateMotif> model = new ContactStateMotivesImportModel();
+ Import<ContactStateMotif> motivesImport = Import.newImport(model, input);
+
+ ContactStateMotifTopiaDao dao = getPersistenceContext().getContactStateMotifDao();
+
+ try {
+ for (ContactStateMotif motif : motivesImport) {
+ ContactStateMotif existingMotif = dao.forCodeEquals(motif.getCode()).findUniqueOrNull();
+ if (existingMotif == null) {
+ dao.create(motif);
+ } else {
+ existingMotif.setName(motif.getName());
+ existingMotif.setContactState(motif.getContactState());
+ existingMotif.setColor(motif.getColor());
+ dao.update(existingMotif);
+ }
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ updateReferentialMeta(ContactStateMotif.class.getName());
+
+ commit();
+
+ }
+
+ public void importTerrestrialDivisions(InputStream input) throws ImportErrorException {
+
+ TerrestrialLocationTopiaDao terrestrialLocationDao = getPersistenceContext().getTerrestrialLocationDao();
+
+ // let's find all ports in terrestrial location reference
+ List<TerrestrialLocation> ports = terrestrialLocationDao.forLocationTypeEquals(LocationType.PORT).findAll();
+ List<TerrestrialLocation> regions = terrestrialLocationDao.forLocationTypeEquals(LocationType.REGION).findAll();
+
+ if (log.isDebugEnabled()) {
+ log.debug(ports.size() + " ports, " + regions.size() + " regions");
+ }
+
+ // the import itself
+ ImportModel<TerrestrialDivision> importModel = new TerrestrialDivisionImportModel(ports, regions);
+ Import<TerrestrialDivision> terrestrialDivisionImport = Import.newImport(importModel, input);
+
+ TerrestrialDivisionTopiaDao dao = getPersistenceContext().getTerrestrialDivisionDao();
+
+ Binder<TerrestrialDivision, TerrestrialDivision> terrestrialDivisionBinder = BinderFactory.newBinder(TerrestrialDivision.class);
+
+ try {
+ for (TerrestrialDivision terrestrialDivision : terrestrialDivisionImport) {
+
+ TerrestrialDivision existingTerrestrialDivision = dao.forCodeEquals(terrestrialDivision.getCode()).findUniqueOrNull();
+ if (existingTerrestrialDivision == null) {
+ // add as new
+ dao.create(terrestrialDivision);
+ } else {
+ // update the old one
+ terrestrialDivisionBinder.copyExcluding(terrestrialDivision, existingTerrestrialDivision,
+ TopiaEntity.PROPERTY_TOPIA_ID, TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION);
+ dao.update(existingTerrestrialDivision);
+ }
+
+ TerrestrialDivision observationUnit = new TerrestrialDivisionImpl();
+ terrestrialDivisionBinder.copyExcluding(
+ terrestrialDivision, observationUnit,
+ TopiaEntity.PROPERTY_TOPIA_ID, TopiaEntity.PROPERTY_TOPIA_CREATE_DATE,
+ TopiaEntity.PROPERTY_TOPIA_VERSION,
+ TerrestrialDivision.PROPERTY_CODE,
+ TerrestrialDivision.PROPERTY_PORT);
+
+ TerrestrialDivision existingObservationUnit = dao.forProperties(
+ TerrestrialDivision.PROPERTY_CODE, observationUnit.getCode(),
+ TerrestrialDivision.PROPERTY_PORT, observationUnit.getPort(),
+ TerrestrialDivision.PROPERTY_REGION_IFREMER, observationUnit.getRegionIfremer(),
+ TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE, observationUnit.getObservationUnitCode()).findUniqueOrNull();
+
+ if (existingObservationUnit == null) {
+ dao.create(observationUnit);
+ } else {
+ terrestrialDivisionBinder.copyExcluding(
+ observationUnit, existingObservationUnit, TopiaEntity.PROPERTY_TOPIA_ID,
+ TopiaEntity.PROPERTY_TOPIA_CREATE_DATE, TopiaEntity.PROPERTY_TOPIA_VERSION);
+ dao.update(existingObservationUnit);
+ }
+
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ if (log.isDebugEnabled()) {
+ log.debug(dao.count() + " terrestrial divisions in database");
+ }
+
+ updateReferentialMeta(TerrestrialDivision.class.getName());
+
+ commit();
+
+ }
+
+ public List<TerrestrialDivision> getAllObservationUnits() {
+
+ TerrestrialDivisionTopiaDao dao = getPersistenceContext().getTerrestrialDivisionDao();
+
+ // having code null make TerrestrialDivision.isObservationUnit
+ List<TerrestrialDivision> observationUnits = dao.forCodeEquals(null).findAll();
+
+ if (log.isDebugEnabled()) {
+ log.debug("will return " + observationUnits.size() + " observation units");
+ }
+
+ return observationUnits;
+
+ }
+
+ /**
+ * @param region may be null, and all ports will be returned
+ * @returns all the ports that are in a region
+ */
+ public List<TerrestrialLocation> getAllPorts(TerrestrialLocation region) {
+
+ Preconditions.checkArgument(region == null || region.isRegion(), region + " is not a region");
+
+ TerrestrialLocationTopiaDao dao = getPersistenceContext().getTerrestrialLocationDao();
+
+ Map<String, Object> properties = new HashMap<>();
+
+ // we are looking for ports only
+ properties.put(TerrestrialLocation.PROPERTY_LOCATION_TYPE_ORDINAL, LocationType.PORT.ordinal());
+
+ // ports in a specific region
+ properties.put(TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE, region.getRegionIfremerCode());
+
+ // run query
+ List<TerrestrialLocation> ports = dao.forProperties(properties).findAll();
+
+ return ports;
+
+ }
+
+ public void importObsDebCodes(InputStream input) throws ImportErrorException {
+
+ TerrestrialLocationTopiaDao terrestrialLocationDao =
+ getPersistenceContext().getTerrestrialLocationDao();
+
+ List<TerrestrialLocation> allRegions =
+ terrestrialLocationDao.forLocationTypeEquals(LocationType.REGION).findAll();
+
+ ObsDebCodeTopiaDao dao = getPersistenceContext().getObsDebCodeDao();
+ ObsDebCodeDetailsTopiaDao obsDebCodeDetailsDAO = getPersistenceContext().getObsDebCodeDetailsDao();
+
+ ImportModel<RawObsDebCode> model = new RawObsDebCodesImportModel(allRegions);
+ Import<RawObsDebCode> rawObsDebCodeImport = Import.newImport(model, input);
+
+ // start reading the CSV file line by line
+ try {
+ for (RawObsDebCode rawObsDebCode : rawObsDebCodeImport) {
+
+ // try to find an already existing entity to update
+ // or create one
+ ObsDebCode existingCode = dao.forCodeEquals(rawObsDebCode.getCode()).findUniqueOrNull();
+ if (existingCode == null) {
+ existingCode = new ObsDebCodeImpl();
+ existingCode.setCode(rawObsDebCode.getCode());
+ existingCode = dao.create(existingCode);
+ }
+ ObsDebCodeDetails existingDetails = null;
+ if (existingCode.getObsDebCodeDetails() != null) {
+ for (ObsDebCodeDetails obsDebCodeDetails : existingCode.getObsDebCodeDetails()) {
+ if (rawObsDebCode.getRegion().getRegionIfremerCode().equals(obsDebCodeDetails.getRegion().getRegionIfremerCode())) {
+ existingDetails = obsDebCodeDetails;
+ }
+ }
+ }
+
+ if (existingDetails == null) {
+ existingDetails = new ObsDebCodeDetailsImpl();
+ existingDetails.setLabel(rawObsDebCode.getLabel());
+ existingDetails.setRegion(rawObsDebCode.getRegion());
+ existingCode.addObsDebCodeDetails(existingDetails);
+ obsDebCodeDetailsDAO.create(existingDetails);
+ } else {
+ existingDetails.setLabel(rawObsDebCode.getLabel());
+ obsDebCodeDetailsDAO.update(existingDetails);
+ }
+
+ dao.update(existingCode);
+
+ }
+ } catch (ImportRuntimeException e) {
+ throw new ImportErrorException(e);
+ }
+
+ updateReferentialMeta(ObsDebCode.class.getName());
+
+ commit();
+
+ }
+
+ protected void initialDCF5CodesImport() {
+
+ FishingGearDCFTopiaDao fishingGearDCFDao = getPersistenceContext().getFishingGearDCFDao();
+ TargetSpeciesDCFTopiaDao targetSpeciesDCFDao = getPersistenceContext().getTargetSpeciesDCFDao();
+
+ final String[] gearCodesBase = {"DRB", "DRH",
+ "FPN", "FPO", "FSN", "FWR", "FYK", "GES", "GNC",
+ "GND", "GNF", "GNS", "GTN", "GTR", "HAR", "HMD", "HMP",
+ "LA", "LHM", "LHP", "LLD", "LLS", "LNB", "LNP", "LNS",
+ "LTL", "LX", "OTB", "OTM", "OTT", "PS",
+ "PTB", "PTM", "RG", "SB", "SDN", "SPR", "SSC", "SV",
+ "TBB", "TBN", "TBS", "TMS"};
+
+ final String[] speciesCodesBase = {"ALG", "ANA", "CAT", "CRU",
+ "DEF", "DWS", "LPF", "MOL", "SPF", "FIF"};
+
+ long nbCodes = fishingGearDCFDao.count() + targetSpeciesDCFDao.count();
+
+ if (nbCodes == 0) {
+
+ if (log.isInfoEnabled()) {
+ log.info("no DCF in database, mass import");
+ }
+
+ for (String code : gearCodesBase) {
+ fishingGearDCFDao.create(FishingGearDCF.PROPERTY_CODE, code);
+ }
+
+ for (String code : speciesCodesBase) {
+ targetSpeciesDCFDao.create(TargetSpeciesDCF.PROPERTY_CODE, code);
+ }
+
+ } else {
+
+ if (log.isInfoEnabled()) {
+ log.info("some DCF in database, import only missing ones");
+ }
+
+ for (String code : gearCodesBase) {
+ FishingGearDCF fishingGearDCF = fishingGearDCFDao.forCodeEquals(code).findUniqueOrNull();
+ if (fishingGearDCF == null) {
+ log.info("add missing fishing gear DCF: '" + code + "'");
+ fishingGearDCFDao.create(FishingGearDCF.PROPERTY_CODE, code);
+ }
+ }
+
+ for (String code : speciesCodesBase) {
+ TargetSpeciesDCF targetSpeciesDCF = targetSpeciesDCFDao.forCodeEquals(code).findUniqueOrNull();
+ if (targetSpeciesDCF == null) {
+ log.info("add missing target species DCF: '" + code + "'");
+ targetSpeciesDCFDao.create(TargetSpeciesDCF.PROPERTY_CODE, code);
+ }
+ }
+
+ // on supprime ce qu'il y a en trop
+ for (FishingGearDCF fishingGearDCF : fishingGearDCFDao.findAll()) {
+ if ( ! ArrayUtils.contains(gearCodesBase, fishingGearDCF.getCode())) {
+ List<DCF5Code> usages = fishingGearDCFDao.findUsages(DCF5Code.class, fishingGearDCF);
+ if (usages.isEmpty()) {
+ log.info("will delete code " + fishingGearDCF);
+ fishingGearDCFDao.delete(fishingGearDCF);
+ } else {
+ log.warn("will not delete " + fishingGearDCF);
+ SampleRowTopiaDao sampleRowDao = getPersistenceContext().getSampleRowDao();
+ for (DCF5Code usage : usages) {
+ List<SampleRow> sampleRows = sampleRowDao.fordCF5CodeContains(usage).findAll();
+ for (SampleRow sampleRow : sampleRows) {
+ log.warn("sampleRow " + sampleRow.getCode() + " use " + usage);
+ }
+ }
+ }
+ }
+ }
+
+ for (TargetSpeciesDCF targetSpeciesDCF : targetSpeciesDCFDao.findAll()) {
+ if ( ! ArrayUtils.contains(speciesCodesBase, targetSpeciesDCF.getCode())) {
+ List<DCF5Code> usages = targetSpeciesDCFDao.findUsages(DCF5Code.class, targetSpeciesDCF);
+ if (usages.isEmpty()) {
+ log.info("will delete code " + targetSpeciesDCF);
+ targetSpeciesDCFDao.delete(targetSpeciesDCF);
+ } else {
+ log.warn("will not delete " + targetSpeciesDCF);
+ }
+ }
+ }
+ }
+
+ if (log.isInfoEnabled()) {
+ nbCodes = fishingGearDCFDao.count() + targetSpeciesDCFDao.count();
+ log.info(nbCodes + " dcf codes in database");
+ }
+
+ commit();
+
+ }
+
+ public void initialImport() {
+
+ initialDCF5CodesImport();
+
+ InputStream input = null;
+
+ TerrestrialLocationTopiaDao terrestrialLocationDao = getPersistenceContext().getTerrestrialLocationDao();
+ ObsDebCodeTopiaDao obsDebCodeDao = getPersistenceContext().getObsDebCodeDao();
+ ContactStateMotifTopiaDao contactStateMotifDao = getPersistenceContext().getContactStateMotifDao();
+
+ if (terrestrialLocationDao.count() == 0) {
+ try {
+ input = getClass().getResourceAsStream("/terrestrialLocations.csv");
+ importTerrestrialLocations(input);
+ } catch (ImportErrorException e) {
+ throw new WaoTechnicalException(e);
+ } finally {
+ IOUtils.closeQuietly(input);
+ }
+ }
+
+ if (obsDebCodeDao.count() == 0) {
+ try {
+ input = getClass().getResourceAsStream("/obsDebCodes.csv");
+ importObsDebCodes(input);
+ } catch (ImportErrorException e) {
+ throw new WaoTechnicalException(e);
+ } finally {
+ IOUtils.closeQuietly(input);
+ }
+ }
+
+ if (contactStateMotifDao.count() == 0) {
+ try {
+ input = getClass().getResourceAsStream("/motifs.csv");
+ importContactStateMotives(input);
+ } catch (ImportErrorException e) {
+ throw new WaoTechnicalException(e);
+ } finally {
+ IOUtils.closeQuietly(input);
+ }
+ }
+
+ }
+
+ /**
+ * Pour un programme donné, permet d'obtenir des informations sur tous les
+ * référentiels utilisés par ce programme. Notamment la date de dernière
+ * mise à jour ainsi que le nombre d'entités en base.
+ */
+ public List<ReferentialState> getReferentialStates(ObsProgram obsProgram) {
+
+ List<ReferentialState> referentialStates = new LinkedList<>();
+
+ for (String entityClassFqn : PER_PROGRAM_REFERENTIAL.get(obsProgram)) {
+
+ Class<?> entityClass;
+ try {
+ entityClass = getClass().getClassLoader().loadClass(entityClassFqn);
+ } catch (ClassNotFoundException e) {
+ throw new WaoTechnicalException("cannot load class " + entityClassFqn, e);
+ }
+
+ if ( ! TopiaEntity.class.isAssignableFrom(entityClass)) {
+ throw new IllegalArgumentException("il faut passer le FQN d'une classe d'entité");
+ }
+
+ long count;
+
+ if (TerrestrialDivision.class.equals(entityClass)) {
+ // Pour les stratification géographique, on compte le nombre de strate
+ // (on ne compte pas les unités d'observations, etc qui prennent
+ // des lignes en base)
+ TerrestrialDivisionTopiaDao dao = getPersistenceContext().getTerrestrialDivisionDao();
+ count = dao.countDistinctTerrestrialDivision();
+ } else {
+ TopiaDao<? extends TopiaEntity> dao = getPersistenceContext().getDao((Class<? extends TopiaEntity>) entityClass);
+ count = dao.count();
+ }
+
+ ReferentialMetaTopiaDao referentialMetaDao = getPersistenceContext().getReferentialMetaDao();
+ ReferentialMeta referentialMeta = referentialMetaDao.forEntityClassFqnEquals(entityClassFqn).findUniqueOrNull();
+ if (referentialMeta == null) {
+ referentialMeta = new ReferentialMetaImpl();
+ }
+
+ ReferentialState referentialState = new ReferentialState();
+ referentialState.setReferentialName(I18n.t(entityClassFqn));
+ referentialState.setLastUpdate(referentialMeta.getLastUpdate());
+ referentialState.setSize(count);
+
+ referentialStates.add(referentialState);
+ }
+
+ return referentialStates;
+ }
+
+ public List<FishingGearDCF> getAllFishingGearDCF() {
+ FishingGearDCFTopiaDao dao = getPersistenceContext().getFishingGearDCFDao();
+ List<FishingGearDCF> all = dao.findAll();
+ return all;
+ }
+
+ public List<TargetSpeciesDCF> getAllTargetSpeciesDCF() {
+ TargetSpeciesDCFTopiaDao dao = getPersistenceContext().getTargetSpeciesDCFDao();
+ List<TargetSpeciesDCF> all = dao.findAll();
+ return all;
+ }
+
+}
Property changes on: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialService.java
___________________________________________________________________
Added: svn:keywords
+ Author Date Id Revision HeadURL
Added: svn:mergeinfo
+ /branches/wao-1.5.x/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java:679-733
Added: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialState.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialState.java (rev 0)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ReferentialState.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,41 @@
+package fr.ifremer.wao.services.service;
+
+import java.util.Date;
+
+/**
+ * Répresente l'état d'une référential à un instant donné. (Date de dernière
+ * mise à jour par exemple).
+ */
+public class ReferentialState {
+
+ protected String referentialName;
+
+ protected long size;
+
+ protected Date lastUpdate;
+
+ public String getReferentialName() {
+ return referentialName;
+ }
+
+ public void setReferentialName(String referentialName) {
+ this.referentialName = referentialName;
+ }
+
+ public long getSize() {
+ return size;
+ }
+
+ public void setSize(long size) {
+ this.size = size;
+ }
+
+ public Date getLastUpdate() {
+ return lastUpdate;
+ }
+
+ public void setLastUpdate(Date lastUpdate) {
+ this.lastUpdate = lastUpdate;
+ }
+
+}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -45,4 +45,7 @@
getPersistenceContext().commit();
}
+ protected ReferentialService getReferentialService() {
+ return newService(ReferentialService.class);
+ }
}
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-02-28 14:23:50 UTC (rev 1696)
@@ -32,6 +32,7 @@
wao.import.contact.failure.wrongDistrict='%s' is not a valid boat district code
wao.import.contact.failure.wrongSampleRowCode=The is no sample row with code '%s'
wao.import.contact.failure.wrongTerrestrialLocation=There is no location of type '%s' with code '%s'
+wao.import.failure=Import fail.
wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s
wao.import.failure.wrongObsDebCode=There is no profession code having code '%s'
wao.import.failure.wrongUser=There is no user with login '%s'
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-02-28 14:23:50 UTC (rev 1696)
@@ -32,6 +32,7 @@
wao.import.contact.failure.wrongDistrict='%s' n'est pas un code quartier maritime valide
wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s'
wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s'
+wao.import.failure=Une erreur est survenue lors de l'import.
wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -1,5 +1,7 @@
package fr.ifremer.wao.web;
+import fr.ifremer.wao.entity.ObsProgram;
+
public class WaoJspActionSupport extends WaoActionSupport {
protected WaoSession getSession() {
@@ -10,4 +12,24 @@
return applicationConfig.getInstanceDisclaimer();
}
+ public ObsProgram getObsProgram() {
+ return ObsProgram.OBSMER;
+ }
+
+ public boolean isObsMer() {
+ return getObsProgram().isObsMer();
+ }
+
+ public boolean isObsVente() {
+ return getObsProgram().isObsVente();
+ }
+
+ public boolean isObsDeb() {
+ return getObsProgram().isObsDeb();
+ }
+
+ public String getText(Enum<?> enumeration) {
+ return getText(enumeration.getClass().getSimpleName() + "." + enumeration.name());
+ }
+
}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/AbstractImportReferentialAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/AbstractImportReferentialAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/AbstractImportReferentialAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,108 @@
+package fr.ifremer.wao.web.action.administration;
+
+import com.google.common.collect.ImmutableSet;
+import fr.ifremer.wao.WaoTechnicalException;
+import fr.ifremer.wao.services.service.ImportErrorException;
+import fr.ifremer.wao.services.service.ReferentialService;
+import fr.ifremer.wao.web.WaoJspActionSupport;
+import org.apache.commons.io.IOUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.struts2.convention.annotation.Result;
+import org.apache.struts2.convention.annotation.Results;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+
+@Results({
+ @Result(name="error", type="redirectAction", params = { "actionName", "referential-management" }),
+ @Result(name="success", type="redirectAction", params = { "actionName", "referential-management" })
+})
+public abstract class AbstractImportReferentialAction extends WaoJspActionSupport {
+
+ private static final Log log = LogFactory.getLog(AbstractImportReferentialAction.class);
+
+ protected static final ImmutableSet<String> CSV_CONTENT_TYPES =
+ ImmutableSet.of("text/csv", "text/comma-separated-values", "application/vnd.ms-excel");
+
+ protected ReferentialService service;
+
+ protected File csvFile;
+
+ protected String csvFileContentType;
+
+ public void setCsvFile(File csvFile) {
+ this.csvFile = csvFile;
+ }
+
+ public void setCsvFileContentType(String csvFileContentType) {
+ this.csvFileContentType = csvFileContentType;
+ }
+
+ public void setService(ReferentialService service) {
+ this.service = service;
+ }
+
+ protected abstract void importCsv(InputStream csvInputStream) throws ImportErrorException;
+
+ protected abstract String getSuccessMessage();
+
+ @Override
+ public String execute() {
+
+ String result = SUCCESS;
+
+ if (CSV_CONTENT_TYPES.contains(csvFileContentType)) {
+
+ InputStream csvInputStream = null;
+
+ try {
+
+ csvInputStream = new FileInputStream(csvFile);
+
+ importCsv(csvInputStream);
+
+ session.addMessage(getSuccessMessage());
+
+ } catch (FileNotFoundException e) {
+
+ if (log.isErrorEnabled()) {
+ log.error("should never occur", e);
+ }
+
+ throw new WaoTechnicalException(e);
+
+ } catch (ImportErrorException e) {
+
+ session.addErrorMessages(e.getMessage());
+
+ result = ERROR;
+
+ } finally {
+
+ IOUtils.closeQuietly(csvInputStream);
+
+ }
+
+ } else {
+
+ if (log.isWarnEnabled()) {
+ log.warn("content type " + csvFileContentType + " is not CSV compatible");
+ }
+
+ // TODO brendan 28/02/14 i18n
+ session.addErrorMessages(
+ "il faut fournir un fichier de type CSV (type détecté : "
+ + csvFileContentType + ")");
+
+ result = ERROR;
+
+ }
+
+ return result;
+
+ }
+
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportContactStateMotivesAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportContactStateMotivesAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportContactStateMotivesAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,19 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ImportErrorException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+
+public class ImportContactStateMotivesAction extends AbstractImportReferentialAction {
+
+ @Override
+ protected String getSuccessMessage() {
+ return I18n.t("wao.import.contactStateMotives.success");
+ }
+
+ @Override
+ public void importCsv(InputStream csvInputStream) throws ImportErrorException {
+ service.importContactStateMotives(csvInputStream);
+ }
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportFishingZonesAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportFishingZonesAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportFishingZonesAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,20 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ImportErrorException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+
+public class ImportFishingZonesAction extends AbstractImportReferentialAction {
+
+ @Override
+ protected String getSuccessMessage() {
+ return I18n.t("wao.import.fishingZones.success");
+ }
+
+ @Override
+ public void importCsv(InputStream csvInputStream) throws ImportErrorException {
+ service.importFishingZones(csvInputStream);
+ }
+
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportObsdebCodesAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportObsdebCodesAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportObsdebCodesAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,20 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ImportErrorException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+
+public class ImportObsdebCodesAction extends AbstractImportReferentialAction {
+
+ @Override
+ protected String getSuccessMessage() {
+ return I18n.t("wao.import.obsDebCodes.success");
+ }
+
+ @Override
+ protected void importCsv(InputStream csvInputStream) throws ImportErrorException {
+ service.importObsDebCodes(csvInputStream);
+ }
+
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialDivisionsAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialDivisionsAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialDivisionsAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,19 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ImportErrorException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+
+public class ImportTerrestrialDivisionsAction extends AbstractImportReferentialAction {
+
+ @Override
+ protected String getSuccessMessage() {
+ return I18n.t("wao.import.terrestrialDivisions.success");
+ }
+
+ @Override
+ public void importCsv(InputStream csvInputStream) throws ImportErrorException {
+ service.importTerrestrialDivisions(csvInputStream);
+ }
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialLocationsAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialLocationsAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportTerrestrialLocationsAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,20 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ImportErrorException;
+import org.nuiton.i18n.I18n;
+
+import java.io.InputStream;
+
+public class ImportTerrestrialLocationsAction extends AbstractImportReferentialAction {
+
+ @Override
+ protected String getSuccessMessage() {
+ return I18n.t("wao.import.terrestrialLocations.success");
+ }
+
+ @Override
+ public void importCsv(InputStream csvInputStream) throws ImportErrorException {
+ service.importTerrestrialLocations(csvInputStream);
+ }
+
+}
Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ReferentialManagementAction.java
===================================================================
--- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ReferentialManagementAction.java (rev 0)
+++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ReferentialManagementAction.java 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,32 @@
+package fr.ifremer.wao.web.action.administration;
+
+import fr.ifremer.wao.services.service.ReferentialService;
+import fr.ifremer.wao.services.service.ReferentialState;
+import fr.ifremer.wao.web.WaoJspActionSupport;
+
+import java.util.List;
+
+public class ReferentialManagementAction extends WaoJspActionSupport {
+
+ protected ReferentialService referentialService;
+
+ protected List<ReferentialState> referentialStates;
+
+ public void setReferentialService(ReferentialService referentialService) {
+ this.referentialService = referentialService;
+ }
+
+ @Override
+ public String execute() {
+
+ referentialStates = referentialService.getReferentialStates(getObsProgram());
+
+ return SUCCESS;
+
+ }
+
+ public List<ReferentialState> getReferentialStates() {
+ return referentialStates;
+ }
+
+}
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 14:23:50 UTC (rev 1696)
@@ -1,3 +1,16 @@
+fr.ifremer.wao.services.service.ReferentialState.lastUpdate=Last update
+fr.ifremer.wao.services.service.ReferentialState.referentialName=Referential
+fr.ifremer.wao.services.service.ReferentialState.size=Lines count
+wao.import.contactStateMotives.prompt=Import contact state motives
+wao.import.contactStateMotives.success=Import contact state motives successful
+wao.import.fishingZones.prompt=Import fishing zones
+wao.import.fishingZones.success=Import fishing zones successful
+wao.import.obsDebCodes.prompt=Import ObsDeb codes
+wao.import.obsDebCodes.success=Import ObsDeb codes successful
+wao.import.terrestrialDivisions.prompt=Import ObsDeb terrestrial divisions
+wao.import.terrestrialDivisions.success=Import ObsDeb terrestrial divisions successful
+wao.import.terrestrialLocations.prompt=Import terrestrial locations
+wao.import.terrestrialLocations.success=Import terrestrial locations successful
wao.ui.acceptCgu=I've read and accept the terms of use
wao.ui.action.acceptContact=Validate contact
wao.ui.action.add=Add
@@ -71,7 +84,7 @@
wao.ui.entity.Contact=Contact
wao.ui.entity.FishingZone=Fishing zones
wao.ui.entity.SampleRow=Sample row
-wao.ui.entity.SampleRow.day=
+wao.ui.entity.SampleRow.day=Day
wao.ui.entity.TerrestrialLocation=Place
wao.ui.entity.fishingGearDCF=Gear DCF code
wao.ui.entity.targetSpeciesDCF=Target species DCF code
@@ -268,6 +281,7 @@
wao.ui.page.ContactForm.title=Contact edition
wao.ui.page.Contacts.title=Contacts
wao.ui.page.Index.title=Home
+wao.ui.page.ReferentialManagement.title=Referentials management
wao.ui.page.SamplingPlan.title=Sampling plan
wao.ui.page.Synthesis.title=Synthesis
wao.ui.page.UserProfileForm.title=Profile management
@@ -335,3 +349,4 @@
wao.ui.userList=Users list
wao.ui.userMustAcceptCgu=You must accept the terms of use
wao.ui.validLogin=Valid identifier
+wao.ui.import.disclaimer=You must upload CSV files using ";" as seperator and UTF-8 as character encoding
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 14:23:50 UTC (rev 1696)
@@ -1,3 +1,17 @@
+fr.ifremer.wao.services.service.ReferentialState.lastUpdate=Date de dernière mise à jour
+fr.ifremer.wao.services.service.ReferentialState.referentialName=Référentiel
+fr.ifremer.wao.services.service.ReferentialState.size=Nombre de lignes en base
+wao.import.contactStateMotives.prompt=Import des motifs de refus
+wao.import.contactStateMotives.success=Import des motifs de refus réalisé avec succès
+wao.import.fishingZones.prompt=Import des zones de pêches
+wao.import.fishingZones.success=Import des zones de pêches réalisé avec succès
+wao.import.obsDebCodes.prompt=Import des codes ObsDeb
+wao.import.obsDebCodes.success=Import des codes ObsDeb réalisé avec succès
+wao.import.terrestrialDivisions.prompt=Import des unités d'observation
+wao.import.terrestrialDivisions.success=Import des unités d'observation réalisé avec succès
+wao.import.terrestrialLocations.prompt=Import des lieux terrestres
+wao.import.terrestrialLocations.success=Import des lieux terrestres réalisé avec succès
+wao.ui.import.disclaimer=Veuillez utiliser des fichiers CSV utilisant « ; » comme séparateur et UTF-8 comme encodage de caractères.
wao.ui.acceptCgu=J'ai lu et j'accepte les conditions d'utilisation
wao.ui.action.acceptContact=Valider le contact
wao.ui.action.add=Ajouter
@@ -71,6 +85,7 @@
wao.ui.entity.Contact=Contact
wao.ui.entity.FishingZone=Zones de pêche
wao.ui.entity.SampleRow=Ligne du plan d'échantillonnage
+wao.ui.entity.SampleRow.day=Jour
wao.ui.entity.TerrestrialLocation=Lieu
wao.ui.entity.fishingGearDCF=Engin code DCF
wao.ui.entity.targetSpeciesDCF=Ensembles d'espèces-cible code DCF
@@ -84,6 +99,7 @@
wao.ui.field.Boat.name=Nom
wao.ui.field.Boat.portOfRegistry=Port d'attache
wao.ui.field.Boat.shipOwner=Armateur
+wao.ui.field.BoatDistrict.code=Code du quartier maritime
wao.ui.field.BoatInfos.dup=Capacité d'accueil du navire en personnels spécialisés
wao.ui.field.Company.active=Active
wao.ui.field.Company.name=Nom
Added: trunk/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp (rev 0)
+++ trunk/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp 2014-02-28 14:23:50 UTC (rev 1696)
@@ -0,0 +1,125 @@
+<%@ page language="java" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
+<%@taglib uri="/struts-tags" prefix="s" %>
+
+<html>
+
+ <head>
+
+ </head>
+
+ <div class="alert alert-info">
+ <s:property value="getText('wao.ui.import.disclaimer')" />
+ </div>
+
+ <s:form action="import-fishing-zones" method="POST" enctype="multipart/form-data">
+
+ <fieldset>
+ <legend>
+ <s:property value="getText('wao.import.fishingZones.prompt')" />
+ </legend>
+
+ <s:file name="csvFile" />
+
+ <s:submit type="button">
+ <i class="icon-upload"></i> Importer
+ </s:submit>
+ </fieldset>
+
+ </s:form>
+
+ <s:form action="import-terrestrial-locations" method="POST" enctype="multipart/form-data">
+
+ <fieldset>
+ <legend>
+ <s:property value="getText('wao.import.terrestrialLocations.prompt')" />
+ </legend>
+
+ <s:file name="csvFile" />
+
+ <s:submit type="button">
+ <i class="icon-upload"></i> Importer
+ </s:submit>
+ </fieldset>
+
+ </s:form>
+
+ <s:if test="obsMer">
+ <s:form action="import-contact-state-motives" method="POST" enctype="multipart/form-data">
+
+ <fieldset>
+ <legend>
+ <s:property value="getText('wao.import.contactStateMotives.prompt')" />
+ </legend>
+
+ <s:file name="csvFile" />
+
+ <s:submit type="button">
+ <i class="icon-upload"></i> Importer
+ </s:submit>
+ </fieldset>
+
+ </s:form>
+ </s:if>
+
+ <s:if test="obsDeb">
+ <s:form action="import-obsdeb-codes" method="POST" enctype="multipart/form-data">
+
+ <fieldset>
+ <legend>
+ <s:property value="getText('wao.import.obsDebCodes.prompt')" />
+ </legend>
+
+ <s:file name="csvFile" />
+
+ <s:submit type="button">
+ <i class="icon-upload"></i> Importer
+ </s:submit>
+ </fieldset>
+
+ </s:form>
+
+ <s:form action="import-terrestrial-divisions" method="POST" enctype="multipart/form-data">
+
+ <fieldset>
+ <legend>
+ <s:property value="getText('wao.import.terrestrialDivisions.prompt')" />
+ </legend>
+
+ <s:file name="csvFile" />
+
+ <s:submit type="button">
+ <i class="icon-upload"></i> Importer
+ </s:submit>
+ </fieldset>
+
+ </s:form>
+ </s:if>
+
+ <table class="table table-bordered">
+ <tr>
+ <th>
+ <s:property value="getText('fr.ifremer.wao.services.service.ReferentialState.referentialName')" />
+ </th>
+ <th>
+ <s:property value="getText('fr.ifremer.wao.services.service.ReferentialState.size')" />
+ </th>
+ <th>
+ <s:property value="getText('fr.ifremer.wao.services.service.ReferentialState.lastUpdate')" />
+ </th>
+ </tr>
+ <s:iterator value="referentialStates">
+ <tr>
+ <td>
+ <s:property value="referentialName" />
+ </td>
+ <td>
+ <s:property value="size" />
+ </td>
+ <td>
+ <s:property value="lastUpdate" />
+ </td>
+ </tr>
+ </s:iterator>
+ </table>
+
+</html>
Modified: trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp 2014-02-28 14:23:50 UTC (rev 1696)
@@ -24,7 +24,7 @@
<div class="navbar">
<div class="navbar-inner">
- <a class="brand" href="#">Wao Obs???</a>
+ <a class="brand" href="#">Wao <s:property value="getText(obsProgram)" /></a>
<ul class="nav">
<li class="active">
<s:url action="news" id="newsUrl" />
@@ -58,11 +58,19 @@
</li>
</ul>
<ul class="nav pull-right">
- <li>
- <s:url action="administration" id="administrationUrl" />
- <s:a href="%{administrationUrl}" title="Accèder à la partie administration">
+ <li class="dropdown">
+ <a href="#" class="dropdown-toggle" data-toggle="dropdown">
<s:property value="getText('wao.ui.page.Administration.title')" />
- </s:a>
+ <b class="caret"></b>
+ </a>
+ <ul class="dropdown-menu">
+ <li>
+ <s:url namespace="/administration" action="referential-management" id="referentialManagementUrl" />
+ <s:a href="%{referentialManagementUrl}">
+ <i class="icon-upload"></i> <s:property value="getText('wao.ui.page.ReferentialManagement.title')" />
+ </s:a>
+ </li>
+ </ul>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">
@@ -104,7 +112,7 @@
<%@include file="version.jsp" %>
</a>
</li>
- <t:if test="connectedUser.obsMer">
+ <t:if test="obsMer">
<li>
<a href="mailto:harmonie@ifremer.fr" title="Contacter un responsable Obsmer">
Obsmer
Modified: trunk/wao-web/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/wao-web/src/main/webapp/WEB-INF/web.xml 2014-02-28 11:25:17 UTC (rev 1695)
+++ trunk/wao-web/src/main/webapp/WEB-INF/web.xml 2014-02-28 14:23:50 UTC (rev 1696)
@@ -55,14 +55,15 @@
</filter-mapping>
<!-- Le filtre Shiro doit être executer après le fltre struts prepare: Pour gérer l'encodage de la requête -->
- <filter-mapping>
- <filter-name>shiro</filter-name>
- <url-pattern>/*</url-pattern>
- <dispatcher>REQUEST</dispatcher>
- <dispatcher>FORWARD</dispatcher>
- <dispatcher>INCLUDE</dispatcher>
- <dispatcher>ERROR</dispatcher>
- </filter-mapping>
+ <!-- XXX bleny 28/02/2014 attention à le réactivation, on peut avoir le problème d'upload de fichier -->
+ <!--<filter-mapping>-->
+ <!--<filter-name>shiro</filter-name>-->
+ <!--<url-pattern>/*</url-pattern>-->
+ <!--<dispatcher>REQUEST</dispatcher>-->
+ <!--<dispatcher>FORWARD</dispatcher>-->
+ <!--<dispatcher>INCLUDE</dispatcher>-->
+ <!--<dispatcher>ERROR</dispatcher>-->
+ <!--</filter-mapping>-->
<filter-mapping>
<filter-name>sitemesh</filter-name>
1
0
28 Feb '14
Author: bleny
Date: 2014-02-28 12:25:17 +0100 (Fri, 28 Feb 2014)
New Revision: 1695
Url: http://codelutin.com/projects/wao/repository/revisions/1695
Log:
cleanup bundles via i18n plugin
Modified:
trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties
Modified: trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
===================================================================
--- trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-02-28 11:23:08 UTC (rev 1694)
+++ trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-02-28 11:25:17 UTC (rev 1695)
@@ -35,6 +35,9 @@
SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultaneous \: G1+G2 species
SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultaneous \: G1 species
SamplingStrategy.SPECIFIC_STOCK=Specific stock
+StrategyValues.CONTACTS_STATES=Contact states by boat district
+StrategyValues.CONTACTS_STATES_MOTIFS=Refusal motives
+StrategyValues.CONTACTS_STATES_SEABOARDS=Contact states by seaboard
SynthesisId.DISTINCT_BOATS_COUNTS=Counts of distinct boat observed
SynthesisId.GRAPH_BOARDING=Boarding conformance rate on a given boat
SynthesisId.GRAPH_SAMPLING=Sampling plan completion rate
@@ -133,6 +136,3 @@
fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Small pelagic
fr.ifremer.wao.entity.TerrestrialDivision=Terrestrial divisions
fr.ifremer.wao.entity.TerrestrialLocation=Terrestrial locations
-StrategyValues.CONTACTS_STATES=Contact states by boat district
-StrategyValues.CONTACTS_STATES_MOTIFS=Refusal motives
-StrategyValues.CONTACTS_STATES_SEABOARDS=Contact states by seaboard
Modified: trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties
===================================================================
--- trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties 2014-02-28 11:23:08 UTC (rev 1694)
+++ trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties 2014-02-28 11:25:17 UTC (rev 1695)
@@ -35,6 +35,9 @@
SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultané \: espèces G1+G2
SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultané \: espèces G1
SamplingStrategy.SPECIFIC_STOCK=Stock spécifique
+StrategyValues.CONTACTS_STATES=États des contacts selon le quartier maritime
+StrategyValues.CONTACTS_STATES_MOTIFS=Motifs de refus
+StrategyValues.CONTACTS_STATES_SEABOARDS=États des contacts selon la façade maritime
SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observés
SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un même navire conforme aux exigences
SynthesisId.GRAPH_SAMPLING=Taux de réalisation du plan d'échantillonage
@@ -133,6 +136,3 @@
fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
fr.ifremer.wao.entity.TerrestrialDivision=Stratification géographique
fr.ifremer.wao.entity.TerrestrialLocation=Lieux terrestres
-StrategyValues.CONTACTS_STATES=États des contacts selon le quartier maritime
-StrategyValues.CONTACTS_STATES_MOTIFS=Motifs de refus
-StrategyValues.CONTACTS_STATES_SEABOARDS=États des contacts selon la façade maritime
1
0
r1694 - in trunk: wao-persistence/src/main/resources/i18n wao-services/src/main/resources/i18n wao-web/src/main/resources/i18n
by bleny@users.forge.codelutin.com 28 Feb '14
by bleny@users.forge.codelutin.com 28 Feb '14
28 Feb '14
Author: bleny
Date: 2014-02-28 12:23:08 +0100 (Fri, 28 Feb 2014)
New Revision: 1694
Url: http://codelutin.com/projects/wao/repository/revisions/1694
Log:
clean i18n bundles by removing duplications
Modified:
trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
Modified: trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties
===================================================================
--- trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -48,13 +48,6 @@
UserRole.GUEST=Guest
UserRole.OBSERVER=Observer
UserRole.PROFESSIONAL=Professional
-csv.import.error.missingMandatoryHeaders=The mandatory fields %s are missing
-csv.import.error.unableToParseValue=Unable to parse value '%s' (column '%s', line %s)
-csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s
-csv.import.error.unableToReadLine=Unable to read line %s
-csv.import.error.unableToSetValue=Unable to set value '%s' (entity '%s', line %s, column '%s')
-csv.import.error.unrecognizedHeaders=Fields %s are not recognized. Accepted fields are %s.
-csv.import.logComment=Edited through import
fr.ifremer.wao.entity.Boat=Boats
fr.ifremer.wao.entity.BoatGroup=Boat groups
fr.ifremer.wao.entity.ContactStateMotif=Refusal movites
@@ -140,188 +133,6 @@
fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Small pelagic
fr.ifremer.wao.entity.TerrestrialDivision=Terrestrial divisions
fr.ifremer.wao.entity.TerrestrialLocation=Terrestrial locations
-wao.business.boat.validation.immatriculation.wrongFormat=The boat registry number must be composed of 6 digits
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=You must precise in admin comment why data reliability is '%s'
-wao.business.contact.validation.commentMissingForState=You must give a comment for state '%s'
-wao.business.contact.validation.contactStateMotifMissing=You must precise a motif for the refusal
-wao.business.contact.validation.contactStateMotifUnwanted=You must not give a motif
-wao.business.contact.validation.dataReliabilityMissingForValidation=You must provide data reliability before validating
-wao.business.contact.validation.missingHoursOfBeginEndObservation=You must provide accurate time for the beginning and the end of observation
-wao.business.contact.validation.observedDataControlMissingForValidation=You must provide a value for observed data control
-wao.business.contact.validation.restitutionMissingForValidation=You must provide the restitution forward date
-wao.business.entity.UserProfile.description=%s on %s%s
-wao.business.mammalsCapture.mail.message=Hello,\n\nAn observer of the ObsMer program provided to WAO the following information\:\n\nTide\: %s\nProfession\: %s\n\nAccidental capture\:\n%s\n\nBest regards,\n\nObsmer program\nhttp\://www.ifremer.fr/wao
-wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information about an accidental capture
-wao.business.other=Other
-wao.business.readOnly=(read-only)
-wao.error.boat.canCreateContact=
-wao.error.boat.getNbBoarding=
-wao.error.boatInfos.getNbBoardingForCompany=
-wao.error.context.close=
-wao.error.context.encodeString=
-wao.error.context.getRootContext=
-wao.error.context.parse=
-wao.error.context.rollback=
-wao.error.context.start=
-wao.error.context.stop=
-wao.error.global.createDefaultAdmin=
-wao.error.sampleMonth.addRealTideTime=
-wao.error.sampleRow.saveSampleRowLog=
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=
-wao.error.serviceBoat.exportBoatCsv=
-wao.error.serviceBoat.getActivityCalendarLogAccessFile=
-wao.error.serviceBoat.getActivityCalendarLogFile=
-wao.error.serviceBoat.getAllActiveBoats=
-wao.error.serviceBoat.getBoat=
-wao.error.serviceBoat.getBoatNamesStartWith=
-wao.error.serviceBoat.getBoatsByFilter=
-wao.error.serviceBoat.getBoatsByImmatriculations=
-wao.error.serviceBoat.getCompanyBoatInfos=
-wao.error.serviceBoat.getLastActivityCalendar=
-wao.error.serviceBoat.getNbBoatsByFilter=
-wao.error.serviceBoat.getPossibleValuesForFilter=
-wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=
-wao.error.serviceBoat.importBoatCsv=
-wao.error.serviceBoat.importBoatGroups=
-wao.error.serviceBoat.newBoatFilter=
-wao.error.serviceCartography.exportContactMotifsStatisticsKml=
-wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
-wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=
-wao.error.serviceChart.getContactPieChartData=
-wao.error.serviceChart.getContactPieChartUrl=
-wao.error.serviceContact.exportContactCsv=
-wao.error.serviceContact.getContact=
-wao.error.serviceContact.getContacts=
-wao.error.serviceContact.getNbContacts=
-wao.error.serviceContact.getNewContact=
-wao.error.serviceContact.getPossibleObsDebCodes=
-wao.error.serviceContact.getPossibleTerrestrialLocations=
-wao.error.serviceContact.getPossibleValuesForFilter=
-wao.error.serviceContact.getSubstitutesForBoat=
-wao.error.serviceContact.importContactCsv=
-wao.error.serviceContact.isBoatSampled=
-wao.error.serviceContact.newContact=
-wao.error.serviceContact.newContactFilter=
-wao.error.serviceContact.saveComment=
-wao.error.serviceContact.saveContact=
-wao.error.serviceContact.sendContactDoneEmail=
-wao.error.serviceContact.updateSampleMonthTidesValue=
-wao.error.serviceContact.validateContact=
-wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=
-wao.error.serviceNews.newNews=
-wao.error.serviceNews.saveNews=
-wao.error.serviceReferential.getAllContactStateMotifs=
-wao.error.serviceReferential.getAllFishingGearDCFs=
-wao.error.serviceReferential.getAllObsDebCodes=
-wao.error.serviceReferential.getAllObservationUnits=
-wao.error.serviceReferential.getAllPorts=
-wao.error.serviceReferential.getAllPortsAndAuctions=
-wao.error.serviceReferential.getAllRegionIfremers=
-wao.error.serviceReferential.getAllTargetSpeciesDCFs=
-wao.error.serviceReferential.getAllTerrestrialDistricts=
-wao.error.serviceReferential.getAllTerrestrialLocations=
-wao.error.serviceReferential.getCodesDCF5Contains=
-wao.error.serviceReferential.getFacades=
-wao.error.serviceReferential.getFishingZones=
-wao.error.serviceReferential.getProfessions=
-wao.error.serviceReferential.getReferentialMeta=
-wao.error.serviceReferential.getReferentialStates=
-wao.error.serviceReferential.getSectors=
-wao.error.serviceReferential.getTerrestrialDistrict=
-wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importContactStateMotives=
-wao.error.serviceReferential.importDCFcodes=
-wao.error.serviceReferential.importFishingZoneCsv=
-wao.error.serviceReferential.importInitialContactStateMotifs=
-wao.error.serviceReferential.importObsDebCodes=
-wao.error.serviceReferential.importTerrestrialDivisions=
-wao.error.serviceReferential.importTerrestrialLocations=
-wao.error.serviceReferential.initialImport=
-wao.error.serviceReferential.updateAllContactStatesMotifs=
-wao.error.serviceReferential.updateReferentialMeta=
-wao.error.serviceSampling.countSampleRows=
-wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=
-wao.error.serviceSampling.deleteSampleRow=
-wao.error.serviceSampling.exportSamplingPlanCsv=
-wao.error.serviceSampling.exportSamplingPlanICalendar=
-wao.error.serviceSampling.getDCFGears=
-wao.error.serviceSampling.getDCFSpecies=
-wao.error.serviceSampling.getNewProfession=
-wao.error.serviceSampling.getNewSampleMonth=
-wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=
-wao.error.serviceSampling.getNewSampleRowLog=
-wao.error.serviceSampling.getObservationTimesInDays=
-wao.error.serviceSampling.getPossibleValuesForFilter=
-wao.error.serviceSampling.getPrograms=
-wao.error.serviceSampling.getSampleRow=
-wao.error.serviceSampling.getSampleRowByCode=
-wao.error.serviceSampling.getSampleRowsByFilter=
-wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=
-wao.error.serviceSampling.importSamplingPlanCsv=
-wao.error.serviceSampling.newOperation=
-wao.error.serviceSampling.newSampleRow=
-wao.error.serviceSampling.newSamplingFilter=
-wao.error.serviceSampling.validateSampleRow=
-wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=
-wao.error.serviceSynthesis.getBoatsCount=
-wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=
-wao.error.serviceSynthesis.getContactPieChartData=
-wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=
-wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=
-wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Unable to get data about global synthesis parameters
-wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Unable to update global synthesis parameters
-wao.error.serviceUser.acceptCgu=
-wao.error.serviceUser.addTokensToAllProfiles=
-wao.error.serviceUser.connect=
-wao.error.serviceUser.createDefaultAdmin=
-wao.error.serviceUser.createUpdateCompany=
-wao.error.serviceUser.createUpdateUser=
-wao.error.serviceUser.deleteCompany=
-wao.error.serviceUser.deleteUser=
-wao.error.serviceUser.existLogin=
-wao.error.serviceUser.forgetPassword=
-wao.error.serviceUser.getCompanies=
-wao.error.serviceUser.getCompany=
-wao.error.serviceUser.getConnectedUserByToken=
-wao.error.serviceUser.getNewUser=
-wao.error.serviceUser.getObservers=
-wao.error.serviceUser.getUserByToken=
-wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=
-wao.export.ical.desc=wtih %s
-wao.export.ical.title=ObsDeb Observation
-wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact
-wao.import.contact.failure.districtMissing=You need to precise the boat district
-wao.import.contact.failure.locationTypeMissing=The type of the location must be filled
-wao.import.contact.failure.sampleRowCodeMissing=The code of the sample row line is missing
-wao.import.contact.failure.terrestrialLocationMissing=The code of the terrestrial location is missing
-wao.import.contact.failure.wrongBoat=There is no boat with plate number '%s'
-wao.import.contact.failure.wrongColor=The color '%s' is not a valid color. It must be composed of 6 characters without the hash (\#), see http\://en.wikipedia.org/wiki/Web_colors
-wao.import.contact.failure.wrongContactStateMotifCode=The code '%s' is not a valid code
-wao.import.contact.failure.wrongDistrict='%s' is not a valid boat district code
-wao.import.contact.failure.wrongSampleRowCode=The is no sample row with code '%s'
-wao.import.contact.failure.wrongTerrestrialLocation=There is no location of type '%s' with code '%s'
-wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s
-wao.import.failure.wrongObsDebCode=There is no profession code having code '%s'
-wao.import.failure.wrongUser=There is no user with login '%s'
-wao.import.sampleRow.failure.fishingZoneMissing=You must precise at least one fishing zone
-wao.import.sampleRow.failure.missingSampleRowCode=You must precise a code for the sample row
-wao.import.sampleRow.failure.wrongFishingZone=There is no fishing zone with the code '%s'
-wao.import.sampleRow.failure.wrongSampleRowCodeFormat=The sample row code '%s' is not compliant with the format "YYYY_PIIII"
-wao.validation.sampleRow.conflictOnObserver=Observer %s cannot be associated to the line %s because he has to observer, on the same day, for row %s
-wao.validation.sampleRow.observerNotInCompany=Observer %s doesn't work for company %s
+StrategyValues.CONTACTS_STATES=Contact states by boat district
+StrategyValues.CONTACTS_STATES_MOTIFS=Refusal motives
+StrategyValues.CONTACTS_STATES_SEABOARDS=Contact states by seaboard
Modified: trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties
===================================================================
--- trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -48,13 +48,6 @@
UserRole.GUEST=Invité
UserRole.OBSERVER=Observateur
UserRole.PROFESSIONAL=Professionnel
-csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants
-csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s)
-csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s
-csv.import.error.unableToReadLine=Impossible de lire la ligne %s
-csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s')
-csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s.
-csv.import.logComment=Modification depuis import
fr.ifremer.wao.entity.Boat=Navires
fr.ifremer.wao.entity.BoatGroup=Stratification des navires
fr.ifremer.wao.entity.ContactStateMotif=Motifs de refus
@@ -140,187 +133,6 @@
fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
fr.ifremer.wao.entity.TerrestrialDivision=Stratification géographique
fr.ifremer.wao.entity.TerrestrialLocation=Lieux terrestres
-wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
-wao.business.contact.validation.commentMissingForState=Il faut préciser un commentaire pour l'état '%s'
-wao.business.contact.validation.contactStateMotifMissing=Il faut préciser un motif de refus
-wao.business.contact.validation.contactStateMotifUnwanted=Il ne faut pas préciser de motif de refus
-wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut préciser la qualité de la donnée avant de valider
-wao.business.contact.validation.missingHoursOfBeginEndObservation=Il faut préciser les heures exactes de début et de fin d'observation
-wao.business.contact.validation.observedDataControlMissingForValidation=Il faut préciser une valeur pour le contrôle des données observées
-wao.business.contact.validation.restitutionMissingForValidation=Il faut préciser une date de transmission de la restitution de la donnée avant de valider
-wao.business.entity.UserProfile.description=%s sur %s%s
-wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseigné dans WAO l'information suivante \:\n\nMarée \: %s\nMétier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
-wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle
-wao.business.other=Autre
-wao.business.readOnly=(lecture seule)
-wao.error.boat.canCreateContact=Impossible de créer un nouveau contact pour la société %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s pour la société %2$s
-wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA
-wao.error.context.encodeString=
-wao.error.context.getRootContext=Une erreur est survenue pour la récupération du contexte principale de ToPIA
-wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s
-wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante
-wao.error.context.start=Une erreur est survenue pendant le démarrage de l'application
-wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application
-wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de marées réels pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire écrit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de créer ou modifier les informations liés au navire %1$d pour la société %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires sélectionnés
-wao.error.serviceBoat.getActivityCalendarLogAccessFile=
-wao.error.serviceBoat.getActivityCalendarLogFile=
-wao.error.serviceBoat.getAllActiveBoats=
-wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de récupérer les navires avec un nom commencant par '%1$s'
-wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getBoatsByImmatriculations=La chaîne d'immatriculations est incorrect \! Chaque immatriculation doit posséder 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de récupérer les informations du navire immatriculé %1$d pour la société %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activité du navire %1$s (%2$d)
-wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getPossibleValuesForFilter=
-wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=Problème d'import du fichier CSV des calendriers d'activité
-wao.error.serviceBoat.importBoatCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier.
-wao.error.serviceBoat.importBoatGroups=
-wao.error.serviceBoat.newBoatFilter=
-wao.error.serviceCartography.exportContactMotifsStatisticsKml=
-wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
-wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonnées des quartiers des navires. Vérifiez la documentation pour le bon format du fichier Kml.
-wao.error.serviceChart.getContactPieChartData=
-wao.error.serviceChart.getContactPieChartUrl=
-wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts
-wao.error.serviceContact.getContact=Impossible de trouver le contact
-wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
-wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtrés
-wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
-wao.error.serviceContact.getPossibleObsDebCodes=
-wao.error.serviceContact.getPossibleTerrestrialLocations=
-wao.error.serviceContact.getPossibleValuesForFilter=
-wao.error.serviceContact.getSubstitutesForBoat=
-wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
-wao.error.serviceContact.isBoatSampled=
-wao.error.serviceContact.newContact=
-wao.error.serviceContact.newContactFilter=
-wao.error.serviceContact.saveComment=
-wao.error.serviceContact.saveContact=Impossible de sauvegarder le contact
-wao.error.serviceContact.sendContactDoneEmail=
-wao.error.serviceContact.updateSampleMonthTidesValue=
-wao.error.serviceContact.validateContact=
-wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de récupérer l'ensemble des news
-wao.error.serviceNews.newNews=
-wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
-wao.error.serviceReferential.getAllContactStateMotifs=
-wao.error.serviceReferential.getAllFishingGearDCFs=
-wao.error.serviceReferential.getAllObsDebCodes=
-wao.error.serviceReferential.getAllObservationUnits=
-wao.error.serviceReferential.getAllPorts=
-wao.error.serviceReferential.getAllPortsAndAuctions=
-wao.error.serviceReferential.getAllRegionIfremers=
-wao.error.serviceReferential.getAllTargetSpeciesDCFs=
-wao.error.serviceReferential.getAllTerrestrialDistricts=
-wao.error.serviceReferential.getAllTerrestrialLocations=
-wao.error.serviceReferential.getCodesDCF5Contains=
-wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
-wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de pêche
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des métiers
-wao.error.serviceReferential.getReferentialMeta=
-wao.error.serviceReferential.getReferentialStates=
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de pêche
-wao.error.serviceReferential.getTerrestrialDistrict=
-wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importContactStateMotives=
-wao.error.serviceReferential.importDCFcodes=Impossible de créer le référentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de détails.
-wao.error.serviceReferential.importInitialContactStateMotifs=
-wao.error.serviceReferential.importObsDebCodes=
-wao.error.serviceReferential.importTerrestrialDivisions=
-wao.error.serviceReferential.importTerrestrialLocations=
-wao.error.serviceReferential.initialImport=
-wao.error.serviceReferential.updateAllContactStatesMotifs=
-wao.error.serviceReferential.updateReferentialMeta=
-wao.error.serviceSampling.countSampleRows=
-wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'échantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'échantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'échantillonnage sur la période du %1$s au %2$s
-wao.error.serviceSampling.exportSamplingPlanICalendar=
-wao.error.serviceSampling.getDCFGears=
-wao.error.serviceSampling.getDCFSpecies=
-wao.error.serviceSampling.getNewProfession=
-wao.error.serviceSampling.getNewSampleMonth=
-wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=Impossible de récupérer un nouveau code pour une ligne d'échantillonnage
-wao.error.serviceSampling.getNewSampleRowLog=
-wao.error.serviceSampling.getObservationTimesInDays=
-wao.error.serviceSampling.getPossibleValuesForFilter=
-wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
-wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'échantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'échantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de récupérer la liste des lignes du plan d'échantillonnage
-wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de récupérer la liste des lignes du plan d'échantillonnage
-wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
-wao.error.serviceSampling.newOperation=
-wao.error.serviceSampling.newSampleRow=
-wao.error.serviceSampling.newSamplingFilter=
-wao.error.serviceSampling.validateSampleRow=
-wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de récupérer les données du graphique concernant les embarquements sur les navires
-wao.error.serviceSynthesis.getBoatsCount=
-wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de récupérer l'indicateur de réactivité sur les dates de saisies dans Allegro
-wao.error.serviceSynthesis.getContactPieChartData=
-wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=Impossible de récupérer les statistiques sur les états des contacts
-wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de récupérer les données pour le graphique dynamique des efforts de marées
-wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de récupérer les données concernant les indicateurs pour la synthèse globale
-wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de récupérer l'indicateur de non respect du nombre d'observateurs embarqués
-wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre à jour les paramètres de la synthèse globale
-wao.error.serviceUser.acceptCgu=
-wao.error.serviceUser.addTokensToAllProfiles=
-wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion
-wao.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut
-wao.error.serviceUser.createUpdateCompany=Impossible de créer ou de mettre à jour la société
-wao.error.serviceUser.createUpdateUser=Impossible de créer ou de mettre à jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression
-wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur
-wao.error.serviceUser.existLogin=
-wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe
-wao.error.serviceUser.getCompanies=Impossible de récupérer la liste des sociétés
-wao.error.serviceUser.getCompany=
-wao.error.serviceUser.getConnectedUserByToken=
-wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur
-wao.error.serviceUser.getObservers=Impossible de récupérer la liste des observateurs
-wao.error.serviceUser.getUserByToken=
-wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de récupérer la liste des utilisateurs de la société %1$s
-wao.export.ical.desc=avec %s
-wao.export.ical.title=Observation ObsDeb
-wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
-wao.import.contact.failure.districtMissing=Il faut préciser le code d'un quartier maritime
-wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné
-wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée
-wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu
-wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s'
-wao.import.contact.failure.wrongColor=Le code couleur '%s' n'est pas valide, il doit être composé de six caractères sans dièze voir http\://fr.wikipedia.org/wiki/Couleurs_du_Web
-wao.import.contact.failure.wrongContactStateMotifCode=Le code '%s' n'est pas un code de motif de refus valide
-wao.import.contact.failure.wrongDistrict='%s' n'est pas un code quartier maritime valide
-wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s'
-wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s'
-wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
-wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
-wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
-wao.import.sampleRow.failure.fishingZoneMissing=Il faut préciser au moins une zone de pêche
-wao.import.sampleRow.failure.missingSampleRowCode=Il faut préciser un code pour a ligne du plan
-wao.import.sampleRow.failure.wrongFishingZone=Le code '%s' ne correspond à aucune zone de pêche connue du référentiel
-wao.import.sampleRow.failure.wrongSampleRowCodeFormat=Le code '%s' n'est pas un code de ligne valide selon le format "AAAA_PIIII"
-wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut être associé à la ligne %s car il doit observer, le même jour, pour la ligne %s
-wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la société %s
+StrategyValues.CONTACTS_STATES=États des contacts selon le quartier maritime
+StrategyValues.CONTACTS_STATES_MOTIFS=Motifs de refus
+StrategyValues.CONTACTS_STATES_SEABOARDS=États des contacts selon la façade maritime
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -1,53 +1,3 @@
-ContactPieChartConstant.OTHER=Others
-ContactPieChartConstant.REALIZED=Realized
-ContactPieChartConstant.REFUSED=Refused
-ContactState.CONTACT_DEFINITELY_REFUSED=Definitely refused
-ContactState.CONTACT_REFUSED=Refused
-ContactState.CONTACT_START=Contact started
-ContactState.OBSERVATION_CANCELLED=Cancelled
-ContactState.OBSERVATION_DONE=Observation done
-ContactState.OBSERVATION_EXPECTED=Observation expected
-ContactState.OBSERVATION_NOT_DONE=Not observed
-DataReliability.CORRECTION_ASKED=Correction asked
-DataReliability.DOUBTFUL=Doubtful
-DataReliability.NOT_PROVIDED=Not provided
-DataReliability.NOT_RELIABLE=Non reliable
-DataReliability.RELIABLE=Reliable
-DataReliability.UNKNOWN=Unknown
-GlobalIndicatorValue.BAD=Level 1 penalty
-GlobalIndicatorValue.GOOD=Level 1 bonus
-GlobalIndicatorValue.NEUTRAL=Conform
-GlobalIndicatorValue.VERY_BAD=Level 2 penalty
-GlobalIndicatorValue.VERY_GOOD=Level 2 bonus
-LocationType.AUCTION=Auction
-LocationType.DISTRICT=District
-LocationType.PORT=Port
-LocationType.REGION=Region
-ObsProgram.OBSDEB=ObsDeb
-ObsProgram.OBSMER=ObsMer
-ObsProgram.OBSVENTE=ObsVente
-ObservationType.FIELD_WORK_OBSERVATION=Field work observation
-ObservationType.FIELD_WORK_SURVEY=Field work survey
-ObservationType.PHONE_CALL=Survey by phone
-ObservedDataControl.ACCEPTED=
-ObservedDataControl.CORRECTION_ASKED=
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultaneous \: All commercial species
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultaneous \: G1+G2 species
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultaneous \: G1 species
-SamplingStrategy.SPECIFIC_STOCK=Specific stock
-SynthesisId.DISTINCT_BOATS_COUNTS=Counts of distinct boat observed
-SynthesisId.GRAPH_BOARDING=Boarding conformance rate on a given boat
-SynthesisId.GRAPH_SAMPLING=Sampling plan completion rate
-SynthesisId.IND_ALLEGRO_REACTIVITY=Data input delay
-SynthesisId.IND_COMPLIANCE_BOARDING=Number of observers conformance
-SynthesisId.IND_CONTACT_STATE=Contacts states
-SynthesisId.IND_DATA_RELIABILITY=Data reliability
-SynthesisId.OBSERVATION_HOUR=Hours of observation in the day
-UserRole.ADMIN=Administrator
-UserRole.COORDINATOR=Coordinator
-UserRole.GUEST=Guest
-UserRole.OBSERVER=Observer
-UserRole.PROFESSIONAL=Professional
csv.import.error.missingMandatoryHeaders=The mandatory fields %s are missing
csv.import.error.unableToParseValue=Unable to parse value '%s' (column '%s', line %s)
csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s
@@ -55,91 +5,6 @@
csv.import.error.unableToSetValue=Unable to set value '%s' (entity '%s', line %s, column '%s')
csv.import.error.unrecognizedHeaders=Fields %s are not recognized. Accepted fields are %s.
csv.import.logComment=Edited through import
-fr.ifremer.wao.entity.Boat=Boats
-fr.ifremer.wao.entity.BoatGroup=Boat groups
-fr.ifremer.wao.entity.ContactStateMotif=Refusal movites
-fr.ifremer.wao.entity.FishingGearDCF.=Not specified
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Boat dredges
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Hand dredges
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Aerial traps
-fr.ifremer.wao.entity.FishingGearDCF.FCN=Cast nets
-fr.ifremer.wao.entity.FishingGearDCF.FG=Falling gear (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Traps (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Stationary uncovered pound nets
-fr.ifremer.wao.entity.FishingGearDCF.FPO=Pots
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Stow nets
-fr.ifremer.wao.entity.FishingGearDCF.FWR=Barriers, fences, weirs, etc.
-fr.ifremer.wao.entity.FishingGearDCF.FYK=Fyke nets
-fr.ifremer.wao.entity.FishingGearDCF.GEN=Gillnets and entangling nets (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.GN=Gillnets (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.GNC=Encircling gillnets
-fr.ifremer.wao.entity.FishingGearDCF.GND=Driftnets
-fr.ifremer.wao.entity.FishingGearDCF.GNF=Fixed gillnets
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Set gillnets (anchored)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Gillnetters
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Combined gillnets-trammel nets
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Trammel nets
-fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpoons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Mechanized dredges
-fr.ifremer.wao.entity.FishingGearDCF.HMP=Pumps
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Harvesting machines (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.LA=Wihtout purse lines (lampara)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Handlines and pole-lines (mechanized)
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Handlines and pole-lines (hand-operated)
-fr.ifremer.wao.entity.FishingGearDCF.LL=Longlines (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Drifting longlines
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Set longlines
-fr.ifremer.wao.entity.FishingGearDCF.LN=Lift nets (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Boat-operated lift nets
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Portable lift nets
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Shore-operated stationary lift nets
-fr.ifremer.wao.entity.FishingGearDCF.LTL=Trolling lines
-fr.ifremer.wao.entity.FishingGearDCF.LX=Hooks and lines (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.MIS=Miscellaneous
-fr.ifremer.wao.entity.FishingGearDCF.NK=Gear not know or not specified
-fr.ifremer.wao.entity.FishingGearDCF.OT=Otter trawls (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Otter trawls
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Otter trawls
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Other twin trawls
-fr.ifremer.wao.entity.FishingGearDCF.PS=With purse lines (purse seines)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=One boat operated purse seines
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Tow boats operated purse seines
-fr.ifremer.wao.entity.FishingGearDCF.PT=Pair trawls (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.PTB=Pair trawls
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Pair trawls
-fr.ifremer.wao.entity.FishingGearDCF.RG=Recreational fishing gear
-fr.ifremer.wao.entity.FishingGearDCF.SB=Beach seines
-fr.ifremer.wao.entity.FishingGearDCF.SDN=Danish seines
-fr.ifremer.wao.entity.FishingGearDCF.SPR=Pair seines
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Scottish seines
-fr.ifremer.wao.entity.FishingGearDCF.SV=Boat or vessel seines
-fr.ifremer.wao.entity.FishingGearDCF.SW=Seine nets (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Bottom trawls (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Beam trawls
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Nephrops trawls
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Shrimp trawls
-fr.ifremer.wao.entity.FishingGearDCF.TM=Midwater trawls (not specified)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Shrimp trawls
-fr.ifremer.wao.entity.FishingGearDCF.TX=Other trawls (not specified)
-fr.ifremer.wao.entity.FishingZone=Fishing zones
-fr.ifremer.wao.entity.ObsDebCode=ObsDeb codes
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Not specified
-fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algae
-fr.ifremer.wao.entity.TargetSpeciesDCF.ANA=Espèces anadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Catadromous species
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacean
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRW=Langouste
-fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Scallop
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Demersal species
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Deep water species
-fr.ifremer.wao.entity.TargetSpeciesDCF.FIF=Finfish
-fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Flatfishes
-fr.ifremer.wao.entity.TargetSpeciesDCF.LP=Tall pelagic
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Tall pelagic
-fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Molluscs
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Small pelagic
-fr.ifremer.wao.entity.TerrestrialDivision=Terrestrial divisions
-fr.ifremer.wao.entity.TerrestrialLocation=Terrestrial locations
wao.business.boat.validation.immatriculation.wrongFormat=The boat registry number must be composed of 6 digits
wao.business.contact.validation.commentAdminNecessaryForDataReliability=You must precise in admin comment why data reliability is '%s'
wao.business.contact.validation.commentMissingForState=You must give a comment for state '%s'
@@ -154,155 +19,6 @@
wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information about an accidental capture
wao.business.other=Other
wao.business.readOnly=(read-only)
-wao.error.boat.canCreateContact=
-wao.error.boat.getNbBoarding=
-wao.error.boatInfos.getNbBoardingForCompany=
-wao.error.context.close=
-wao.error.context.encodeString=
-wao.error.context.getRootContext=
-wao.error.context.parse=
-wao.error.context.rollback=
-wao.error.context.start=
-wao.error.context.stop=
-wao.error.global.createDefaultAdmin=
-wao.error.sampleMonth.addRealTideTime=
-wao.error.sampleRow.saveSampleRowLog=
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=
-wao.error.serviceBoat.exportBoatCsv=
-wao.error.serviceBoat.getActivityCalendarLogAccessFile=
-wao.error.serviceBoat.getActivityCalendarLogFile=
-wao.error.serviceBoat.getAllActiveBoats=
-wao.error.serviceBoat.getBoat=
-wao.error.serviceBoat.getBoatNamesStartWith=
-wao.error.serviceBoat.getBoatsByFilter=
-wao.error.serviceBoat.getBoatsByImmatriculations=
-wao.error.serviceBoat.getCompanyBoatInfos=
-wao.error.serviceBoat.getLastActivityCalendar=
-wao.error.serviceBoat.getNbBoatsByFilter=
-wao.error.serviceBoat.getPossibleValuesForFilter=
-wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=
-wao.error.serviceBoat.importBoatCsv=
-wao.error.serviceBoat.importBoatGroups=
-wao.error.serviceBoat.newBoatFilter=
-wao.error.serviceCartography.exportContactMotifsStatisticsKml=
-wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
-wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=
-wao.error.serviceChart.getContactPieChartData=
-wao.error.serviceChart.getContactPieChartUrl=
-wao.error.serviceContact.exportContactCsv=
-wao.error.serviceContact.getContact=
-wao.error.serviceContact.getContacts=
-wao.error.serviceContact.getNbContacts=
-wao.error.serviceContact.getNewContact=
-wao.error.serviceContact.getPossibleObsDebCodes=
-wao.error.serviceContact.getPossibleTerrestrialLocations=
-wao.error.serviceContact.getPossibleValuesForFilter=
-wao.error.serviceContact.getSubstitutesForBoat=
-wao.error.serviceContact.importContactCsv=
-wao.error.serviceContact.isBoatSampled=
-wao.error.serviceContact.newContact=
-wao.error.serviceContact.newContactFilter=
-wao.error.serviceContact.saveComment=
-wao.error.serviceContact.saveContact=
-wao.error.serviceContact.sendContactDoneEmail=
-wao.error.serviceContact.updateSampleMonthTidesValue=
-wao.error.serviceContact.validateContact=
-wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=
-wao.error.serviceNews.newNews=
-wao.error.serviceNews.saveNews=
-wao.error.serviceReferential.getAllContactStateMotifs=
-wao.error.serviceReferential.getAllFishingGearDCFs=
-wao.error.serviceReferential.getAllObsDebCodes=
-wao.error.serviceReferential.getAllObservationUnits=
-wao.error.serviceReferential.getAllPorts=
-wao.error.serviceReferential.getAllPortsAndAuctions=
-wao.error.serviceReferential.getAllRegionIfremers=
-wao.error.serviceReferential.getAllTargetSpeciesDCFs=
-wao.error.serviceReferential.getAllTerrestrialDistricts=
-wao.error.serviceReferential.getAllTerrestrialLocations=
-wao.error.serviceReferential.getCodesDCF5Contains=
-wao.error.serviceReferential.getFacades=
-wao.error.serviceReferential.getFishingZones=
-wao.error.serviceReferential.getProfessions=
-wao.error.serviceReferential.getReferentialMeta=
-wao.error.serviceReferential.getReferentialStates=
-wao.error.serviceReferential.getSectors=
-wao.error.serviceReferential.getTerrestrialDistrict=
-wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importContactStateMotives=
-wao.error.serviceReferential.importDCFcodes=
-wao.error.serviceReferential.importFishingZoneCsv=
-wao.error.serviceReferential.importInitialContactStateMotifs=
-wao.error.serviceReferential.importObsDebCodes=
-wao.error.serviceReferential.importTerrestrialDivisions=
-wao.error.serviceReferential.importTerrestrialLocations=
-wao.error.serviceReferential.initialImport=
-wao.error.serviceReferential.updateAllContactStatesMotifs=
-wao.error.serviceReferential.updateReferentialMeta=
-wao.error.serviceSampling.countSampleRows=
-wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=
-wao.error.serviceSampling.deleteSampleRow=
-wao.error.serviceSampling.exportSamplingPlanCsv=
-wao.error.serviceSampling.exportSamplingPlanICalendar=
-wao.error.serviceSampling.getDCFGears=
-wao.error.serviceSampling.getDCFSpecies=
-wao.error.serviceSampling.getNewProfession=
-wao.error.serviceSampling.getNewSampleMonth=
-wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=
-wao.error.serviceSampling.getNewSampleRowLog=
-wao.error.serviceSampling.getObservationTimesInDays=
-wao.error.serviceSampling.getPossibleValuesForFilter=
-wao.error.serviceSampling.getPrograms=
-wao.error.serviceSampling.getSampleRow=
-wao.error.serviceSampling.getSampleRowByCode=
-wao.error.serviceSampling.getSampleRowsByFilter=
-wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=
-wao.error.serviceSampling.importSamplingPlanCsv=
-wao.error.serviceSampling.newOperation=
-wao.error.serviceSampling.newSampleRow=
-wao.error.serviceSampling.newSamplingFilter=
-wao.error.serviceSampling.validateSampleRow=
-wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=
-wao.error.serviceSynthesis.getBoatsCount=
-wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=
-wao.error.serviceSynthesis.getContactPieChartData=
-wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=
-wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=
-wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Unable to get data about global synthesis parameters
-wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Unable to update global synthesis parameters
-wao.error.serviceUser.acceptCgu=
-wao.error.serviceUser.addTokensToAllProfiles=
-wao.error.serviceUser.connect=
-wao.error.serviceUser.createDefaultAdmin=
-wao.error.serviceUser.createUpdateCompany=
-wao.error.serviceUser.createUpdateUser=
-wao.error.serviceUser.deleteCompany=
-wao.error.serviceUser.deleteUser=
-wao.error.serviceUser.existLogin=
-wao.error.serviceUser.forgetPassword=
-wao.error.serviceUser.getCompanies=
-wao.error.serviceUser.getCompany=
-wao.error.serviceUser.getConnectedUserByToken=
-wao.error.serviceUser.getNewUser=
-wao.error.serviceUser.getObservers=
-wao.error.serviceUser.getUserByToken=
-wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=
wao.export.ical.desc=wtih %s
wao.export.ical.title=ObsDeb Observation
wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact
Modified: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -1,53 +1,3 @@
-ContactPieChartConstant.OTHER=Autres
-ContactPieChartConstant.REALIZED=Réalisés
-ContactPieChartConstant.REFUSED=Refusés
-ContactState.CONTACT_DEFINITELY_REFUSED=Refus définitif
-ContactState.CONTACT_REFUSED=Refus
-ContactState.CONTACT_START=Contact pris
-ContactState.OBSERVATION_CANCELLED=Annulée
-ContactState.OBSERVATION_DONE=Observation réalisée
-ContactState.OBSERVATION_EXPECTED=Observation programmée
-ContactState.OBSERVATION_NOT_DONE=Non observé
-DataReliability.CORRECTION_ASKED=Correction demandée
-DataReliability.DOUBTFUL=Douteuse
-DataReliability.NOT_PROVIDED=Non contrôlée
-DataReliability.NOT_RELIABLE=Non exploitable
-DataReliability.RELIABLE=Exploitable
-DataReliability.UNKNOWN=Inconnue
-GlobalIndicatorValue.BAD=Pénalité de niveau 1
-GlobalIndicatorValue.GOOD=Bonus de niveau 1
-GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
-GlobalIndicatorValue.VERY_BAD=Pénalité de niveau 2
-GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
-LocationType.AUCTION=Criée
-LocationType.DISTRICT=Quartier maritime
-LocationType.PORT=Port
-LocationType.REGION=Région Ifremer
-ObsProgram.OBSDEB=ObsDeb
-ObsProgram.OBSMER=ObsMer
-ObsProgram.OBSVENTE=ObsVente
-ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
-ObservationType.FIELD_WORK_SURVEY=Enquête de terrain
-ObservationType.PHONE_CALL=Enquête téléphonique
-ObservedDataControl.ACCEPTED=Valide
-ObservedDataControl.CORRECTION_ASKED=Correction demandée
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultané \: Toutes espèces commerciales
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultané \: espèces G1+G2
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultané \: espèces G1
-SamplingStrategy.SPECIFIC_STOCK=Stock spécifique
-SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observés
-SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un même navire conforme aux exigences
-SynthesisId.GRAPH_SAMPLING=Taux de réalisation du plan d'échantillonage
-SynthesisId.IND_ALLEGRO_REACTIVITY=Délais de transmission des données
-SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqués
-SynthesisId.IND_CONTACT_STATE=États des contacts
-SynthesisId.IND_DATA_RELIABILITY=Qualité de la donnée
-SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journée
-UserRole.ADMIN=Administrateur
-UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invité
-UserRole.OBSERVER=Observateur
-UserRole.PROFESSIONAL=Professionnel
csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants
csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s)
csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s
@@ -55,91 +5,6 @@
csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s')
csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s.
csv.import.logComment=Modification depuis import
-fr.ifremer.wao.entity.Boat=Navires
-fr.ifremer.wao.entity.BoatGroup=Stratification des navires
-fr.ifremer.wao.entity.ContactStateMotif=Motifs de refus
-fr.ifremer.wao.entity.FishingGearDCF.=Non spécifié
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorquées par bateau
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues à main
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Pièges aériens
-fr.ifremer.wao.entity.FishingGearDCF.FCN=Éperviers
-fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Pièges (non-spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pièges fixes non couverts
-fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets à l'étalage (diables)
-fr.ifremer.wao.entity.FishingGearDCF.FWR=Barrages, parcs, bordigues, etc.
-fr.ifremer.wao.entity.FishingGearDCF.FYK=Verveux
-fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emmélants (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis à civelles
-fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
-fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants dérivants (filets dérivants)
-fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants calés (ancrés)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Trémailleurs
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Trémails et filets maillants combinés
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Trémails
-fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues mécanisées
-fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de récolte (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes à main et lignes avec cannes (mécanisées)
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes à main et lignes à cannes (manœuvrées à la main)
-fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non spécifiées)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres dérivantes
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres calées ou semi-flottantes
-fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulevés (non spécifiés)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulevés manœuvrées du bateau
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulevés portatifs
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulevés fixes manœuvrées du rivage
-fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de traîne
-fr.ifremer.wao.entity.FishingGearDCF.LX=Lignes et palangres
-fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
-fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non spécifiés
-fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts à panneaux (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond à panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts pélagiques à panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux à panneaux
-fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes manœuvrées par un bateau
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes manœuvrées par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-bœufs (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-bœufs de fond
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-bœufs pélagiques
-fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de pêche révréative
-fr.ifremer.wao.entity.FishingGearDCF.SB=Sennes de plages
-fr.ifremer.wao.entity.FishingGearDCF.SDN=Sennes danoises
-fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes manœuvrées par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes écossaises
-fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes halées à bord
-fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non spécifiées)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts à perche
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut à langoustines
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut à crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut pélagique (non spécifié)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut pélagique à crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non spécifié)
-fr.ifremer.wao.entity.FishingZone=Zones de pêche
-fr.ifremer.wao.entity.ObsDebCode=Codes métiers ObsDeb
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Non spécifié
-fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
-fr.ifremer.wao.entity.TargetSpeciesDCF.ANA=Espèces anadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Espèces catadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacés
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRW=Langouste
-fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Espèces démersales
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Espèces d'eaux profondes
-fr.ifremer.wao.entity.TargetSpeciesDCF.FIF=Poissons
-fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands pélagiques
-fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
-fr.ifremer.wao.entity.TerrestrialDivision=Stratification géographique
-fr.ifremer.wao.entity.TerrestrialLocation=Lieux terrestres
wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres
wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
wao.business.contact.validation.commentMissingForState=Il faut préciser un commentaire pour l'état '%s'
@@ -154,154 +19,6 @@
wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle
wao.business.other=Autre
wao.business.readOnly=(lecture seule)
-wao.error.boat.canCreateContact=Impossible de créer un nouveau contact pour la société %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s pour la société %2$s
-wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA
-wao.error.context.encodeString=
-wao.error.context.getRootContext=Une erreur est survenue pour la récupération du contexte principale de ToPIA
-wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s
-wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante
-wao.error.context.start=Une erreur est survenue pendant le démarrage de l'application
-wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application
-wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de marées réels pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire écrit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de créer ou modifier les informations liés au navire %1$d pour la société %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires sélectionnés
-wao.error.serviceBoat.getActivityCalendarLogAccessFile=
-wao.error.serviceBoat.getActivityCalendarLogFile=
-wao.error.serviceBoat.getAllActiveBoats=
-wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de récupérer les navires avec un nom commencant par '%1$s'
-wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getBoatsByImmatriculations=La chaîne d'immatriculations est incorrect \! Chaque immatriculation doit posséder 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de récupérer les informations du navire immatriculé %1$d pour la société %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activité du navire %1$s (%2$d)
-wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires
-wao.error.serviceBoat.getPossibleValuesForFilter=
-wao.error.serviceBoat.getShipOwnerNamesContains=
-wao.error.serviceBoat.importActivityCalendarCsv=Problème d'import du fichier CSV des calendriers d'activité
-wao.error.serviceBoat.importBoatCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier.
-wao.error.serviceBoat.importBoatGroups=
-wao.error.serviceBoat.newBoatFilter=
-wao.error.serviceCartography.exportContactMotifsStatisticsKml=
-wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
-wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonnées des quartiers des navires. Vérifiez la documentation pour le bon format du fichier Kml.
-wao.error.serviceChart.getContactPieChartData=
-wao.error.serviceChart.getContactPieChartUrl=
-wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts
-wao.error.serviceContact.getContact=Impossible de trouver le contact
-wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
-wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtrés
-wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
-wao.error.serviceContact.getPossibleObsDebCodes=
-wao.error.serviceContact.getPossibleTerrestrialLocations=
-wao.error.serviceContact.getPossibleValuesForFilter=
-wao.error.serviceContact.getSubstitutesForBoat=
-wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
-wao.error.serviceContact.isBoatSampled=
-wao.error.serviceContact.newContact=
-wao.error.serviceContact.newContactFilter=
-wao.error.serviceContact.saveComment=
-wao.error.serviceContact.saveContact=Impossible de sauvegarder le contact
-wao.error.serviceContact.sendContactDoneEmail=
-wao.error.serviceContact.updateSampleMonthTidesValue=
-wao.error.serviceContact.validateContact=
-wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de récupérer l'ensemble des news
-wao.error.serviceNews.newNews=
-wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
-wao.error.serviceReferential.getAllContactStateMotifs=
-wao.error.serviceReferential.getAllFishingGearDCFs=
-wao.error.serviceReferential.getAllObsDebCodes=
-wao.error.serviceReferential.getAllObservationUnits=
-wao.error.serviceReferential.getAllPorts=
-wao.error.serviceReferential.getAllPortsAndAuctions=
-wao.error.serviceReferential.getAllRegionIfremers=
-wao.error.serviceReferential.getAllTargetSpeciesDCFs=
-wao.error.serviceReferential.getAllTerrestrialDistricts=
-wao.error.serviceReferential.getAllTerrestrialLocations=
-wao.error.serviceReferential.getCodesDCF5Contains=
-wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
-wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de pêche
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des métiers
-wao.error.serviceReferential.getReferentialMeta=
-wao.error.serviceReferential.getReferentialStates=
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de pêche
-wao.error.serviceReferential.getTerrestrialDistrict=
-wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importContactStateMotives=
-wao.error.serviceReferential.importDCFcodes=Impossible de créer le référentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de détails.
-wao.error.serviceReferential.importInitialContactStateMotifs=
-wao.error.serviceReferential.importObsDebCodes=
-wao.error.serviceReferential.importTerrestrialDivisions=
-wao.error.serviceReferential.importTerrestrialLocations=
-wao.error.serviceReferential.initialImport=
-wao.error.serviceReferential.updateAllContactStatesMotifs=
-wao.error.serviceReferential.updateReferentialMeta=
-wao.error.serviceSampling.countSampleRows=
-wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'échantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'échantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'échantillonnage sur la période du %1$s au %2$s
-wao.error.serviceSampling.exportSamplingPlanICalendar=
-wao.error.serviceSampling.getDCFGears=
-wao.error.serviceSampling.getDCFSpecies=
-wao.error.serviceSampling.getNewProfession=
-wao.error.serviceSampling.getNewSampleMonth=
-wao.error.serviceSampling.getNewSampleRow=
-wao.error.serviceSampling.getNewSampleRowCode=Impossible de récupérer un nouveau code pour une ligne d'échantillonnage
-wao.error.serviceSampling.getNewSampleRowLog=
-wao.error.serviceSampling.getObservationTimesInDays=
-wao.error.serviceSampling.getPossibleValuesForFilter=
-wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
-wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'échantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'échantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de récupérer la liste des lignes du plan d'échantillonnage
-wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de récupérer la liste des lignes du plan d'échantillonnage
-wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
-wao.error.serviceSampling.newOperation=
-wao.error.serviceSampling.newSampleRow=
-wao.error.serviceSampling.newSamplingFilter=
-wao.error.serviceSampling.validateSampleRow=
-wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de récupérer les données du graphique concernant les embarquements sur les navires
-wao.error.serviceSynthesis.getBoatsCount=
-wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de récupérer l'indicateur de réactivité sur les dates de saisies dans Allegro
-wao.error.serviceSynthesis.getContactPieChartData=
-wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
-wao.error.serviceSynthesis.getContactStateStatistics=Impossible de récupérer les statistiques sur les états des contacts
-wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de récupérer les données pour le graphique dynamique des efforts de marées
-wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de récupérer les données concernant les indicateurs pour la synthèse globale
-wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de récupérer l'indicateur de non respect du nombre d'observateurs embarqués
-wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre à jour les paramètres de la synthèse globale
-wao.error.serviceUser.acceptCgu=
-wao.error.serviceUser.addTokensToAllProfiles=
-wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion
-wao.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut
-wao.error.serviceUser.createUpdateCompany=Impossible de créer ou de mettre à jour la société
-wao.error.serviceUser.createUpdateUser=Impossible de créer ou de mettre à jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression
-wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur
-wao.error.serviceUser.existLogin=
-wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe
-wao.error.serviceUser.getCompanies=Impossible de récupérer la liste des sociétés
-wao.error.serviceUser.getCompany=
-wao.error.serviceUser.getConnectedUserByToken=
-wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur
-wao.error.serviceUser.getObservers=Impossible de récupérer la liste des observateurs
-wao.error.serviceUser.getUserByToken=
-wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de récupérer la liste des utilisateurs de la société %1$s
wao.export.ical.desc=avec %s
wao.export.ical.title=Observation ObsDeb
wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -1,17 +1,3 @@
-ObservedDataControl.ACCEPTED=Accepted
-ObservedDataControl.CORRECTION_ASKED=Correction asked
-StrategyValues.CONTACTS_STATES=Contact states by boat district
-StrategyValues.CONTACTS_STATES_MOTIFS=Refusal motives
-StrategyValues.CONTACTS_STATES_SEABOARDS=Contact states by seaboard
-SynthesisId.DISTINCT_BOATS_COUNTS=
-SynthesisId.GRAPH_BOARDING=
-SynthesisId.GRAPH_SAMPLING=
-SynthesisId.IND_ALLEGRO_REACTIVITY=
-SynthesisId.IND_COMPLIANCE_BOARDING=
-SynthesisId.IND_CONTACT_STATE=
-SynthesisId.IND_DATA_RELIABILITY=
-SynthesisId.OBSERVATION_HOUR=
-cgu=
wao.ui.acceptCgu=I've read and accept the terms of use
wao.ui.action.acceptContact=Validate contact
wao.ui.action.add=Add
Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties
===================================================================
--- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 11:14:09 UTC (rev 1693)
+++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-02-28 11:23:08 UTC (rev 1694)
@@ -1,15 +1,3 @@
-StrategyValues.CONTACTS_STATES=États des contacts selon le quartier maritime
-StrategyValues.CONTACTS_STATES_MOTIFS=Motifs de refus
-StrategyValues.CONTACTS_STATES_SEABOARDS=États des contacts selon la façade maritime
-SynthesisId.DISTINCT_BOATS_COUNTS=
-SynthesisId.GRAPH_BOARDING=
-SynthesisId.GRAPH_SAMPLING=
-SynthesisId.IND_ALLEGRO_REACTIVITY=
-SynthesisId.IND_COMPLIANCE_BOARDING=
-SynthesisId.IND_CONTACT_STATE=
-SynthesisId.IND_DATA_RELIABILITY=
-SynthesisId.OBSERVATION_HOUR=
-cgu=
wao.ui.acceptCgu=J'ai lu et j'accepte les conditions d'utilisation
wao.ui.action.acceptContact=Valider le contact
wao.ui.action.add=Ajouter
@@ -278,6 +266,7 @@
wao.ui.page.ContactForm.title=Modification d'un contact
wao.ui.page.Contacts.title=Contacts
wao.ui.page.Index.title=Accueil
+wao.ui.page.ReferentialManagement.title=Gestion des référentiels
wao.ui.page.SamplingPlan.title=Plan d'échantillonnage
wao.ui.page.Synthesis.title=Synthèse
wao.ui.page.UserProfileForm.title=Gestion du profil
1
0
28 Feb '14
Author: bleny
Date: 2014-02-28 12:14:09 +0100 (Fri, 28 Feb 2014)
New Revision: 1693
Url: http://codelutin.com/projects/wao/repository/revisions/1693
Log:
duplicate persistence bundles to services
Added:
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
Copied: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties (from rev 1679, trunk/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties)
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties (rev 0)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-02-28 11:14:09 UTC (rev 1693)
@@ -0,0 +1,327 @@
+ContactPieChartConstant.OTHER=Others
+ContactPieChartConstant.REALIZED=Realized
+ContactPieChartConstant.REFUSED=Refused
+ContactState.CONTACT_DEFINITELY_REFUSED=Definitely refused
+ContactState.CONTACT_REFUSED=Refused
+ContactState.CONTACT_START=Contact started
+ContactState.OBSERVATION_CANCELLED=Cancelled
+ContactState.OBSERVATION_DONE=Observation done
+ContactState.OBSERVATION_EXPECTED=Observation expected
+ContactState.OBSERVATION_NOT_DONE=Not observed
+DataReliability.CORRECTION_ASKED=Correction asked
+DataReliability.DOUBTFUL=Doubtful
+DataReliability.NOT_PROVIDED=Not provided
+DataReliability.NOT_RELIABLE=Non reliable
+DataReliability.RELIABLE=Reliable
+DataReliability.UNKNOWN=Unknown
+GlobalIndicatorValue.BAD=Level 1 penalty
+GlobalIndicatorValue.GOOD=Level 1 bonus
+GlobalIndicatorValue.NEUTRAL=Conform
+GlobalIndicatorValue.VERY_BAD=Level 2 penalty
+GlobalIndicatorValue.VERY_GOOD=Level 2 bonus
+LocationType.AUCTION=Auction
+LocationType.DISTRICT=District
+LocationType.PORT=Port
+LocationType.REGION=Region
+ObsProgram.OBSDEB=ObsDeb
+ObsProgram.OBSMER=ObsMer
+ObsProgram.OBSVENTE=ObsVente
+ObservationType.FIELD_WORK_OBSERVATION=Field work observation
+ObservationType.FIELD_WORK_SURVEY=Field work survey
+ObservationType.PHONE_CALL=Survey by phone
+ObservedDataControl.ACCEPTED=
+ObservedDataControl.CORRECTION_ASKED=
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultaneous \: All commercial species
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultaneous \: G1+G2 species
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultaneous \: G1 species
+SamplingStrategy.SPECIFIC_STOCK=Specific stock
+SynthesisId.DISTINCT_BOATS_COUNTS=Counts of distinct boat observed
+SynthesisId.GRAPH_BOARDING=Boarding conformance rate on a given boat
+SynthesisId.GRAPH_SAMPLING=Sampling plan completion rate
+SynthesisId.IND_ALLEGRO_REACTIVITY=Data input delay
+SynthesisId.IND_COMPLIANCE_BOARDING=Number of observers conformance
+SynthesisId.IND_CONTACT_STATE=Contacts states
+SynthesisId.IND_DATA_RELIABILITY=Data reliability
+SynthesisId.OBSERVATION_HOUR=Hours of observation in the day
+UserRole.ADMIN=Administrator
+UserRole.COORDINATOR=Coordinator
+UserRole.GUEST=Guest
+UserRole.OBSERVER=Observer
+UserRole.PROFESSIONAL=Professional
+csv.import.error.missingMandatoryHeaders=The mandatory fields %s are missing
+csv.import.error.unableToParseValue=Unable to parse value '%s' (column '%s', line %s)
+csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s
+csv.import.error.unableToReadLine=Unable to read line %s
+csv.import.error.unableToSetValue=Unable to set value '%s' (entity '%s', line %s, column '%s')
+csv.import.error.unrecognizedHeaders=Fields %s are not recognized. Accepted fields are %s.
+csv.import.logComment=Edited through import
+fr.ifremer.wao.entity.Boat=Boats
+fr.ifremer.wao.entity.BoatGroup=Boat groups
+fr.ifremer.wao.entity.ContactStateMotif=Refusal movites
+fr.ifremer.wao.entity.FishingGearDCF.=Not specified
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Boat dredges
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Hand dredges
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Aerial traps
+fr.ifremer.wao.entity.FishingGearDCF.FCN=Cast nets
+fr.ifremer.wao.entity.FishingGearDCF.FG=Falling gear (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Traps (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Stationary uncovered pound nets
+fr.ifremer.wao.entity.FishingGearDCF.FPO=Pots
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Stow nets
+fr.ifremer.wao.entity.FishingGearDCF.FWR=Barriers, fences, weirs, etc.
+fr.ifremer.wao.entity.FishingGearDCF.FYK=Fyke nets
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Gillnets and entangling nets (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.GN=Gillnets (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.GNC=Encircling gillnets
+fr.ifremer.wao.entity.FishingGearDCF.GND=Driftnets
+fr.ifremer.wao.entity.FishingGearDCF.GNF=Fixed gillnets
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Set gillnets (anchored)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Gillnetters
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Combined gillnets-trammel nets
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Trammel nets
+fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpoons
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Mechanized dredges
+fr.ifremer.wao.entity.FishingGearDCF.HMP=Pumps
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Harvesting machines (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.LA=Wihtout purse lines (lampara)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Handlines and pole-lines (mechanized)
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Handlines and pole-lines (hand-operated)
+fr.ifremer.wao.entity.FishingGearDCF.LL=Longlines (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Drifting longlines
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Set longlines
+fr.ifremer.wao.entity.FishingGearDCF.LN=Lift nets (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Boat-operated lift nets
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Portable lift nets
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Shore-operated stationary lift nets
+fr.ifremer.wao.entity.FishingGearDCF.LTL=Trolling lines
+fr.ifremer.wao.entity.FishingGearDCF.LX=Hooks and lines (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.MIS=Miscellaneous
+fr.ifremer.wao.entity.FishingGearDCF.NK=Gear not know or not specified
+fr.ifremer.wao.entity.FishingGearDCF.OT=Otter trawls (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Otter trawls
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Otter trawls
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Other twin trawls
+fr.ifremer.wao.entity.FishingGearDCF.PS=With purse lines (purse seines)
+fr.ifremer.wao.entity.FishingGearDCF.PS1=One boat operated purse seines
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Tow boats operated purse seines
+fr.ifremer.wao.entity.FishingGearDCF.PT=Pair trawls (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.PTB=Pair trawls
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Pair trawls
+fr.ifremer.wao.entity.FishingGearDCF.RG=Recreational fishing gear
+fr.ifremer.wao.entity.FishingGearDCF.SB=Beach seines
+fr.ifremer.wao.entity.FishingGearDCF.SDN=Danish seines
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Pair seines
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Scottish seines
+fr.ifremer.wao.entity.FishingGearDCF.SV=Boat or vessel seines
+fr.ifremer.wao.entity.FishingGearDCF.SW=Seine nets (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Bottom trawls (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Beam trawls
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Nephrops trawls
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Shrimp trawls
+fr.ifremer.wao.entity.FishingGearDCF.TM=Midwater trawls (not specified)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Shrimp trawls
+fr.ifremer.wao.entity.FishingGearDCF.TX=Other trawls (not specified)
+fr.ifremer.wao.entity.FishingZone=Fishing zones
+fr.ifremer.wao.entity.ObsDebCode=ObsDeb codes
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Not specified
+fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algae
+fr.ifremer.wao.entity.TargetSpeciesDCF.ANA=Espèces anadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Catadromous species
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacean
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRW=Langouste
+fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Scallop
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Demersal species
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Deep water species
+fr.ifremer.wao.entity.TargetSpeciesDCF.FIF=Finfish
+fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Flatfishes
+fr.ifremer.wao.entity.TargetSpeciesDCF.LP=Tall pelagic
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Tall pelagic
+fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Molluscs
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Small pelagic
+fr.ifremer.wao.entity.TerrestrialDivision=Terrestrial divisions
+fr.ifremer.wao.entity.TerrestrialLocation=Terrestrial locations
+wao.business.boat.validation.immatriculation.wrongFormat=The boat registry number must be composed of 6 digits
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=You must precise in admin comment why data reliability is '%s'
+wao.business.contact.validation.commentMissingForState=You must give a comment for state '%s'
+wao.business.contact.validation.contactStateMotifMissing=You must precise a motif for the refusal
+wao.business.contact.validation.contactStateMotifUnwanted=You must not give a motif
+wao.business.contact.validation.dataReliabilityMissingForValidation=You must provide data reliability before validating
+wao.business.contact.validation.missingHoursOfBeginEndObservation=You must provide accurate time for the beginning and the end of observation
+wao.business.contact.validation.observedDataControlMissingForValidation=You must provide a value for observed data control
+wao.business.contact.validation.restitutionMissingForValidation=You must provide the restitution forward date
+wao.business.entity.UserProfile.description=%s on %s%s
+wao.business.mammalsCapture.mail.message=Hello,\n\nAn observer of the ObsMer program provided to WAO the following information\:\n\nTide\: %s\nProfession\: %s\n\nAccidental capture\:\n%s\n\nBest regards,\n\nObsmer program\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information about an accidental capture
+wao.business.other=Other
+wao.business.readOnly=(read-only)
+wao.error.boat.canCreateContact=
+wao.error.boat.getNbBoarding=
+wao.error.boatInfos.getNbBoardingForCompany=
+wao.error.context.close=
+wao.error.context.encodeString=
+wao.error.context.getRootContext=
+wao.error.context.parse=
+wao.error.context.rollback=
+wao.error.context.start=
+wao.error.context.stop=
+wao.error.global.createDefaultAdmin=
+wao.error.sampleMonth.addRealTideTime=
+wao.error.sampleRow.saveSampleRowLog=
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=
+wao.error.serviceBoat.exportBoatCsv=
+wao.error.serviceBoat.getActivityCalendarLogAccessFile=
+wao.error.serviceBoat.getActivityCalendarLogFile=
+wao.error.serviceBoat.getAllActiveBoats=
+wao.error.serviceBoat.getBoat=
+wao.error.serviceBoat.getBoatNamesStartWith=
+wao.error.serviceBoat.getBoatsByFilter=
+wao.error.serviceBoat.getBoatsByImmatriculations=
+wao.error.serviceBoat.getCompanyBoatInfos=
+wao.error.serviceBoat.getLastActivityCalendar=
+wao.error.serviceBoat.getNbBoatsByFilter=
+wao.error.serviceBoat.getPossibleValuesForFilter=
+wao.error.serviceBoat.getShipOwnerNamesContains=
+wao.error.serviceBoat.importActivityCalendarCsv=
+wao.error.serviceBoat.importBoatCsv=
+wao.error.serviceBoat.importBoatGroups=
+wao.error.serviceBoat.newBoatFilter=
+wao.error.serviceCartography.exportContactMotifsStatisticsKml=
+wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
+wao.error.serviceCartography.exportContactStatisticsKml=
+wao.error.serviceCartography.importBoatDistrictKml=
+wao.error.serviceChart.getContactPieChartData=
+wao.error.serviceChart.getContactPieChartUrl=
+wao.error.serviceContact.exportContactCsv=
+wao.error.serviceContact.getContact=
+wao.error.serviceContact.getContacts=
+wao.error.serviceContact.getNbContacts=
+wao.error.serviceContact.getNewContact=
+wao.error.serviceContact.getPossibleObsDebCodes=
+wao.error.serviceContact.getPossibleTerrestrialLocations=
+wao.error.serviceContact.getPossibleValuesForFilter=
+wao.error.serviceContact.getSubstitutesForBoat=
+wao.error.serviceContact.importContactCsv=
+wao.error.serviceContact.isBoatSampled=
+wao.error.serviceContact.newContact=
+wao.error.serviceContact.newContactFilter=
+wao.error.serviceContact.saveComment=
+wao.error.serviceContact.saveContact=
+wao.error.serviceContact.sendContactDoneEmail=
+wao.error.serviceContact.updateSampleMonthTidesValue=
+wao.error.serviceContact.validateContact=
+wao.error.serviceNews.getNewNews=
+wao.error.serviceNews.getNews=
+wao.error.serviceNews.newNews=
+wao.error.serviceNews.saveNews=
+wao.error.serviceReferential.getAllContactStateMotifs=
+wao.error.serviceReferential.getAllFishingGearDCFs=
+wao.error.serviceReferential.getAllObsDebCodes=
+wao.error.serviceReferential.getAllObservationUnits=
+wao.error.serviceReferential.getAllPorts=
+wao.error.serviceReferential.getAllPortsAndAuctions=
+wao.error.serviceReferential.getAllRegionIfremers=
+wao.error.serviceReferential.getAllTargetSpeciesDCFs=
+wao.error.serviceReferential.getAllTerrestrialDistricts=
+wao.error.serviceReferential.getAllTerrestrialLocations=
+wao.error.serviceReferential.getCodesDCF5Contains=
+wao.error.serviceReferential.getFacades=
+wao.error.serviceReferential.getFishingZones=
+wao.error.serviceReferential.getProfessions=
+wao.error.serviceReferential.getReferentialMeta=
+wao.error.serviceReferential.getReferentialStates=
+wao.error.serviceReferential.getSectors=
+wao.error.serviceReferential.getTerrestrialDistrict=
+wao.error.serviceReferential.importContactStateMotifs=
+wao.error.serviceReferential.importContactStateMotives=
+wao.error.serviceReferential.importDCFcodes=
+wao.error.serviceReferential.importFishingZoneCsv=
+wao.error.serviceReferential.importInitialContactStateMotifs=
+wao.error.serviceReferential.importObsDebCodes=
+wao.error.serviceReferential.importTerrestrialDivisions=
+wao.error.serviceReferential.importTerrestrialLocations=
+wao.error.serviceReferential.initialImport=
+wao.error.serviceReferential.updateAllContactStatesMotifs=
+wao.error.serviceReferential.updateReferentialMeta=
+wao.error.serviceSampling.countSampleRows=
+wao.error.serviceSampling.createSampleRowLog=
+wao.error.serviceSampling.createUpdateSampleRow=
+wao.error.serviceSampling.deleteSampleRow=
+wao.error.serviceSampling.exportSamplingPlanCsv=
+wao.error.serviceSampling.exportSamplingPlanICalendar=
+wao.error.serviceSampling.getDCFGears=
+wao.error.serviceSampling.getDCFSpecies=
+wao.error.serviceSampling.getNewProfession=
+wao.error.serviceSampling.getNewSampleMonth=
+wao.error.serviceSampling.getNewSampleRow=
+wao.error.serviceSampling.getNewSampleRowCode=
+wao.error.serviceSampling.getNewSampleRowLog=
+wao.error.serviceSampling.getObservationTimesInDays=
+wao.error.serviceSampling.getPossibleValuesForFilter=
+wao.error.serviceSampling.getPrograms=
+wao.error.serviceSampling.getSampleRow=
+wao.error.serviceSampling.getSampleRowByCode=
+wao.error.serviceSampling.getSampleRowsByFilter=
+wao.error.serviceSampling.getSampleRowsForEligibility=
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=
+wao.error.serviceSampling.importSamplingPlanCsv=
+wao.error.serviceSampling.newOperation=
+wao.error.serviceSampling.newSampleRow=
+wao.error.serviceSampling.newSamplingFilter=
+wao.error.serviceSampling.validateSampleRow=
+wao.error.serviceSynthesis.getAllIndicatorLogs=
+wao.error.serviceSynthesis.getBoardingBoats=
+wao.error.serviceSynthesis.getBoatsCount=
+wao.error.serviceSynthesis.getComplianceBoardingIndicator=
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=
+wao.error.serviceSynthesis.getContactPieChartData=
+wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
+wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
+wao.error.serviceSynthesis.getContactStateStatistics=
+wao.error.serviceSynthesis.getDataReliability=
+wao.error.serviceSynthesis.getDataSampling=
+wao.error.serviceSynthesis.getDistinctBoatsCounts=
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Unable to get data about global synthesis parameters
+wao.error.serviceSynthesis.getGlobalSynthesisResult=
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=
+wao.error.serviceSynthesis.getObservationHours=
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Unable to update global synthesis parameters
+wao.error.serviceUser.acceptCgu=
+wao.error.serviceUser.addTokensToAllProfiles=
+wao.error.serviceUser.connect=
+wao.error.serviceUser.createDefaultAdmin=
+wao.error.serviceUser.createUpdateCompany=
+wao.error.serviceUser.createUpdateUser=
+wao.error.serviceUser.deleteCompany=
+wao.error.serviceUser.deleteUser=
+wao.error.serviceUser.existLogin=
+wao.error.serviceUser.forgetPassword=
+wao.error.serviceUser.getCompanies=
+wao.error.serviceUser.getCompany=
+wao.error.serviceUser.getConnectedUserByToken=
+wao.error.serviceUser.getNewUser=
+wao.error.serviceUser.getObservers=
+wao.error.serviceUser.getUserByToken=
+wao.error.serviceUser.getUserRolesByLogin=
+wao.error.serviceUser.getUsersByCompany=
+wao.export.ical.desc=wtih %s
+wao.export.ical.title=ObsDeb Observation
+wao.import.contact.failure.boatMissing=You need to precise the plate number of the boat associated to the contact
+wao.import.contact.failure.districtMissing=You need to precise the boat district
+wao.import.contact.failure.locationTypeMissing=The type of the location must be filled
+wao.import.contact.failure.sampleRowCodeMissing=The code of the sample row line is missing
+wao.import.contact.failure.terrestrialLocationMissing=The code of the terrestrial location is missing
+wao.import.contact.failure.wrongBoat=There is no boat with plate number '%s'
+wao.import.contact.failure.wrongColor=The color '%s' is not a valid color. It must be composed of 6 characters without the hash (\#), see http\://en.wikipedia.org/wiki/Web_colors
+wao.import.contact.failure.wrongContactStateMotifCode=The code '%s' is not a valid code
+wao.import.contact.failure.wrongDistrict='%s' is not a valid boat district code
+wao.import.contact.failure.wrongSampleRowCode=The is no sample row with code '%s'
+wao.import.contact.failure.wrongTerrestrialLocation=There is no location of type '%s' with code '%s'
+wao.import.failure.wrongLocationType='%s' is not a valid location type, allowed values are %s
+wao.import.failure.wrongObsDebCode=There is no profession code having code '%s'
+wao.import.failure.wrongUser=There is no user with login '%s'
+wao.import.sampleRow.failure.fishingZoneMissing=You must precise at least one fishing zone
+wao.import.sampleRow.failure.missingSampleRowCode=You must precise a code for the sample row
+wao.import.sampleRow.failure.wrongFishingZone=There is no fishing zone with the code '%s'
+wao.import.sampleRow.failure.wrongSampleRowCodeFormat=The sample row code '%s' is not compliant with the format "YYYY_PIIII"
+wao.validation.sampleRow.conflictOnObserver=Observer %s cannot be associated to the line %s because he has to observer, on the same day, for row %s
+wao.validation.sampleRow.observerNotInCompany=Observer %s doesn't work for company %s
Copied: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties (from rev 1679, trunk/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties)
===================================================================
--- trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties (rev 0)
+++ trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-02-28 11:14:09 UTC (rev 1693)
@@ -0,0 +1,326 @@
+ContactPieChartConstant.OTHER=Autres
+ContactPieChartConstant.REALIZED=Réalisés
+ContactPieChartConstant.REFUSED=Refusés
+ContactState.CONTACT_DEFINITELY_REFUSED=Refus définitif
+ContactState.CONTACT_REFUSED=Refus
+ContactState.CONTACT_START=Contact pris
+ContactState.OBSERVATION_CANCELLED=Annulée
+ContactState.OBSERVATION_DONE=Observation réalisée
+ContactState.OBSERVATION_EXPECTED=Observation programmée
+ContactState.OBSERVATION_NOT_DONE=Non observé
+DataReliability.CORRECTION_ASKED=Correction demandée
+DataReliability.DOUBTFUL=Douteuse
+DataReliability.NOT_PROVIDED=Non contrôlée
+DataReliability.NOT_RELIABLE=Non exploitable
+DataReliability.RELIABLE=Exploitable
+DataReliability.UNKNOWN=Inconnue
+GlobalIndicatorValue.BAD=Pénalité de niveau 1
+GlobalIndicatorValue.GOOD=Bonus de niveau 1
+GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
+GlobalIndicatorValue.VERY_BAD=Pénalité de niveau 2
+GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
+LocationType.AUCTION=Criée
+LocationType.DISTRICT=Quartier maritime
+LocationType.PORT=Port
+LocationType.REGION=Région Ifremer
+ObsProgram.OBSDEB=ObsDeb
+ObsProgram.OBSMER=ObsMer
+ObsProgram.OBSVENTE=ObsVente
+ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
+ObservationType.FIELD_WORK_SURVEY=Enquête de terrain
+ObservationType.PHONE_CALL=Enquête téléphonique
+ObservedDataControl.ACCEPTED=Valide
+ObservedDataControl.CORRECTION_ASKED=Correction demandée
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultané \: Toutes espèces commerciales
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultané \: espèces G1+G2
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultané \: espèces G1
+SamplingStrategy.SPECIFIC_STOCK=Stock spécifique
+SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observés
+SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un même navire conforme aux exigences
+SynthesisId.GRAPH_SAMPLING=Taux de réalisation du plan d'échantillonage
+SynthesisId.IND_ALLEGRO_REACTIVITY=Délais de transmission des données
+SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqués
+SynthesisId.IND_CONTACT_STATE=États des contacts
+SynthesisId.IND_DATA_RELIABILITY=Qualité de la donnée
+SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journée
+UserRole.ADMIN=Administrateur
+UserRole.COORDINATOR=Coordinateur
+UserRole.GUEST=Invité
+UserRole.OBSERVER=Observateur
+UserRole.PROFESSIONAL=Professionnel
+csv.import.error.missingMandatoryHeaders=Les champs obligatoires %s sont manquants
+csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s)
+csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s
+csv.import.error.unableToReadLine=Impossible de lire la ligne %s
+csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s')
+csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s.
+csv.import.logComment=Modification depuis import
+fr.ifremer.wao.entity.Boat=Navires
+fr.ifremer.wao.entity.BoatGroup=Stratification des navires
+fr.ifremer.wao.entity.ContactStateMotif=Motifs de refus
+fr.ifremer.wao.entity.FishingGearDCF.=Non spécifié
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorquées par bateau
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues à main
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Pièges aériens
+fr.ifremer.wao.entity.FishingGearDCF.FCN=Éperviers
+fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Pièges (non-spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pièges fixes non couverts
+fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets à l'étalage (diables)
+fr.ifremer.wao.entity.FishingGearDCF.FWR=Barrages, parcs, bordigues, etc.
+fr.ifremer.wao.entity.FishingGearDCF.FYK=Verveux
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emmélants (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis à civelles
+fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
+fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants dérivants (filets dérivants)
+fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants calés (ancrés)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Trémailleurs
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Trémails et filets maillants combinés
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Trémails
+fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues mécanisées
+fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de récolte (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes à main et lignes avec cannes (mécanisées)
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes à main et lignes à cannes (manœuvrées à la main)
+fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non spécifiées)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres dérivantes
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres calées ou semi-flottantes
+fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulevés (non spécifiés)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulevés manœuvrées du bateau
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulevés portatifs
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulevés fixes manœuvrées du rivage
+fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de traîne
+fr.ifremer.wao.entity.FishingGearDCF.LX=Lignes et palangres
+fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
+fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non spécifiés
+fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts à panneaux (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts pélagiques à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux à panneaux
+fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
+fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes manœuvrées par un bateau
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes manœuvrées par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-bœufs (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-bœufs de fond
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-bœufs pélagiques
+fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de pêche révréative
+fr.ifremer.wao.entity.FishingGearDCF.SB=Sennes de plages
+fr.ifremer.wao.entity.FishingGearDCF.SDN=Sennes danoises
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes manœuvrées par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes écossaises
+fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes halées à bord
+fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non spécifiées)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts à perche
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut à langoustines
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut à crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut pélagique (non spécifié)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut pélagique à crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non spécifié)
+fr.ifremer.wao.entity.FishingZone=Zones de pêche
+fr.ifremer.wao.entity.ObsDebCode=Codes métiers ObsDeb
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Non spécifié
+fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
+fr.ifremer.wao.entity.TargetSpeciesDCF.ANA=Espèces anadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Espèces catadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustacés
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRW=Langouste
+fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Espèces démersales
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Espèces d'eaux profondes
+fr.ifremer.wao.entity.TargetSpeciesDCF.FIF=Poissons
+fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands pélagiques
+fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits pélagiques
+fr.ifremer.wao.entity.TerrestrialDivision=Stratification géographique
+fr.ifremer.wao.entity.TerrestrialLocation=Lieux terrestres
+wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit être formée de 6 chiffres
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut préciser dans le commentaire administrateur pourquoi la donnée est '%s'
+wao.business.contact.validation.commentMissingForState=Il faut préciser un commentaire pour l'état '%s'
+wao.business.contact.validation.contactStateMotifMissing=Il faut préciser un motif de refus
+wao.business.contact.validation.contactStateMotifUnwanted=Il ne faut pas préciser de motif de refus
+wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut préciser la qualité de la donnée avant de valider
+wao.business.contact.validation.missingHoursOfBeginEndObservation=Il faut préciser les heures exactes de début et de fin d'observation
+wao.business.contact.validation.observedDataControlMissingForValidation=Il faut préciser une valeur pour le contrôle des données observées
+wao.business.contact.validation.restitutionMissingForValidation=Il faut préciser une date de transmission de la restitution de la donnée avant de valider
+wao.business.entity.UserProfile.description=%s sur %s%s
+wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseigné dans WAO l'information suivante \:\n\nMarée \: %s\nMétier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle
+wao.business.other=Autre
+wao.business.readOnly=(lecture seule)
+wao.error.boat.canCreateContact=Impossible de créer un nouveau contact pour la société %1$s et le navire %2$s (%3$d)
+wao.error.boat.getNbBoarding=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s
+wao.error.boatInfos.getNbBoardingForCompany=Impossible de récupérer le nombre d'embarquements réels depuis le %1$s pour la société %2$s
+wao.error.context.close=Une erreur est survenue pendant la fermeture du contexte principale de ToPIA
+wao.error.context.encodeString=
+wao.error.context.getRootContext=Une erreur est survenue pour la récupération du contexte principale de ToPIA
+wao.error.context.parse=Une erreur est survenue pendant le chargement de la configuration du fichier %1$s
+wao.error.context.rollback=Une erreur est survenue pendant l'annulation de la transaction courante
+wao.error.context.start=Une erreur est survenue pendant le démarrage de l'application
+wao.error.context.stop=Une erreur est survenue pendant la fermeture de l'application
+wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de marées réels pour le mois de %1$s [ligne \: %2$s]
+wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire écrit par %1$s
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de créer ou modifier les informations liés au navire %1$d pour la société %2$s
+wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires sélectionnés
+wao.error.serviceBoat.getActivityCalendarLogAccessFile=
+wao.error.serviceBoat.getActivityCalendarLogFile=
+wao.error.serviceBoat.getAllActiveBoats=
+wao.error.serviceBoat.getBoat=Impossible de charger le navire
+wao.error.serviceBoat.getBoatNamesStartWith=Impossible de récupérer les navires avec un nom commencant par '%1$s'
+wao.error.serviceBoat.getBoatsByFilter=Impossible de filtrer la liste des navires
+wao.error.serviceBoat.getBoatsByImmatriculations=La chaîne d'immatriculations est incorrect \! Chaque immatriculation doit posséder 6 chiffres
+wao.error.serviceBoat.getCompanyBoatInfos=Impossible de récupérer les informations du navire immatriculé %1$d pour la société %2$s
+wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activité du navire %1$s (%2$d)
+wao.error.serviceBoat.getNbBoatsByFilter=Impossible de filtrer la liste des navires
+wao.error.serviceBoat.getPossibleValuesForFilter=
+wao.error.serviceBoat.getShipOwnerNamesContains=
+wao.error.serviceBoat.importActivityCalendarCsv=Problème d'import du fichier CSV des calendriers d'activité
+wao.error.serviceBoat.importBoatCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier.
+wao.error.serviceBoat.importBoatGroups=
+wao.error.serviceBoat.newBoatFilter=
+wao.error.serviceCartography.exportContactMotifsStatisticsKml=
+wao.error.serviceCartography.exportContactStatisticsBySeaboardKml=
+wao.error.serviceCartography.exportContactStatisticsKml=
+wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonnées des quartiers des navires. Vérifiez la documentation pour le bon format du fichier Kml.
+wao.error.serviceChart.getContactPieChartData=
+wao.error.serviceChart.getContactPieChartUrl=
+wao.error.serviceContact.exportContactCsv=Impossible d'exporter les contacts
+wao.error.serviceContact.getContact=Impossible de trouver le contact
+wao.error.serviceContact.getContacts=Impossible de filtrer la liste des contacts
+wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtrés
+wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
+wao.error.serviceContact.getPossibleObsDebCodes=
+wao.error.serviceContact.getPossibleTerrestrialLocations=
+wao.error.serviceContact.getPossibleValuesForFilter=
+wao.error.serviceContact.getSubstitutesForBoat=
+wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
+wao.error.serviceContact.isBoatSampled=
+wao.error.serviceContact.newContact=
+wao.error.serviceContact.newContactFilter=
+wao.error.serviceContact.saveComment=
+wao.error.serviceContact.saveContact=Impossible de sauvegarder le contact
+wao.error.serviceContact.sendContactDoneEmail=
+wao.error.serviceContact.updateSampleMonthTidesValue=
+wao.error.serviceContact.validateContact=
+wao.error.serviceNews.getNewNews=
+wao.error.serviceNews.getNews=Impossible de récupérer l'ensemble des news
+wao.error.serviceNews.newNews=
+wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
+wao.error.serviceReferential.getAllContactStateMotifs=
+wao.error.serviceReferential.getAllFishingGearDCFs=
+wao.error.serviceReferential.getAllObsDebCodes=
+wao.error.serviceReferential.getAllObservationUnits=
+wao.error.serviceReferential.getAllPorts=
+wao.error.serviceReferential.getAllPortsAndAuctions=
+wao.error.serviceReferential.getAllRegionIfremers=
+wao.error.serviceReferential.getAllTargetSpeciesDCFs=
+wao.error.serviceReferential.getAllTerrestrialDistricts=
+wao.error.serviceReferential.getAllTerrestrialLocations=
+wao.error.serviceReferential.getCodesDCF5Contains=
+wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
+wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de pêche
+wao.error.serviceReferential.getProfessions=Impossible de charger la liste des métiers
+wao.error.serviceReferential.getReferentialMeta=
+wao.error.serviceReferential.getReferentialStates=
+wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de pêche
+wao.error.serviceReferential.getTerrestrialDistrict=
+wao.error.serviceReferential.importContactStateMotifs=
+wao.error.serviceReferential.importContactStateMotives=
+wao.error.serviceReferential.importDCFcodes=Impossible de créer le référentiel des codes DCF
+wao.error.serviceReferential.importFishingZoneCsv=Problème d'import du fichier CSV. Vérifiez l'en-tête du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de détails.
+wao.error.serviceReferential.importInitialContactStateMotifs=
+wao.error.serviceReferential.importObsDebCodes=
+wao.error.serviceReferential.importTerrestrialDivisions=
+wao.error.serviceReferential.importTerrestrialLocations=
+wao.error.serviceReferential.initialImport=
+wao.error.serviceReferential.updateAllContactStatesMotifs=
+wao.error.serviceReferential.updateReferentialMeta=
+wao.error.serviceSampling.countSampleRows=
+wao.error.serviceSampling.createSampleRowLog=
+wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'échantillon
+wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'échantillon \: %1$s
+wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'échantillonnage sur la période du %1$s au %2$s
+wao.error.serviceSampling.exportSamplingPlanICalendar=
+wao.error.serviceSampling.getDCFGears=
+wao.error.serviceSampling.getDCFSpecies=
+wao.error.serviceSampling.getNewProfession=
+wao.error.serviceSampling.getNewSampleMonth=
+wao.error.serviceSampling.getNewSampleRow=
+wao.error.serviceSampling.getNewSampleRowCode=Impossible de récupérer un nouveau code pour une ligne d'échantillonnage
+wao.error.serviceSampling.getNewSampleRowLog=
+wao.error.serviceSampling.getObservationTimesInDays=
+wao.error.serviceSampling.getPossibleValuesForFilter=
+wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes
+wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'échantillon ayant pour identifiant \: %1$s
+wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'échantillon ayant pour code %1$s
+wao.error.serviceSampling.getSampleRowsByFilter=Impossible de récupérer la liste des lignes du plan d'échantillonnage
+wao.error.serviceSampling.getSampleRowsForEligibility=
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de récupérer la liste des lignes du plan d'échantillonnage
+wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
+wao.error.serviceSampling.newOperation=
+wao.error.serviceSampling.newSampleRow=
+wao.error.serviceSampling.newSamplingFilter=
+wao.error.serviceSampling.validateSampleRow=
+wao.error.serviceSynthesis.getAllIndicatorLogs=
+wao.error.serviceSynthesis.getBoardingBoats=Impossible de récupérer les données du graphique concernant les embarquements sur les navires
+wao.error.serviceSynthesis.getBoatsCount=
+wao.error.serviceSynthesis.getComplianceBoardingIndicator=
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de récupérer l'indicateur de réactivité sur les dates de saisies dans Allegro
+wao.error.serviceSynthesis.getContactPieChartData=
+wao.error.serviceSynthesis.getContactPieChartDataByBoatDistrict=
+wao.error.serviceSynthesis.getContactStateMotifsPieChartDataByBoatDistrict=
+wao.error.serviceSynthesis.getContactStateStatistics=Impossible de récupérer les statistiques sur les états des contacts
+wao.error.serviceSynthesis.getDataReliability=
+wao.error.serviceSynthesis.getDataSampling=Impossible de récupérer les données pour le graphique dynamique des efforts de marées
+wao.error.serviceSynthesis.getDistinctBoatsCounts=
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de récupérer les données concernant les indicateurs pour la synthèse globale
+wao.error.serviceSynthesis.getGlobalSynthesisResult=
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de récupérer l'indicateur de non respect du nombre d'observateurs embarqués
+wao.error.serviceSynthesis.getObservationHours=
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre à jour les paramètres de la synthèse globale
+wao.error.serviceUser.acceptCgu=
+wao.error.serviceUser.addTokensToAllProfiles=
+wao.error.serviceUser.connect=Une erreur est survenue lors de la demande de connexion
+wao.error.serviceUser.createDefaultAdmin=Impossible de créer l'administrateur par défaut
+wao.error.serviceUser.createUpdateCompany=Impossible de créer ou de mettre à jour la société
+wao.error.serviceUser.createUpdateUser=Impossible de créer ou de mettre à jour l'utilisateur
+wao.error.serviceUser.deleteCompany=Impossible de supprimer la société ou de vérifier les contraintes de suppression
+wao.error.serviceUser.deleteUser=Impossible de supprimer l'utilisateur
+wao.error.serviceUser.existLogin=
+wao.error.serviceUser.forgetPassword=Impossible d'envoyer le mail d'oubli de mot de passe
+wao.error.serviceUser.getCompanies=Impossible de récupérer la liste des sociétés
+wao.error.serviceUser.getCompany=
+wao.error.serviceUser.getConnectedUserByToken=
+wao.error.serviceUser.getNewUser=Impossible d'instancier un nouvel utilisateur
+wao.error.serviceUser.getObservers=Impossible de récupérer la liste des observateurs
+wao.error.serviceUser.getUserByToken=
+wao.error.serviceUser.getUserRolesByLogin=
+wao.error.serviceUser.getUsersByCompany=Impossible de récupérer la liste des utilisateurs de la société %1$s
+wao.export.ical.desc=avec %s
+wao.export.ical.title=Observation ObsDeb
+wao.import.contact.failure.boatMissing=Il faut préciser l'immatriculation du navire associé au contact
+wao.import.contact.failure.districtMissing=Il faut préciser le code d'un quartier maritime
+wao.import.contact.failure.locationTypeMissing=Le type du lieu doit être renseigné
+wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associée
+wao.import.contact.failure.terrestrialLocationMissing=Il manque le code du lieu
+wao.import.contact.failure.wrongBoat=Il n'y a pas de navire avec l'immatriculation '%s'
+wao.import.contact.failure.wrongColor=Le code couleur '%s' n'est pas valide, il doit être composé de six caractères sans dièze voir http\://fr.wikipedia.org/wiki/Couleurs_du_Web
+wao.import.contact.failure.wrongContactStateMotifCode=Le code '%s' n'est pas un code de motif de refus valide
+wao.import.contact.failure.wrongDistrict='%s' n'est pas un code quartier maritime valide
+wao.import.contact.failure.wrongSampleRowCode=Il n'y a pas de ligne du plan avec le code '%s'
+wao.import.contact.failure.wrongTerrestrialLocation=Il n'y a pas de lieu de type '%s' ayant pour code '%s'
+wao.import.failure.wrongLocationType='%s' n'est pas un type de lieu valide, les valeurs admises sont %s
+wao.import.failure.wrongObsDebCode=Il n'y a pas de code métier ayant pour code '%s'
+wao.import.failure.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
+wao.import.sampleRow.failure.fishingZoneMissing=Il faut préciser au moins une zone de pêche
+wao.import.sampleRow.failure.missingSampleRowCode=Il faut préciser un code pour a ligne du plan
+wao.import.sampleRow.failure.wrongFishingZone=Le code '%s' ne correspond à aucune zone de pêche connue du référentiel
+wao.import.sampleRow.failure.wrongSampleRowCodeFormat=Le code '%s' n'est pas un code de ligne valide selon le format "AAAA_PIIII"
+wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut être associé à la ligne %s car il doit observer, le même jour, pour la ligne %s
+wao.validation.sampleRow.observerNotInCompany=L'observateur %s ne fait pas parti de la société %s
1
0
28 Feb '14
Author: bleny
Date: 2014-02-28 12:13:04 +0100 (Fri, 28 Feb 2014)
New Revision: 1692
Url: http://codelutin.com/projects/wao/repository/revisions/1692
Log:
remove empty bundles
Removed:
trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
Deleted: trunk/wao-services/src/main/resources/i18n/wao-services_en_GB.properties
===================================================================
Deleted: trunk/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties
===================================================================
1
0
r1691 - trunk/wao-services/src/main/java/fr/ifremer/wao/services/service
by bleny@users.forge.codelutin.com 26 Feb '14
by bleny@users.forge.codelutin.com 26 Feb '14
26 Feb '14
Author: bleny
Date: 2014-02-26 12:13:59 +0100 (Wed, 26 Feb 2014)
New Revision: 1691
Url: http://codelutin.com/projects/wao/repository/revisions/1691
Log:
introduce commit() helper in WaoServiceSupport
Modified:
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/NewsService.java
trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/NewsService.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/NewsService.java 2014-02-26 11:06:26 UTC (rev 1690)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/NewsService.java 2014-02-26 11:13:59 UTC (rev 1691)
@@ -44,7 +44,7 @@
newsDao.delete(news);
- getPersistenceContext().commit();
+ commit();
}
@@ -83,7 +83,7 @@
}
- getPersistenceContext().commit();
+ commit();
}
}
Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java
===================================================================
--- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java 2014-02-26 11:06:26 UTC (rev 1690)
+++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java 2014-02-26 11:13:59 UTC (rev 1691)
@@ -5,7 +5,6 @@
import fr.ifremer.wao.services.WaoService;
import fr.ifremer.wao.services.WaoServiceContext;
import fr.ifremer.wao.services.WaoWebApplicationContext;
-import fr.ifremer.wao.services.service.SamplingPlanService;
import java.util.Date;
@@ -42,4 +41,8 @@
return newService(SamplingPlanService.class);
}
+ protected void commit() {
+ getPersistenceContext().commit();
+ }
+
}
1
0