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
- 2352 discussions
16 May '11
Author: bleny
Date: 2011-05-16 09:45:06 +0000 (Mon, 16 May 2011)
New Revision: 1275
Log:
add phone call sampling plan for ObsDeb, import/export test and show in UI
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/BoatParserFormatter.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/CompanyParserFormatter.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObservationType.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java
trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
trunk/wao-ui/src/main/webapp/SampleRowForm.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -872,9 +872,11 @@
@Override
protected void addObsDebToSampleRows_3_0(List<String> queries) {
- queries.add("ALTER TABLE SampleRow ADD blankRow BOOLEAN");
- queries.add("UPDATE TABLE SampleRow SET blankRow=FALSE");
+ queries.add("ALTER TABLE SampleRow ADD blankRow BOOLEAN DEFAULT FALSE");
queries.add("ALTER TABLE SampleRow RENAME day TO expectedDate");
+ queries.add("ALTER TABLE SampleRow ADD boat CHARACTER VARYING(255)");
+ queries.add("ALTER TABLE SampleRow ADD CONSTRAINT boat_fkey FOREIGN KEY (boat) REFERENCES Boat(topiaId)");
+ queries.add("ALTER TABLE SampleRow ADD observationTypeOrdinal SMALLINT");
}
@Override
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -404,6 +404,10 @@
query.addParam("sampleRowObserver", filter.getSampleRowObserver());
}
+ if (filter.getExpectedObservationType() != null) {
+ query.addEquals(sampleRowProperty.observationTypeOrdinal(), filter.getExpectedObservationType().ordinal());
+ }
+
if (filter.getOrderBy() != null) {
query.addOrder(filter.getOrderBy());
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObservationType.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObservationType.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObservationType.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -15,9 +15,12 @@
/** Information obtained by observation on the field work */
FIELD_WORK_OBSERVATION(n_("ObservationType.FIELD_WORK_OBSERVATION")),
- /** Information obstained by asking someone on the field work */
- FIELD_WORK_SURVEY(n_("ObservationType.FIELD_WORK_SURVEY")),;
+ /** Information obtained by asking someone on the field work */
+ FIELD_WORK_SURVEY(n_("ObservationType.FIELD_WORK_SURVEY")),
+ /** Information obtained by calling someone by phone */
+ PHONE_CALL(n_("ObservationType.PHONE_CALL"));
+
protected String i18nKey;
ObservationType(String i18nKey) {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -26,6 +26,7 @@
import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.ObservationType;
import fr.ifremer.wao.bean.SamplingStrategy;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
@@ -463,4 +464,18 @@
public void setSamplingStrategy(SamplingStrategy samplingStrategy) {
setSamplingStrategyOrdinal(samplingStrategy.ordinal());
}
+
+ @Override
+ public void setObservationType(ObservationType observationType) {
+ if (observationType == null) {
+ setObservationTypeOrdinal(null);
+ } else {
+ setObservationTypeOrdinal(observationType.ordinal());
+ }
+ }
+
+ @Override
+ public ObservationType getObservationType() {
+ return ObservationType.valueOf(getObservationTypeOrdinal());
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -196,6 +196,9 @@
public static final ValueParserFormatter<Date> DAY_TIME = new DateValue("dd/MM/yyyy HH:mm");
+ /** A week in a given year, ie "1/2011" until "52/2011" */
+ public static final ValueParserFormatter<Date> WEEK = new DateValue("w/yyyy");
+
public static class ValueSaver<E, T> implements ValueGetterSetter<E, T> {
protected T value;
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -41,8 +41,6 @@
import java.util.List;
import java.util.Set;
-import static org.nuiton.i18n.I18n.n_;
-
public class Import<E> {
private static final Logger log = LoggerFactory.getLogger(Import.class);
@@ -81,14 +79,8 @@
throw new NullPointerException("inputStream is null");
}
this.model = model;
- validateModel();
this.reader = new CsvReader(inputStream, model.getSeparator(), Charset.forName("UTF-8"));
reader.setTrimWhitespace(true);
- if (log.isTraceEnabled()) {
- log.trace("all headers are " + model.getColumnsForImport());
- log.trace("all non-ignored headers are " + getNonIgnoredHeaders());
- log.trace("all mandatory headers are " + getAllMandatoryHeaders());
- }
}
protected boolean validateModel() {
@@ -118,6 +110,8 @@
model.pushCsvHeaderNames(Arrays.asList(reader.getHeaders()));
+ validateModel();
+
csvValidationResult = new ValidationResultImpl();
csvValidationResult.setSuccess(true);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/ContactImportExportModel.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -44,6 +44,7 @@
import fr.ifremer.wao.io.csv2.ValueGetter;
import fr.ifremer.wao.io.csv2.ValueGetterSetter;
import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import fr.ifremer.wao.io.csv2.models.operations.BoatParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.UserParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.UsersParserFormatter;
import org.apache.commons.lang.StringUtils;
@@ -54,8 +55,6 @@
import java.util.List;
import java.util.Map;
-import static org.nuiton.i18n.I18n.n_;
-
public class ContactImportExportModel implements ImportModel<Contact>, ExportModel<Contact> {
static class TerrestrialLocationParserFormatter implements ValueParserFormatter<TerrestrialLocation> {
@@ -139,34 +138,6 @@
}
}
- static class BoatParserFormatter implements ValueParserFormatter<Boat> {
-
- protected Map<Integer, Boat> indexedBoats;
-
- BoatParserFormatter(List<Boat> boats) {
- indexedBoats = WaoUtils.projectPropertyUnique(boats, Boat.PROPERTY_IMMATRICULATION);
- }
-
- @Override
- public String format(Boat boat) {
- return String.valueOf(boat.getImmatriculation());
- }
-
- @Override
- public Boat parse(String value) throws ParseException {
- String trimmedValue = value.trim();
- if (trimmedValue.isEmpty()) {
- throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.boatMissing"));
- }
- Integer key = Integer.valueOf(trimmedValue);
- Boat boat = indexedBoats.get(key);
- if (boat == null) {
- throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.wrongBoat", value));
- }
- return boat;
- }
- }
-
protected ObsProgram obsProgram;
protected List<WaoUser> waoUsers;
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -20,24 +20,25 @@
*/
package fr.ifremer.wao.io.csv2.models;
-import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.ObservationType;
+import fr.ifremer.wao.entity.Boat;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.SampleRowImpl;
import fr.ifremer.wao.entity.TerrestrialDivision;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.io.csv2.Common;
-import fr.ifremer.wao.io.csv2.ExportModel;
import fr.ifremer.wao.io.csv2.ExportableColumn;
-import fr.ifremer.wao.io.csv2.ImportModel;
+import fr.ifremer.wao.io.csv2.ImportExportModel;
import fr.ifremer.wao.io.csv2.ImportableColumn;
import fr.ifremer.wao.io.csv2.ModelBuilder;
import fr.ifremer.wao.io.csv2.ValueGetterSetter;
import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import fr.ifremer.wao.io.csv2.models.operations.BoatParserFormatter;
+import fr.ifremer.wao.io.csv2.models.operations.CompanyParserFormatter;
import fr.ifremer.wao.io.csv2.models.operations.UsersParserFormatter;
-import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -48,9 +49,10 @@
import java.util.Map;
/**
- *
+ * For now, this model support only import/export of ObsDeb sampling plans. Both
+ * field work sampling plan and phoning sampling plan are supported.
*/
-public class SamplingPlanImportExportModel implements ImportModel<SampleRow>, ExportModel<SampleRow> {
+public class SamplingPlanImportExportModel implements ImportExportModel<SampleRow> {
private static final Logger log =
LoggerFactory.getLogger(SamplingPlanImportExportModel.class);
@@ -117,42 +119,6 @@
}
}
- static class CompanyParserFormatter implements ValueParserFormatter<Company> {
-
- protected List<Company> companies;
-
- protected Map<String, Company> indexedCompanies;
-
- public CompanyParserFormatter(List<Company> companies) {
- this.companies = companies;
- }
-
- @Override
- public String format(Company company) {
- String companyName = "";
- if (company != null) {
- companyName = company.getName();
- }
- return companyName;
- }
-
- @Override
- public Company parse(String companyName) throws ParseException {
- if (indexedCompanies == null) {
- indexedCompanies = WaoUtils.projectPropertyUnique(companies, Company.PROPERTY_NAME);
- }
- Company company = null;
- if (StringUtils.isNotBlank(companyName)) {
- company = indexedCompanies.get(companyName.trim());
- if (company == null) {
- throw new IllegalArgumentException("Il n'y a pas de société ayant pour nom '"
- + companyName + "'");
- }
- }
- return company;
- }
- }
-
static class RegionCodeSetter implements ValueGetterSetter<SampleRow, String> {
protected ObservationUnitParserFormatter observationUnitSetter;
@@ -184,29 +150,45 @@
protected List<Company> allCompanies;
+ protected List<Boat> allActiveBoats;
+
protected ConnectedUser connectedUser;
protected ModelBuilder<SampleRow> modelBuilder;
+ protected static final String BOAT_HEADER_NAME = "NAVIRE_COD";
+ protected static final String OBSERVATION_UNIT_HEADER_NAME = "UNITE_OBSERVATION_COD";
+
+ /** Type of observation, may be phone or work field depending of what the user is importing */
+ protected ObservationType observationType;
+
/** Constructor used for import */
public SamplingPlanImportExportModel(ConnectedUser connectedUser,
- List<TerrestrialDivision> observationUnits, List<WaoUser> allWaoUsers, List<Company> allCompanies) {
+ List<TerrestrialDivision> observationUnits, List<WaoUser> allWaoUsers, List<Company> allCompanies, List<Boat> allActiveBoats) {
this.connectedUser = connectedUser;
this.allWaoUsers = allWaoUsers;
this.observationUnits = observationUnits;
this.allCompanies = allCompanies;
- buildModel();
+ this.allActiveBoats = allActiveBoats;
}
/** Constructor used for export */
- public SamplingPlanImportExportModel(ConnectedUser connectedUser) {
+ public SamplingPlanImportExportModel(ConnectedUser connectedUser, ObservationType observationType) {
this.connectedUser = connectedUser;
- buildModel();
+ this.observationType = observationType;
}
@Override
public void pushCsvHeaderNames(List<String> headerNames) {
- // nothing to do
+ // by reading the header, we must determine what kind of sampling plan is it
+ if (headerNames.contains(OBSERVATION_UNIT_HEADER_NAME)) {
+ observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ } else if (headerNames.contains(BOAT_HEADER_NAME)) {
+ observationType = ObservationType.PHONE_CALL;
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("detected type of sampling plan: " + observationType);
+ }
}
@Override
@@ -218,6 +200,7 @@
public SampleRow newEmptyInstance() {
SampleRow newSampleRow = new SampleRowImpl();
newSampleRow.setObsProgram(ObsProgram.OBSDEB);
+ newSampleRow.setObservationType(observationType);
return newSampleRow;
}
@@ -228,23 +211,37 @@
modelBuilder.newColumnForImportExport("SOCIETE", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(allCompanies));
}
modelBuilder.newColumnForImportExport("OBSERVATEUR_COD", SampleRow.PROPERTY_GROUP_NAME);
- modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.DAY);
- ObservationUnitParserFormatter observationUnitParser = new ObservationUnitParserFormatter(observationUnits);
- ValueGetterSetter<SampleRow, String> regionCodeGetterSetter = new RegionCodeSetter(observationUnitParser);
- modelBuilder.newColumnForImportExport("REGION_IFREMER_COD", regionCodeGetterSetter);
- modelBuilder.newColumnForImportExport("UNITE_OBSERVATION_COD", SampleRow.PROPERTY_OBSERVATION_UNIT, observationUnitParser);
modelBuilder.newColumnForImportExport("OBSERVATEURS", SampleRow.PROPERTY_OBSERVERS, new UsersParserFormatter(allWaoUsers));
- modelBuilder.newColumnForImportExport("LIGNE_SANS_CONTACTS", SampleRow.PROPERTY_BLANK_ROW, Common.BOOLEAN);
+ if (observationType == ObservationType.FIELD_WORK_OBSERVATION) {
+ modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.DAY);
+ ObservationUnitParserFormatter observationUnitParser = new ObservationUnitParserFormatter(observationUnits);
+ ValueGetterSetter<SampleRow, String> regionCodeGetterSetter = new RegionCodeSetter(observationUnitParser);
+ modelBuilder.newColumnForImportExport("REGION_IFREMER_COD", regionCodeGetterSetter);
+ modelBuilder.newColumnForImportExport(OBSERVATION_UNIT_HEADER_NAME, SampleRow.PROPERTY_OBSERVATION_UNIT, observationUnitParser);
+ modelBuilder.newColumnForImportExport("LIGNE_SANS_CONTACTS", SampleRow.PROPERTY_BLANK_ROW, Common.BOOLEAN);
+ } else if (observationType == ObservationType.PHONE_CALL) {
+ modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.WEEK);
+ modelBuilder.newColumnForImportExport(BOAT_HEADER_NAME, SampleRow.PROPERTY_BOAT, new BoatParserFormatter(allActiveBoats));
+ }
+ if (log.isDebugEnabled()) {
+ log.debug("model built : " + modelBuilder.getColumnsForImport());
+ }
}
@Override
public Collection<ImportableColumn> getColumnsForImport() {
+ if (modelBuilder == null) {
+ buildModel();
+ }
Collection<ImportableColumn> columns = modelBuilder.getColumnsForImport();
return columns;
}
@Override
public Collection<ExportableColumn> getColumnsForExport() {
+ if (modelBuilder == null) {
+ buildModel();
+ }
Collection<ExportableColumn> columns = modelBuilder.getColumnsForExport();
return columns;
}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/BoatParserFormatter.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/BoatParserFormatter.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/BoatParserFormatter.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -0,0 +1,44 @@
+package fr.ifremer.wao.io.csv2.models.operations;
+
+import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+/**
+* Created by IntelliJ IDEA.
+* User: brendan
+* Date: 13/05/11
+* Time: 11:10
+* To change this template use File | Settings | File Templates.
+*/
+public class BoatParserFormatter implements ValueParserFormatter<Boat> {
+
+ protected Map<Integer, Boat> indexedBoats;
+
+ public BoatParserFormatter(List<Boat> boats) {
+ indexedBoats = WaoUtils.projectPropertyUnique(boats, Boat.PROPERTY_IMMATRICULATION);
+ }
+
+ @Override
+ public String format(Boat boat) {
+ return String.valueOf(boat.getImmatriculation());
+ }
+
+ @Override
+ public Boat parse(String value) throws ParseException {
+ String trimmedValue = value.trim();
+ if (trimmedValue.isEmpty()) {
+ throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.boatMissing"));
+ }
+ Integer key = Integer.valueOf(trimmedValue);
+ Boat boat = indexedBoats.get(key);
+ if (boat == null) {
+ throw new IllegalArgumentException(WaoUtils._("wao.import.contact.failure.wrongBoat", value));
+ }
+ return boat;
+ }
+}
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/CompanyParserFormatter.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/CompanyParserFormatter.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/CompanyParserFormatter.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -0,0 +1,53 @@
+package fr.ifremer.wao.io.csv2.models.operations;
+
+import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.entity.Company;
+import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import org.apache.commons.lang.StringUtils;
+
+import java.text.ParseException;
+import java.util.List;
+import java.util.Map;
+
+/**
+* Created by IntelliJ IDEA.
+* User: brendan
+* Date: 13/05/11
+* Time: 10:53
+* To change this template use File | Settings | File Templates.
+*/
+public class CompanyParserFormatter implements ValueParserFormatter<Company> {
+
+ protected List<Company> companies;
+
+ protected Map<String, Company> indexedCompanies;
+
+ public CompanyParserFormatter(List<Company> companies) {
+ this.companies = companies;
+ }
+
+ @Override
+ public String format(Company company) {
+ String companyName = "";
+ if (company != null) {
+ companyName = company.getName();
+ }
+ return companyName;
+ }
+
+ @Override
+ public Company parse(String companyName) throws ParseException {
+ if (indexedCompanies == null) {
+ indexedCompanies = WaoUtils.projectPropertyUnique(companies, Company.PROPERTY_NAME);
+ }
+ Company company = null;
+ if (StringUtils.isNotBlank(companyName)) {
+ company = indexedCompanies.get(companyName.trim());
+ if (company == null) {
+ throw new IllegalArgumentException("Il n'y a pas de société ayant pour nom '"
+ + companyName + "'");
+ }
+ }
+ return company;
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -49,6 +49,7 @@
import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.bean.ValidationResultImpl;
import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.BoatDAO;
import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.CompanyDAO;
import fr.ifremer.wao.entity.Contact;
@@ -615,6 +616,8 @@
row.getObservationUnit();
row.sizeElligibleBoat();
row.sizeObservers();
+
+ row.getBoat();
}
}
@@ -911,7 +914,7 @@
if (ObsProgram.OBSDEB.equals(filter.getObsProgram())) {
- ExportModel<SampleRow> exportModel = new SamplingPlanImportExportModel(user);
+ ExportModel<SampleRow> exportModel = new SamplingPlanImportExportModel(user, filter.getExpectedObservationType());
Export<SampleRow> export = new Export(exportModel, rows);
csv = export.startExport();
@@ -1035,12 +1038,11 @@
CompanyDAO companyDAO = WaoDAOHelper.getCompanyDAO(transaction);
List<Company> allCompanies = companyDAO.findAll();
- if (observationUnits.isEmpty()) {
- throw new IllegalStateException("Le référentiel de stratification n'a pas été importé");
- }
+ BoatDAO boatDAO = WaoDAOHelper.getBoatDAO(transaction);
+ List<Boat> allActiveBoats = boatDAO.findAllByActive(true);
ImportModel<SampleRow> samplingPlanImportModel =
- new SamplingPlanImportExportModel(connectedUser, observationUnits, waoUsers, allCompanies);
+ new SamplingPlanImportExportModel(connectedUser, observationUnits, waoUsers, allCompanies, allActiveBoats);
try {
Import<SampleRow> samplingPlanImport = new Import<SampleRow>(samplingPlanImportModel, input);
@@ -1492,10 +1494,14 @@
}
if (connectedUser.isObsDeb() && connectedUser.isObserver()) {
+ // observer can only see the row he has been associated
samplingFilter.setSampleRowObserver(connectedUser.getUser());
}
- samplingFilter.setOrderBy(SampleRow.PROPERTY_EXPECTED_DATE);
+ if (connectedUser.isObsDeb()) {
+ // in ObsDeb, ordering is done by date of action
+ samplingFilter.setOrderBy(SampleRow.PROPERTY_EXPECTED_DATE);
+ }
return samplingFilter;
}
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-05-16 09:45:06 UTC (rev 1275)
@@ -26,6 +26,7 @@
ObsProgram.OBSVENTE=ObsVente
ObservationType.FIELD_WORK_OBSERVATION=Field work observation
ObservationType.FIELD_WORK_SURVEY=Field work survey
+ObservationType.PHONE_CALL=Survey by phone
SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultaneous \: All commercial species
SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultaneous \: G1+G2 species
SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultaneous \: G1 species
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-05-16 09:45:06 UTC (rev 1275)
@@ -1,175 +1,176 @@
ContactPieChartConstant.OTHER=Autres
-ContactPieChartConstant.REALIZED=R\u00E9alis\u00E9s
-ContactPieChartConstant.REFUSED=Refus\u00E9s
-ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00E9finitif
+ContactPieChartConstant.REALIZED=R\u00e9alis\u00e9s
+ContactPieChartConstant.REFUSED=Refus\u00e9s
+ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00e9finitif
ContactState.CONTACT_REFUSED=Refus
ContactState.CONTACT_START=Contact pris
-ContactState.OBSERVATION_CANCELLED=Annul\u00E9e
-ContactState.OBSERVATION_DONE=Observation r\u00E9alis\u00E9e
-ContactState.OBSERVATION_EXPECTED=Observation programm\u00E9e
-ContactState.OBSERVATION_NOT_DONE=Non observ\u00E9
-DataReliability.CORRECTION_ASKED=Correction demand\u00E9e
+ContactState.OBSERVATION_CANCELLED=Annul\u00e9e
+ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e
+ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e
+ContactState.OBSERVATION_NOT_DONE=Non observ\u00e9
+DataReliability.CORRECTION_ASKED=Correction demand\u00e9e
DataReliability.DOUBTFUL=Douteuse
-DataReliability.NOT_PROVIDED=Non contr\u00F4l\u00E9e
+DataReliability.NOT_PROVIDED=Non contr\u00f4l\u00e9e
DataReliability.NOT_RELIABLE=Non exploitable
DataReliability.RELIABLE=Exploitable
DataReliability.UNKNOWN=Inconnue
-GlobalIndicatorValue.BAD=P\u00E9nalit\u00E9 de niveau 1
+GlobalIndicatorValue.BAD=P\u00e9nalit\u00e9 de niveau 1
GlobalIndicatorValue.GOOD=Bonus de niveau 1
GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
-GlobalIndicatorValue.VERY_BAD=P\u00E9nalit\u00E9 de niveau 2
+GlobalIndicatorValue.VERY_BAD=P\u00e9nalit\u00e9 de niveau 2
GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
-LocationType.AUCTION=Cri\u00E9e
+LocationType.AUCTION=Cri\u00e9e
LocationType.PORT=Port
ObsProgram.OBSDEB=ObsDeb
ObsProgram.OBSMER=ObsMer
ObsProgram.OBSVENTE=ObsVente
ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
-ObservationType.FIELD_WORK_SURVEY=Enqu\u00EAte de terrain
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1
-SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique
-SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00E9s
-SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00EAme navire conforme aux exigences
-SynthesisId.GRAPH_SAMPLING=Taux de r\u00E9alisation du plan d'\u00E9chantillonage
-SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00E9lais de transmission des donn\u00E9es
-SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00E9s
-SynthesisId.IND_CONTACT_STATE=\u00C9tats des contacts
-SynthesisId.IND_DATA_RELIABILITY=Qualit\u00E9 de la donn\u00E9e
-SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00E9e
+ObservationType.FIELD_WORK_SURVEY=Enqu\u00eate de terrain
+ObservationType.PHONE_CALL=Enqu\u00eate t\u00e9l\u00e9phonique
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00e9 \: Toutes esp\u00e8ces commerciales
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1+G2
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1
+SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00e9cifique
+SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00e9s
+SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00eame navire conforme aux exigences
+SynthesisId.GRAPH_SAMPLING=Taux de r\u00e9alisation du plan d'\u00e9chantillonage
+SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00e9lais de transmission des donn\u00e9es
+SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00e9s
+SynthesisId.IND_CONTACT_STATE=\u00c9tats des contacts
+SynthesisId.IND_DATA_RELIABILITY=Qualit\u00e9 de la donn\u00e9e
+SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00e9e
UserRole.ADMIN=Administrateur
UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invit\u00E9
+UserRole.GUEST=Invit\u00e9
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\u00E9tation de la valeur '%s' (colonne '%s', ligne %s)
-csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00E0 la ligne %s
+csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00e9tation de la valeur '%s' (colonne '%s', ligne %s)
+csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00e0 la ligne %s
csv.import.error.unableToReadLine=Impossible de lire la ligne %s
-csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00E9 '%s', ligne %s)
+csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00e9 '%s', ligne %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.FishingGearDCF.=Non sp\u00E9cifi\u00E9
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00E9es par bateau
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00E0 main
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00E8ges a\u00E9riens
-fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00C9perviers
-fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00E9cifi\u00E9s)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00E8ges (non-sp\u00E9cifi\u00E9s)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00E8ges fixes non couverts
+fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00e9cifi\u00e9
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00e9es par bateau
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00e0 main
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00e8ges a\u00e9riens
+fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00c9perviers
+fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00e8ges fixes non couverts
fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00E0 l'\u00E9talage (diables)
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00e0 l'\u00e9talage (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\u00E9lants (non sp\u00E9cifi\u00E9s)
-fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00E0 civelles
-fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00e9lants (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00e0 civelles
+fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
-fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00E9rivants (filets d\u00E9rivants)
+fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants)
fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00E9s (ancr\u00E9s)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00E9mailleurs
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00E9mails et filets maillants combin\u00E9s
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00E9mails
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00e9s (ancr\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00e9mailleurs
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00e9mails et filets maillants combin\u00e9s
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00e9mails
fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00E9canis\u00E9es
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00e9canis\u00e9es
fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00E9colte (non sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00E0 main et lignes avec cannes
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00E0 main et lignes \u00E0 cannes
-fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00E9cifi\u00E9es)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00E9rivantes
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00E9es ou semi-flottantes
-fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00E9s (non sp\u00E9cifi\u00E9s)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00E9s man\u0153uvr\u00E9es du bateau
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00E9s portatifs
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00E9s fixes man\u0153uvr\u00E9es du rivage
-fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00EEne
-fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00E7ons et lignes (non sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00e0 main et lignes avec cannes
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00e0 main et lignes \u00e0 cannes
+fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00e9cifi\u00e9es)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00e9rivantes
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00e9es ou semi-flottantes
+fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00e9s portatifs
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage
+fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00eene
+fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s)
fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
-fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00E9cifi\u00E9s
-fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00E0 panneaux (non sp\u00E9cifi\u00E9)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00E0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00E9lagiques \u00E0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00E0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s
+fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00e0 panneaux
fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par un bateau
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00E9cifi\u00E9)
+fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9)
fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-b\u0153ufs de fond
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00E9lagiques
-fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00EAche r\u00E9vr\u00E9ative
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00e9lagiques
+fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00eache r\u00e9vr\u00e9ative
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\u0153uvr\u00E9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00E9cossaises
-fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00E9es \u00E0 bord
-fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00E9cifi\u00E9es)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00E9cifi\u00E9)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00E0 perche
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00E0 langoustines
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00E0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00E9lagique (non sp\u00E9cifi\u00E9)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00E0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00E9cifi\u00E9)
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00E9cifi\u00E9
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00e9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00e9cossaises
+fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00e9es \u00e0 bord
+fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00e9cifi\u00e9es)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00e0 perche
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00e0 langoustines
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00e0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00e0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00e9cifi\u00e9
fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00E8ces catadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00E9s
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00e8ces catadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00e9s
fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00E8ces d\u00E9mersales
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00E8ces d'eaux profondes
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00e8ces d\u00e9mersales
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00e8ces d'eaux profondes
fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00E9lagiques
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00e9lagiques
fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00E9lagiques
-wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00EAtre form\u00E9e de 6 chiffres
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00E9ciser dans le commentaire administrateur pourquoi la donn\u00E9e est '%s'
-wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00E9ciser la qualit\u00E9 de la donn\u00E9e avant de valider
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00e9lagiques
+wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00eatre form\u00e9e de 6 chiffres
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00e9ciser dans le commentaire administrateur pourquoi la donn\u00e9e est '%s'
+wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00e9ciser la qualit\u00e9 de la donn\u00e9e 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\u00E9 dans WAO l'information suivante \:\n\nMar\u00E9e \: %s\nM\u00E9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00e9 dans WAO l'information suivante \:\n\nMar\u00e9e \: %s\nM\u00e9tier \: %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\u00E9er un nouveau contact pour la soci\u00E9t\u00E9 %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s pour la soci\u00E9t\u00E9 %2$s
+wao.error.boat.canCreateContact=Impossible de cr\u00e9er un nouveau contact pour la soci\u00e9t\u00e9 %1$s et le navire %2$s (%3$d)
+wao.error.boat.getNbBoarding=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s
+wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s pour la soci\u00e9t\u00e9 %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\u00E9cup\u00E9ration du contexte principale de ToPIA
+wao.error.context.getRootContext=Une erreur est survenue pour la r\u00e9cup\u00e9ration 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\u00E9marrage de l'application
+wao.error.context.start=Une erreur est survenue pendant le d\u00e9marrage 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\u00E9es r\u00E9els pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00E9crit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00E9er ou modifier les informations li\u00E9s au navire %1$d pour la soci\u00E9t\u00E9 %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00E9lectionn\u00E9s
+wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00e9es r\u00e9els pour le mois de %1$s [ligne \: %2$s]
+wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00e9crit par %1$s
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00e9er ou modifier les informations li\u00e9s au navire %1$d pour la soci\u00e9t\u00e9 %2$s
+wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00e9lectionn\u00e9s
wao.error.serviceBoat.getActivityCalendarLogAccessFile=
wao.error.serviceBoat.getActivityCalendarLogFile=
wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00E9cup\u00E9rer les navires avec un nom commencant par '%1$s'
+wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00e9cup\u00e9rer 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\u00EEne d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00E9der 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00E9cup\u00E9rer les informations du navire immatricul\u00E9 %1$d pour la soci\u00E9t\u00E9 %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00E9 du navire %1$s (%2$d)
+wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00eene d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00e9der 6 chiffres
+wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00e9cup\u00e9rer les informations du navire immatricul\u00e9 %1$d pour la soci\u00e9t\u00e9 %2$s
+wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00e9 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\u00E8me d'import du fichier CSV des calendriers d'activit\u00E9
-wao.error.serviceBoat.importBoatCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier.
+wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00e8me d'import du fichier CSV des calendriers d'activit\u00e9
+wao.error.serviceBoat.importBoatCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier.
wao.error.serviceBoat.newBoatFilter=
wao.error.serviceCartography.exportContactMotifsStatisticsKml=
wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00E9es des quartiers des navires. V\u00E9rifiez la documentation pour le bon format du fichier Kml.
+wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00e9es des quartiers des navires. V\u00e9rifiez 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\u00E9s
+wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00e9s
wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
@@ -180,7 +181,7 @@
wao.error.serviceContact.updateSampleMonthTidesValue=
wao.error.serviceContact.validateContact=
wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de r\u00E9cup\u00E9rer l'ensemble des news
+wao.error.serviceNews.getNews=Impossible de r\u00e9cup\u00e9rer l'ensemble des news
wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
wao.error.serviceReferential.getAllContactStateMotifs=
wao.error.serviceReferential.getAllObservationUnits=
@@ -189,83 +190,83 @@
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\u00EAche
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00E9tiers
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00EAche
+wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00eache
+wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00e9tiers
+wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00eache
wao.error.serviceReferential.getTerrestrialDistrict=
wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00E9er le r\u00E9f\u00E9rentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00E9tails.
+wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00e9er le r\u00e9f\u00e9rentiel des codes DCF
+wao.error.serviceReferential.importFishingZoneCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00e9tails.
wao.error.serviceReferential.importInitialContactStateMotifs=
wao.error.serviceReferential.importTerrestrialDivisions=
wao.error.serviceReferential.importTerrestrialLocations=
wao.error.serviceReferential.updateAllContactStatesMotifs=
wao.error.serviceSampling.countSampleRows=
wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00E9chantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00E9chantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00E9chantillonnage sur la p\u00E9riode du %1$s au %2$s
+wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00e9chantillon
+wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00e9chantillon \: %1$s
+wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00e9chantillonnage sur la p\u00e9riode 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\u00E9cup\u00E9rer un nouveau code pour une ligne d'\u00E9chantillonnage
+wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00e9cup\u00e9rer un nouveau code pour une ligne d'\u00e9chantillonnage
wao.error.serviceSampling.getNewSampleRowLog=
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'\u00E9chantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00E9chantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
+wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00e9chantillon ayant pour identifiant \: %1$s
+wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00e9chantillon ayant pour code %1$s
+wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
wao.error.serviceSampling.newSampleRow=
wao.error.serviceSampling.newSamplingFilter=
wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es du graphique concernant les embarquements sur les navires
+wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es du graphique concernant les embarquements sur les navires
wao.error.serviceSynthesis.getBoatsCount=
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00E9cup\u00E9rer l'indicateur de r\u00E9activit\u00E9 sur les dates de saisies dans Allegro
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00e9cup\u00e9rer l'indicateur de r\u00e9activit\u00e9 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\u00E9cup\u00E9rer les statistiques sur les \u00E9tats des contacts
+wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00e9cup\u00e9rer les statistiques sur les \u00e9tats des contacts
wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es pour le graphique dynamique des efforts de mar\u00E9es
+wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es
wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es concernant les indicateurs pour la synth\u00E8se globale
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es concernant les indicateurs pour la synth\u00e8se globale
wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00E9cup\u00E9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00E9s
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s
wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00E0 jour les param\u00E8tres de la synth\u00E8se globale
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale
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\u00E9er l'administrateur par d\u00E9faut
-wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00E9er ou de mettre \u00E0 jour la soci\u00E9t\u00E9
-wao.error.serviceUser.createUpdateUser=Impossible de cr\u00E9er ou de mettre \u00E0 jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00E9t\u00E9 ou de v\u00E9rifier les contraintes de suppression
+wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00e9er l'administrateur par d\u00e9faut
+wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00e9er ou de mettre \u00e0 jour la soci\u00e9t\u00e9
+wao.error.serviceUser.createUpdateUser=Impossible de cr\u00e9er ou de mettre \u00e0 jour l'utilisateur
+wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00e9t\u00e9 ou de v\u00e9rifier 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\u00E9cup\u00E9rer la liste des soci\u00E9t\u00E9s
+wao.error.serviceUser.getCompanies=Impossible de r\u00e9cup\u00e9rer la liste des soci\u00e9t\u00e9s
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\u00E9cup\u00E9rer la liste des observateurs
+wao.error.serviceUser.getObservers=Impossible de r\u00e9cup\u00e9rer la liste des observateurs
wao.error.serviceUser.getUserByToken=
wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s
+wao.error.serviceUser.getUsersByCompany=Impossible de r\u00e9cup\u00e9rer la liste des utilisateurs de la soci\u00e9t\u00e9 %1$s
wao.export.ical.desc=avec %s
wao.export.ical.title=Observation ObsDeb
-wao.import.contact.failure.boatMissing=Il faut pr\u00E9ciser l'immatriculation du navire associ\u00E9 au contact
-wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00EAtre renseign\u00E9
-wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00E9e
+wao.import.contact.failure.boatMissing=Il faut pr\u00e9ciser l'immatriculation du navire associ\u00e9 au contact
+wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00eatre renseign\u00e9
+wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00e9e
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.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.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
-wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00EAtre associ\u00E9 \u00E0 la ligne %s car il doit observer, le m\u00EAme jour, pour la ligne %s
+wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00eatre associ\u00e9 \u00e0 la ligne %s car il doit observer, le m\u00eame jour, pour la ligne %s
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/TestManager.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -36,6 +36,7 @@
import org.junit.Ignore;
import org.nuiton.topia.TopiaException;
import org.nuiton.util.ApplicationConfig;
+import org.nuiton.util.DateUtil;
import org.nuiton.util.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -150,4 +151,9 @@
public void setCurrentDate(Date date) {
context.setCurrentDate(date);
}
+
+ public void setCurrentDate(int day, int month, int year) {
+ Date date = DateUtil.createDate(day, month, year);
+ setCurrentDate(date);
+ }
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -27,16 +27,6 @@
protected boolean boatsImported;
- protected static final String CSV_CONTENT =
- "PLAN_CODE;SOCIETE;REGION_IFREMER_COD;OBSERVATEUR_COD;OBSERVATION_DATE;UNITE_OBSERVATION_COD;OBSERVATEURS;LIGNE_SANS_CONTACTS\n"
- + "2011_888;Ifremer;GA;OBS1;05/01/2010;UO007;;N\n"
- + "2011_889;Code Lutin;MA;OBS2;25/02/2010;UO087;;N\n"
- + "2011_890;Code Lutin;GA;OBS1;13/02/2010;UO007;;N\n"
- + "2011_891;Code Lutin;MA;OBS2;13/02/2010;UO087;;N";
- protected static final String CSV_WITH_OBSERVERS_CONTENT =
- "PLAN_CODE;REGION_IFREMER_COD;OBSERVATEUR_COD;OBSERVATION_DATE;UNITE_OBSERVATION_COD;OBSERVATEURS;LIGNE_SANS_CONTACTS\n"
- + "2011_890;GA;OBS1;13/02/2010;UO007;josh;N";
-
public ObsDebFixtures(TestManager manager) {
this.manager = manager;
}
@@ -99,7 +89,7 @@
return moise;
}
- public WaoUser josh() throws WaoBusinessException {
+ public WaoUser josh() {
if (josh == null) {
josh = new WaoUserImpl();
josh.setLogin("josh");
@@ -114,15 +104,24 @@
josh.addUserProfile(adminProfile);
josh.addUserProfile(coordinatorProfile);
josh.addUserProfile(observerProfile);
- manager.getServiceUser().createUpdateUser(josh, false);
+ try {
+ manager.getServiceUser().createUpdateUser(josh, false);
+ } catch (WaoBusinessException e) {
+ throw new RuntimeException(e);
+ }
josh.setPassword("mdp");
}
return josh;
}
- protected ConnectedUser joshAs(UserRole userRole) throws WaoBusinessException {
+ protected ConnectedUser joshAs(UserRole userRole) {
// first, log in as josh
- ConnectedUser connectedUser = manager.getServiceUser().connect(josh().getLogin(), josh().getPassword());
+ ConnectedUser connectedUser = null;
+ try {
+ connectedUser = manager.getServiceUser().connect(josh().getLogin(), josh().getPassword());
+ } catch (WaoBusinessException e) {
+ throw new RuntimeException(e);
+ }
// then choose profile
for (UserProfile userProfile : josh().getUserProfile()) {
if (userProfile.getUserRole() == userRole) {
@@ -132,23 +131,15 @@
return connectedUser;
}
- public ConnectedUser joshAsAdministrator() throws WaoBusinessException {
+ public ConnectedUser joshAsAdministrator() {
return joshAs(UserRole.ADMIN);
}
- public ConnectedUser joshAsCoordinator() throws WaoBusinessException {
+ public ConnectedUser joshAsCoordinator() {
return joshAs(UserRole.COORDINATOR);
}
- public ConnectedUser joshAsObserver() throws WaoBusinessException {
+ public ConnectedUser joshAsObserver() {
return joshAs(UserRole.OBSERVER);
}
-
- public String initialSamplingPlanCSV() {
- return CSV_CONTENT;
- }
-
- public String samplingPlanCSVWithObservers() {
- return CSV_WITH_OBSERVERS_CONTENT;
- }
}
\ No newline at end of file
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -71,6 +71,19 @@
protected ServiceContact serviceContact;
protected ObsDebFixtures fixtures;
+ protected static final String SAMPLING_PLAN_CSV =
+ "PLAN_CODE;SOCIETE;REGION_IFREMER_COD;OBSERVATEUR_COD;OBSERVATION_DATE;UNITE_OBSERVATION_COD;OBSERVATEURS;LIGNE_SANS_CONTACTS\n"
+ + "2011_888;Ifremer;GA;OBS1;05/01/2010;UO007;;N\n"
+ + "2011_889;Code Lutin;MA;OBS2;25/02/2010;UO087;;N\n"
+ + "2011_890;Code Lutin;GA;OBS1;13/02/2010;UO007;;N\n"
+ + "2011_891;Code Lutin;MA;OBS2;13/02/2010;UO087;;N";
+ protected static final String SAMPLING_PLAN_WITH_OBSERVERS_CSV =
+ "PLAN_CODE;REGION_IFREMER_COD;OBSERVATEUR_COD;OBSERVATION_DATE;UNITE_OBSERVATION_COD;OBSERVATEURS;LIGNE_SANS_CONTACTS\n"
+ + "2011_890;GA;OBS1;13/02/2010;UO007;josh;N";
+ protected static final String PHONE_SAMPLING_PLAN_CSV =
+ "PLAN_CODE;SOCIETE;OBSERVATEUR_COD;OBSERVATION_DATE;NAVIRE_COD;OBSERVATEURS\n"
+ + "2011_901;Code Lutin;OBS1;6/2010;174258;";
+
@Before
public void initServices() {
serviceUser = manager.getServiceUser();
@@ -110,20 +123,36 @@
adminCanImportTerrestrialDivisions();
// First create add two companies in Wao
- manager.setCurrentDate(DateUtil.createDate(2, 1, 2010));
+ manager.setCurrentDate(2, 1, 2010);
fixtures.ifremer();
fixtures.codeLutin();
// Then, import the sampling plan
- manager.setCurrentDate(DateUtil.createDate(3, 1, 2010));
+ manager.setCurrentDate(3, 1, 2010);
- InputStream input = IOUtils.toInputStream(fixtures.initialSamplingPlanCSV());
+ InputStream input = IOUtils.toInputStream(SAMPLING_PLAN_CSV);
ImportResults importResults = manager.getServiceSampling().importSamplingPlanCsv(input, fixtures.joshAsAdministrator());
Assert.assertEquals(4, importResults.getNbRowsImported());
Assert.assertEquals(0, importResults.getNbRowsRefused());
}
+ @Test
+ public void adminCanImportPhoneSamplingPlan() throws WaoBusinessException {
+ manager.setCurrentDate(2, 1, 2010);
+
+ fixtures.ifremer();
+ fixtures.codeLutin();
+ fixtures.boats();
+
+ manager.setCurrentDate(3, 1, 2010);
+
+ InputStream input = IOUtils.toInputStream(PHONE_SAMPLING_PLAN_CSV);
+ ImportResults importResults = manager.getServiceSampling().importSamplingPlanCsv(input, fixtures.joshAsAdministrator());
+ Assert.assertEquals(1, importResults.getNbRowsImported());
+ Assert.assertEquals(0, importResults.getNbRowsRefused());
+ }
+
/**
* As an admin, i should be able to read sampling plan
* @throws WaoBusinessException if a call to service fail
@@ -245,11 +274,11 @@
if (log.isDebugEnabled()) {
log.debug("CSV file as it was exported:\n" + csv);
- log.debug("CSV file as it will be imported (with observers):\n" + fixtures.samplingPlanCSVWithObservers());
+ log.debug("CSV file as it will be imported (with observers):\n" + SAMPLING_PLAN_WITH_OBSERVERS_CSV);
}
// i can add a column to add observers to each line
- serviceSampling.importSamplingPlanCsv(IOUtils.toInputStream(fixtures.samplingPlanCSVWithObservers()), fixtures.joshAsCoordinator());
+ serviceSampling.importSamplingPlanCsv(IOUtils.toInputStream(SAMPLING_PLAN_WITH_OBSERVERS_CSV), fixtures.joshAsCoordinator());
// now getting the sampling plan and checking that observers are linked to sample rows
SampleRow row2011_890 = serviceSampling.getSampleRowByCode(fixtures.joshAsCoordinator(), "2011_890");
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -27,6 +27,7 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ObsProgram;
+import fr.ifremer.wao.bean.ObservationType;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.service.ServiceContact;
@@ -39,6 +40,7 @@
import fr.ifremer.wao.ui.data.RequiresAuthentication;
import fr.ifremer.wao.ui.data.SampleRowDataSource;
import fr.ifremer.wao.ui.services.SampleRowModelFactory;
+import fr.ifremer.wao.ui.services.WaoManager;
import org.apache.tapestry5.Block;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.StreamResponse;
@@ -49,7 +51,6 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.beaneditor.BeanModel;
import org.apache.tapestry5.corelib.components.Zone;
-import org.apache.tapestry5.grid.GridDataSource;
import org.apache.tapestry5.ioc.Messages;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.BeanModelSource;
@@ -63,7 +64,7 @@
@RequiresAuthentication(allowedPrograms = {ObsProgram.OBSDEB})
public class ObsDebSamplingPlan {
- /********* Tapestry stuffs **********/
+ //// Tapestry stuffs
@Inject
private Logger log;
@@ -86,6 +87,9 @@
@Inject
private Messages messages;
+ @Inject
+ private WaoManager manager;
+
private DateFormat dateFormat;
public DateFormat getDateFormat() {
@@ -95,13 +99,13 @@
return dateFormat;
}
- /********* Session ************/
+ //// session
@SessionState
@Property
private ConnectedUser connectedUser;
- /********* Page layout ***********/
+ //// actions of the sub-menu
@Persist
private Boolean showImport;
@@ -130,6 +134,46 @@
return samplingFilter;
}
+ public Block onSuccessFromImportForm() {
+ showImport = false;
+ return importZone.getBody();
+ }
+
+ public ImportEngine getSamplingPlanImportEngine() {
+ return new ImportEngine() {
+ @Override
+ public ImportResults execute(InputStream input) throws WaoBusinessException {
+ ImportResults results = serviceSampling.importSamplingPlanCsv(input, connectedUser);
+ return results;
+ }
+ };
+ }
+
+ StreamResponse onActionFromExportSamplingPlan() {
+ return new ExportStreamResponse("wao-echantillonnage-obsdeb") {
+ @Override
+ public InputStream getStream() throws IOException {
+ InputStream csv;
+ try {
+ csv = serviceSampling.exportSamplingPlanCsv(connectedUser, samplingFilter.getFilter());
+ } catch (WaoException eee) {
+ throw new IOException(eee);
+ }
+ return csv;
+ }
+ };
+ }
+
+ @Log
+ void onImported(ErrorReport report) {
+ for (String info : report.getInfos()) {
+ layout.addInfo(info);
+ }
+ for (String error : report.getErrors()) {
+ layout.addError(error);
+ }
+ }
+
// FIXME 20110502 bleny clicking on 'export' make the 'import' link still active but content is not showed/hidden
@Log
@@ -138,8 +182,35 @@
return importZone.getBody();
}
- /********* GRID ********/
+ protected void setObservationType(ObservationType observationType) {
+ samplingFilter.getFilter().setExpectedObservationType(observationType);
+ }
+ protected ObservationType getObservationType() {
+ ObservationType observationType = samplingFilter.getFilter().getExpectedObservationType();
+ if (observationType == null) {
+ observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ setObservationType(observationType);
+ }
+ return observationType;
+ }
+
+ public boolean showFieldWorkSamplingPlan() {
+ return getObservationType() == ObservationType.FIELD_WORK_OBSERVATION;
+ }
+
+ public void onActionFromSwitchObservationType() {
+ ObservationType observationType = getObservationType();
+ if (observationType == ObservationType.FIELD_WORK_OBSERVATION) {
+ observationType = ObservationType.PHONE_CALL;
+ } else {
+ observationType = ObservationType.FIELD_WORK_OBSERVATION;
+ }
+ setObservationType(observationType);
+ }
+
+ //// grid data
+
private SampleRowDataSource sampleRows;
@Property
@@ -147,6 +218,7 @@
public SampleRowDataSource getSampleRows() {
if (sampleRows == null) {
+ getObservationType();
sampleRows = new SampleRowDataSource(samplingFilter.getFilter(), serviceSampling);
}
return sampleRows;
@@ -159,13 +231,17 @@
SampleRowModelFactory sampleRowModelFactory =
new SampleRowModelFactory(beanModelSource, resources, connectedUser,
messages, serviceContact);
- obsdebSamplingPlanModel = sampleRowModelFactory.newModel();
+ obsdebSamplingPlanModel = sampleRowModelFactory.newModel(getObservationType());
}
return obsdebSamplingPlanModel;
}
- /************ ACTIONS ***************/
+ public String getBoatDescription() {
+ return manager.getTooltipBoat(sampleRow.getBoat());
+ }
+ //// grid actions
+
public boolean canEditSampleRow() {
boolean canEditSampleRow = connectedUser.isAdmin() || connectedUser.isCoordinator();
return canEditSampleRow;
@@ -177,45 +253,4 @@
serviceSampling.deleteSampleRow(sampleRow);
}
- /********** IMPORT / EXPORT *********/
-
- public Block onSuccessFromImportForm() {
- showImport = false;
- return importZone.getBody();
- }
-
- public ImportEngine getSamplingPlanImportEngine() {
- return new ImportEngine() {
- @Override
- public ImportResults execute(InputStream input) throws WaoBusinessException {
- ImportResults results = serviceSampling.importSamplingPlanCsv(input, connectedUser);
- return results;
- }
- };
- }
-
- StreamResponse onActionFromExportSamplingPlan() {
- return new ExportStreamResponse("wao-echantillonnage-obsdeb") {
- @Override
- public InputStream getStream() throws IOException {
- InputStream csv;
- try {
- csv = serviceSampling.exportSamplingPlanCsv(connectedUser, samplingFilter.getFilter());
- } catch (WaoException eee) {
- throw new IOException(eee);
- }
- return csv;
- }
- };
- }
-
- @Log
- void onImported(ErrorReport report) {
- for (String info : report.getInfos()) {
- layout.addInfo(info);
- }
- for (String error : report.getErrors()) {
- layout.addError(error);
- }
- }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-05-16 09:45:06 UTC (rev 1275)
@@ -27,6 +27,7 @@
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterImpl;
+import fr.ifremer.wao.bean.ObservationType;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceContact;
@@ -93,70 +94,62 @@
protected void initModel() {
add(SampleRow.PROPERTY_CODE);
- if (connectedUser.isAdmin()) {
- add("company", new SampleRowReaderPropertyConduit() {
+ add(SampleRow.PROPERTY_COMPANY, new SampleRowReaderPropertyConduit() {
- @Override
- public String getValue(SampleRow sampleRow) {
- String companyName = "";
- if (sampleRow.getCompany() != null) {
- companyName = sampleRow.getCompany().getName();
- }
- return companyName;
+ @Override
+ public String getValue(SampleRow sampleRow) {
+ String companyName = "";
+ if (sampleRow.getCompany() != null) {
+ companyName = sampleRow.getCompany().getName();
}
- });
- }
+ return companyName;
+ }
+ });
+ add("year", new SampleRowReaderPropertyConduit() {
- if (connectedUser.isObserver()) {
- add("year", new SampleRowReaderPropertyConduit() {
+ protected DateFormat weekFormat = new SimpleDateFormat("yyyy");
- protected DateFormat weekFormat = new SimpleDateFormat("yyyy");
+ @Override
+ public String getValue(SampleRow sampleRow) {
+ return weekFormat.format(sampleRow.getExpectedDate());
+ }
+ });
+ add("week", new SampleRowReaderPropertyConduit() {
- @Override
- public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getExpectedDate());
- }
- });
- add("week", new SampleRowReaderPropertyConduit() {
+ protected DateFormat weekFormat = new SimpleDateFormat("w");
- protected DateFormat weekFormat = new SimpleDateFormat("w");
+ @Override
+ public String getValue(SampleRow sampleRow) {
+ return weekFormat.format(sampleRow.getExpectedDate());
+ }
+ });
+ add("dayOfWeek", new SampleRowReaderPropertyConduit() {
- @Override
- public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getExpectedDate());
- }
- });
- add("dayOfWeek", new SampleRowReaderPropertyConduit() {
+ protected DateFormat weekFormat = new SimpleDateFormat("EEEE", WaoUtils.getCurrentLocale());
- protected DateFormat weekFormat = new SimpleDateFormat("EEEE", WaoUtils.getCurrentLocale());
+ @Override
+ public String getValue(SampleRow sampleRow) {
+ return weekFormat.format(sampleRow.getExpectedDate());
+ }
+ });
+ add("day", new SampleRowReaderPropertyConduit() {
- @Override
- public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getExpectedDate());
- }
- });
-
- }
-
- add(SampleRow.PROPERTY_EXPECTED_DATE, new SampleRowReaderPropertyConduit() {
-
@Override
public String getValue(SampleRow sampleRow) {
return WaoUtils.formatDate(sampleRow.getExpectedDate());
}
});
- if (connectedUser.isObserver()) {
- add("subPopulation", new SampleRowReaderPropertyConduit() {
- @Override
- public String getValue(SampleRow sampleRow) {
- String subPopulation = sampleRow.getObservationUnit().getSubPopulationCode()
- + " - "
- + sampleRow.getObservationUnit().getSubPopulationName();
- return subPopulation;
- }
- });
- }
+ add("subPopulation", new SampleRowReaderPropertyConduit() {
+ @Override
+ public String getValue(SampleRow sampleRow) {
+ String subPopulation = sampleRow.getObservationUnit().getSubPopulationCode()
+ + " - "
+ + sampleRow.getObservationUnit().getSubPopulationName();
+ return subPopulation;
+ }
+ });
add(SampleRow.PROPERTY_OBSERVATION_UNIT);
+ add(SampleRow.PROPERTY_BOAT);
add("actual", new SampleRowReaderPropertyConduit() {
protected String yes = messages.get("wao.ui.misc.yes");
@@ -200,7 +193,22 @@
add("actions", null);
}
+ protected void filterModel(ObservationType observationType) {
+ if ( ! connectedUser.isAdmin()) {
+ model.exclude(SampleRow.PROPERTY_COMPANY);
+ }
+ if ( ! connectedUser.isObserver()) {
+ model.exclude("subPopulation", "dayOfWeek");
+ }
+
+ if (observationType == ObservationType.PHONE_CALL) {
+ model.exclude("dayOfWeek", "day", "subPopulation", SampleRow.PROPERTY_OBSERVATION_UNIT);
+ } else {
+ model.exclude(SampleRow.PROPERTY_BOAT);
+ }
+ }
+
/** put in common some implementation of PropertyConduit interface. */
protected static abstract class SampleRowReaderPropertyConduit implements PropertyConduit {
@@ -232,10 +240,11 @@
}
}
- public BeanModel<SampleRow> newModel() {
+ public BeanModel<SampleRow> newModel(ObservationType observationType) {
model = beanModelSource.createDisplayModel(SampleRow.class, resources.getMessages());
model.include(); // empty the model to include only what we want
initModel();
+ filterModel(observationType);
return model;
}
}
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-05-16 09:45:06 UTC (rev 1275)
@@ -113,12 +113,14 @@
wao.ui.field.Contact.validationProgram=Program validation
wao.ui.field.FishingZone.facadeName=Facade
wao.ui.field.FishingZone.sectorName=Sector
+wao.ui.field.SampleRow.boat=Boat
wao.ui.field.SampleRow.code=Line code
wao.ui.field.SampleRow.comment=Comment
wao.ui.field.SampleRow.company=Company
wao.ui.field.SampleRow.dCF5Code=DCF5 Codes
wao.ui.field.SampleRow.day=Day
wao.ui.field.SampleRow.dcf5Code=DCF5 code
+wao.ui.field.SampleRow.expectedDate=Date
wao.ui.field.SampleRow.fishingZones=Fishing zone(s)
wao.ui.field.SampleRow.libelle=Labels
wao.ui.field.SampleRow.meshSize=Mesh size
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-16 09:45:06 UTC (rev 1275)
@@ -112,12 +112,14 @@
wao.ui.field.Contact.validationProgram=Validation programme
wao.ui.field.FishingZone.facadeName=Fa\u00E7ade
wao.ui.field.FishingZone.sectorName=Zone
+wao.ui.field.SampleRow.boat=Navire
wao.ui.field.SampleRow.code=Code ligne
wao.ui.field.SampleRow.comment=Commentaire
wao.ui.field.SampleRow.company=Soci\u00E9t\u00E9
wao.ui.field.SampleRow.dCF5Code=Codes
wao.ui.field.SampleRow.day=Jour
wao.ui.field.SampleRow.dcf5Code=Code DCF Niv. 5
+wao.ui.field.SampleRow.expectedDate=Date
wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00EAche
wao.ui.field.SampleRow.libelle=Libell\u00E9
wao.ui.field.SampleRow.meshSize=Maillage
Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-16 09:45:06 UTC (rev 1275)
@@ -28,6 +28,16 @@
<ul id="so-submenu" style="clear: left;">
<li>
+ <t:actionlink t:id="switchObservationType">
+ <t:if t:test="showFieldWorkSamplingPlan()">
+ Voir le plan d'échantillonnage téléphonique
+ <p:else>
+ Voir le plan d'échantillonnage de terrain
+ </p:else>
+ </t:if>
+ </t:actionlink>
+ </li>
+ <li>
<t:actionlink t:id="showFilters" t:zone="so-sampling-filters">
${message:wao.ui.misc.advancedSearch}
</t:actionlink>
@@ -109,7 +119,7 @@
${message:wao.ui.field.SampleRow.day}
</p:dayHeader>
- <!-- observation unit -->
+ <!-- sub population -->
<p:subPopulationHeader>
${message:wao.ui.field.TerrestrialDivision.subPopulation}
</p:subPopulationHeader>
@@ -119,12 +129,22 @@
${message:wao.ui.field.SampleRow.observationUnit}
</p:observationUnitHeader>
+ <!-- boat -->
+ <p:boatHeader>
+ ${message:wao.ui.field.SampleRow.boat}
+ </p:boatHeader>
+ <p:boatCell>
+ <span t:type="ck/Tooltip" title="Infos" t:value="prop:boatDescription" t:effect="appear">
+ ${sampleRow.boat.name}
+ </span>
+ </p:boatCell>
+
<!-- observers -->
<p:observersHeader>
${message:wao.ui.field.SampleRow.observers}
</p:observersHeader>
- <!-- observers -->
+ <!-- actual -->
<p:actualHeader>
${message:wao.ui.samplingPlan.actual}
</p:actualHeader>
Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-05-16 08:01:58 UTC (rev 1274)
+++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-05-16 09:45:06 UTC (rev 1275)
@@ -57,8 +57,8 @@
</div>
</t:if>
<div class="t-beaneditor-row">
- <label for="day">${message:wao.ui.field.SampleRow.day}</label>
- <input t:type="datefield" t:id="day" class="date" value="sampleRow.day" />
+ <label for="expectedDate">${message:wao.ui.field.SampleRow.expectedDate}</label>
+ <input t:type="datefield" t:id="expectedDate" class="date" value="sampleRow.expectedDate" />
</div>
<div class="acenter">
<label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label>
1
0
Author: bleny
Date: 2011-05-16 08:01:58 +0000 (Mon, 16 May 2011)
New Revision: 1274
Log:
update eugene version
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-16 08:00:21 UTC (rev 1273)
+++ trunk/pom.xml 2011-05-16 08:01:58 UTC (rev 1274)
@@ -334,7 +334,7 @@
<nuitonUtilsVersion>2.2</nuitonUtilsVersion>
<nuitonWebVersion>1.0</nuitonWebVersion>
<topiaVersion>2.5.3</topiaVersion>
- <eugeneVersion>2.3.3</eugeneVersion>
+ <eugeneVersion>2.3.4</eugeneVersion>
<tapestryVersion>5.2.5</tapestryVersion>
<hibernateVersion>3.3.2.GA</hibernateVersion>
<jfreeVersion>1.0.12</jfreeVersion>
1
0
Author: bleny
Date: 2011-05-16 08:00:21 +0000 (Mon, 16 May 2011)
New Revision: 1273
Log:
update to nuiton-utils 2.2
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-14 11:47:30 UTC (rev 1272)
+++ trunk/pom.xml 2011-05-16 08:00:21 UTC (rev 1273)
@@ -331,7 +331,7 @@
<!-- libraries version -->
<nuitonI18nVersion>2.3.2</nuitonI18nVersion>
- <nuitonUtilsVersion>2.1.2</nuitonUtilsVersion>
+ <nuitonUtilsVersion>2.2</nuitonUtilsVersion>
<nuitonWebVersion>1.0</nuitonWebVersion>
<topiaVersion>2.5.3</topiaVersion>
<eugeneVersion>2.3.3</eugeneVersion>
1
0
14 May '11
Author: tchemit
Date: 2011-05-14 11:47:30 +0000 (Sat, 14 May 2011)
New Revision: 1272
Log:
Update mavenpom4labs to 2.5.4.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-05-12 14:21:05 UTC (rev 1271)
+++ trunk/pom.xml 2011-05-14 11:47:30 UTC (rev 1272)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4labs</artifactId>
- <version>2.5.3</version>
+ <version>2.5.4</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
[Suiviobsmer-commits] r1271 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/io/csv2/models wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi wao-business/src/test/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/services
by bleny@users.labs.libre-entreprise.org 12 May '11
by bleny@users.labs.libre-entreprise.org 12 May '11
12 May '11
Author: bleny
Date: 2011-05-12 14:21:05 +0000 (Thu, 12 May 2011)
New Revision: 1271
Log:
rename SampleRow#day property to SampeRow#expectedDate
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -874,6 +874,7 @@
protected void addObsDebToSampleRows_3_0(List<String> queries) {
queries.add("ALTER TABLE SampleRow ADD blankRow BOOLEAN");
queries.add("UPDATE TABLE SampleRow SET blankRow=FALSE");
+ queries.add("ALTER TABLE SampleRow RENAME day TO expectedDate");
}
@Override
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -311,8 +311,8 @@
// Period filter on sampleRow dates
if (period != null) {
if (ObsProgram.OBSDEB.equals(filter.getObsProgram())) {
- query.addWhere(sampleRowProperty.day(), TopiaQuery.Op.LE, period.getThruDate()).
- addWhere(sampleRowProperty.day(), TopiaQuery.Op.GE, period.getFromDate());
+ query.addWhere(sampleRowProperty.expectedDate(), TopiaQuery.Op.LE, period.getThruDate()).
+ addWhere(sampleRowProperty.expectedDate(), TopiaQuery.Op.GE, period.getFromDate());
} else {
period.initDayOfMonthExtremities();
query.addWhere(sampleRowProperty.periodBegin(), TopiaQuery.Op.LE, period.getThruDate()).
@@ -320,7 +320,7 @@
}
} else if (fromDate != null) {
if (ObsProgram.OBSDEB.equals(filter.getObsProgram())) {
- query.addWhere(sampleRowProperty.day(), TopiaQuery.Op.GE, fromDate);
+ query.addWhere(sampleRowProperty.expectedDate(), TopiaQuery.Op.GE, fromDate);
} else {
query.addWhere(sampleRowProperty.periodEnd(), TopiaQuery.Op.GE, fromDate);
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -26,11 +26,9 @@
import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.ObsProgram;
-import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.ObjectUtils;
import org.apache.commons.lang.StringUtils;
import org.nuiton.util.DateUtil;
-import org.nuiton.util.PeriodDates;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
@@ -410,11 +408,11 @@
protected void compareDays() {
if (oldRow == null) {
- addChange("Le jour est " + WaoUtils.formatDate(newRow.getDay()));
+ addChange("Le jour est " + WaoUtils.formatDate(newRow.getExpectedDate()));
} else {
- if (DateUtil.getDifferenceInDays(oldRow.getDay(), newRow.getDay()) >= 1) {
- addChange("L'observation est déplacée du " + WaoUtils.formatDate(oldRow.getDay())
- + " au " + WaoUtils.formatDate(newRow.getDay()));
+ if (DateUtil.getDifferenceInDays(oldRow.getExpectedDate(), newRow.getExpectedDate()) >= 1) {
+ addChange("L'observation est déplacée du " + WaoUtils.formatDate(oldRow.getExpectedDate())
+ + " au " + WaoUtils.formatDate(newRow.getExpectedDate()));
}
}
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -44,10 +44,8 @@
import java.text.ParseException;
import java.util.Collection;
import java.util.HashMap;
-import java.util.LinkedList;
import java.util.List;
import java.util.Map;
-import java.util.Set;
/**
*
@@ -230,7 +228,7 @@
modelBuilder.newColumnForImportExport("SOCIETE", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(allCompanies));
}
modelBuilder.newColumnForImportExport("OBSERVATEUR_COD", SampleRow.PROPERTY_GROUP_NAME);
- modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_DAY, Common.DAY);
+ modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.DAY);
ObservationUnitParserFormatter observationUnitParser = new ObservationUnitParserFormatter(observationUnits);
ValueGetterSetter<SampleRow, String> regionCodeGetterSetter = new RegionCodeSetter(observationUnitParser);
modelBuilder.newColumnForImportExport("REGION_IFREMER_COD", regionCodeGetterSetter);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -113,7 +113,6 @@
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
-import java.util.Collection;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.HashMap;
@@ -122,8 +121,6 @@
import java.util.List;
import java.util.Map;
-import static org.nuiton.i18n.I18n.n_;
-
/**
* ServiceContactImpl
*
@@ -485,9 +482,9 @@
// coordinator tells who are the observers. We can hope that the observers
// who was on the observation are the one expected
if (newContact.getObsProgram() == ObsProgram.OBSDEB) {
- newContact.setObservationBeginDate(row.getDay());
- newContact.setObservationEndDate(row.getDay());
- newContact.setLandingDate(row.getDay());
+ newContact.setObservationBeginDate(row.getExpectedDate());
+ newContact.setObservationEndDate(row.getExpectedDate());
+ newContact.setLandingDate(row.getExpectedDate());
if (CollectionUtils.isNotEmpty(row.getObservers())) {
List<WaoUser> expectedObservers = new LinkedList<WaoUser>(row.getObservers());
newContact.setMainObserver(expectedObservers.get(0));
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -119,7 +119,6 @@
import org.nuiton.util.TimeLog;
import org.nuiton.util.beans.Binder;
import org.nuiton.util.beans.BinderModelBuilder;
-import org.omg.CORBA.NO_MEMORY;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -130,10 +129,6 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.io.OutputStream;
-import java.io.PipedInputStream;
-import java.io.PipedOutputStream;
-import java.net.URISyntaxException;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
@@ -147,8 +142,6 @@
import java.util.LinkedList;
import java.util.List;
-import static org.nuiton.i18n.I18n.n_;
-
/**
* ServiceSamplingImpl
*
@@ -304,7 +297,7 @@
if (ObsProgram.OBSDEB.equals(row.getObsProgram())) {
// this line has a precise day, let's take the
// year of this day
- year = row.getDay();
+ year = row.getExpectedDate();
} else {
if (CollectionUtils.isEmpty(row.getSampleMonth())) {
// if the row has no sample months, we can't know
@@ -385,7 +378,7 @@
// plus per-program properties
if (ObsProgram.OBSDEB.equals(row.getObsProgram())) {
sampleRowBinderModelBuilder.addSimpleProperties(
- SampleRow.PROPERTY_DAY,
+ SampleRow.PROPERTY_EXPECTED_DATE,
SampleRow.PROPERTY_GROUP_NAME,
SampleRow.PROPERTY_OBSERVERS,
SampleRow.PROPERTY_OBSERVATION_UNIT,
@@ -1502,7 +1495,7 @@
samplingFilter.setSampleRowObserver(connectedUser.getUser());
}
- samplingFilter.setOrderBy(SampleRow.PROPERTY_DAY);
+ samplingFilter.setOrderBy(SampleRow.PROPERTY_EXPECTED_DATE);
return samplingFilter;
}
@@ -1515,7 +1508,7 @@
if (ObsProgram.OBSDEB == sampleRow.getObsProgram()) {
- if (sampleRow.getObservers() != null && sampleRow.getDay() != null) {
+ if (sampleRow.getObservers() != null && sampleRow.getExpectedDate() != null) {
// let's find a conflict, is there another sample-row
// declaring the this observer should be anywhere on the
@@ -1523,7 +1516,7 @@
SamplingFilter samplingFilter = new SamplingFilterImpl();
samplingFilter.setObsProgram(ObsProgram.OBSDEB);
- samplingFilter.setPeriod(new PeriodDates(sampleRow.getDay(), sampleRow.getDay()));
+ samplingFilter.setPeriod(new PeriodDates(sampleRow.getExpectedDate(), sampleRow.getExpectedDate()));
String message = "";
@@ -1584,7 +1577,7 @@
log.debug("Filling calendar with " + samplingPlan.size() + " sampling plans");
}
for (SampleRow sampleRow : samplingPlan) {
- net.fortuna.ical4j.model.Date day = new net.fortuna.ical4j.model.Date(sampleRow.getDay());
+ net.fortuna.ical4j.model.Date day = new net.fortuna.ical4j.model.Date(sampleRow.getExpectedDate());
String eventTitle = WaoUtils._("wao.export.ical.title");
String eventPlace = sampleRow.getObservationUnit().getDescription();
// liste des noms des observateurs (sauf le connected user) dans Property.Attendee
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -159,7 +159,7 @@
for (SampleRow sampleRow : sampleRows) {
// i must be able to read those values without error
sampleRow.getObservationUnit().getObservationUnitCode();
- sampleRow.getDay();
+ sampleRow.getExpectedDate();
sampleRow.getGroupName();
sampleRow.getCompany().getName();
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-05-12 09:06:10 UTC (rev 1270)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/SampleRowModelFactory.java 2011-05-12 14:21:05 UTC (rev 1271)
@@ -27,12 +27,9 @@
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterImpl;
-import fr.ifremer.wao.entity.Company;
-import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceContact;
-import org.apache.commons.collections.CollectionUtils;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.PropertyConduit;
import org.apache.tapestry5.beaneditor.BeanModel;
@@ -45,7 +42,6 @@
import java.text.SimpleDateFormat;
import java.util.LinkedList;
import java.util.List;
-import java.util.Observer;
/**
* Used to generate a bean model for the grid used in sampling plan showed
@@ -118,7 +114,7 @@
@Override
public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getDay());
+ return weekFormat.format(sampleRow.getExpectedDate());
}
});
add("week", new SampleRowReaderPropertyConduit() {
@@ -127,7 +123,7 @@
@Override
public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getDay());
+ return weekFormat.format(sampleRow.getExpectedDate());
}
});
add("dayOfWeek", new SampleRowReaderPropertyConduit() {
@@ -136,17 +132,17 @@
@Override
public String getValue(SampleRow sampleRow) {
- return weekFormat.format(sampleRow.getDay());
+ return weekFormat.format(sampleRow.getExpectedDate());
}
});
}
- add(SampleRow.PROPERTY_DAY, new SampleRowReaderPropertyConduit() {
+ add(SampleRow.PROPERTY_EXPECTED_DATE, new SampleRowReaderPropertyConduit() {
@Override
public String getValue(SampleRow sampleRow) {
- return WaoUtils.formatDate(sampleRow.getDay());
+ return WaoUtils.formatDate(sampleRow.getExpectedDate());
}
});
if (connectedUser.isObserver()) {
1
0
[Suiviobsmer-commits] r1270 - trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages
by bleny@users.labs.libre-entreprise.org 12 May '11
by bleny@users.labs.libre-entreprise.org 12 May '11
12 May '11
Author: bleny
Date: 2011-05-12 09:06:10 +0000 (Thu, 12 May 2011)
New Revision: 1270
Log:
add translation in Boats
Modified:
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Boats_fr.properties
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Boats_fr.properties
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Boats_fr.properties 2011-05-11 15:57:24 UTC (rev 1269)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Boats_fr.properties 2011-05-12 09:06:10 UTC (rev 1270)
@@ -29,6 +29,7 @@
boatDistrict-label: Quartier
boatLength-label: Long.
buildYear-label: Ann\u00e9e
+portOfRegistry-label: Port
# BOAT INFOS
referenceDate-label: Date
1
0
[Suiviobsmer-commits] r1269 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/resources/i18n
by bleny@users.labs.libre-entreprise.org 11 May '11
by bleny@users.labs.libre-entreprise.org 11 May '11
11 May '11
Author: bleny
Date: 2011-05-11 15:57:24 +0000 (Wed, 11 May 2011)
New Revision: 1269
Log:
filter port of registry in WaoQueryBuilder, fix sorting of sampling plan
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -404,6 +404,10 @@
query.addParam("sampleRowObserver", filter.getSampleRowObserver());
}
+ if (filter.getOrderBy() != null) {
+ query.addOrder(filter.getOrderBy());
+ }
+
if (logger.isDebugEnabled()) {
logger.debug("sampling filter query " + query);
}
@@ -434,6 +438,9 @@
query.addEquals(boatProperty.immatriculation(), boatImmatriculation);
}
+ if (filter.getPortOfRegistry() != null) {
+ query.addEquals(boatProperty.portOfRegistry(), filter.getPortOfRegistry());
+ }
return query;
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterImpl.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -35,35 +35,12 @@
*/
public class BoatFilterImpl extends BoatFilter {
-// @Override
-// public TopiaQuery prepareQueryForBoat(TopiaQuery query, String boat) {
-//
-// // Limit
-// query = prepareQueryForLimit(query);
-//
-// if (StringUtils.isNotEmpty(getBoatName())) {
-// String nameProperty = TopiaQuery.getProperty(boat, Boat.NAME);
-// query.add(nameProperty, Op.LIKE, getBoatName().trim() + "%");
-// }
-//
-// if (StringUtils.isNotEmpty(getBoatDistrictCode())) {
-// String districtCodeProperty =
-// TopiaQuery.getProperty(boat, Boat.DISTRICT_CODE);
-// query.add(districtCodeProperty, getBoatDistrictCode().trim());
-// }
-//
-// if (getBoatImmatriculation() != null) {
-// String immatriculationProperty =
-// TopiaQuery.getProperty(boat, Boat.IMMATRICULATION);
-// query.add(immatriculationProperty, getBoatImmatriculation());
-// }
-// return query;
-// }
-
@Override
public boolean isBoatFiltered() {
return StringUtils.isNotEmpty(getBoatName()) ||
StringUtils.isNotEmpty(getBoatDistrictCode()) ||
- getBoatImmatriculation() != null;
+ StringUtils.isNotEmpty(getShipOwnerName()) ||
+ getBoatImmatriculation() != null ||
+ getPortOfRegistry() != null;
}
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/SamplingFilterImpl.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -58,21 +58,16 @@
getPeriod() != null ||
getSampleRows() != null ||
getSamplingStrategy() != null ||
- getTerrestrialDistrict() != null;
+ getTerrestrialDistrict() != null ||
+ getObservationUnit() != null ||
+ getObserver() != null;
return result;
}
@Override
public boolean isPeriodFilteredOnly() {
boolean periodNotNull = getPeriod() != null;
- boolean othersNull = getSampleRows() == null &&
- StringUtils.isEmpty(getSectorName()) &&
- StringUtils.isEmpty(getFacadeName()) &&
- StringUtils.isEmpty(getProgramName()) &&
- StringUtils.isEmpty(getCodeDCF5()) &&
- getNbMonthFinishedFromToday() == null &&
- getFromDate() == null;
- return periodNotNull && othersNull;
+ return periodNotNull && ! isSamplingFiltered();
}
/** Help method similar to setSampleRows when filtering on a single row. */
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -140,7 +140,7 @@
query.addLoad(Boat.PROPERTY_ACTIVITY_CALENDAR);
if (logger.isDebugEnabled()) {
- logger.debug("Query : " + query);
+ logger.debug("query to get boats by filter : " + query);
}
Map<Integer, Boat> results = dao.findAllMappedByQuery(query,
@@ -580,6 +580,9 @@
@Override
protected BoatFilterValues executeGetPossibleValuesForFilter(TopiaContext transaction, BoatFilter filter) throws Exception {
+ ServiceReferential serviceReferential = context.getServiceFactory().getServiceReferential();
+ ServiceSampling serviceSampling = context.getServiceFactory().getServiceSampling();
+
BoatFilterValues result = new BoatFilterValuesImpl();
Integer startIndex = filter.getStartIndex();
@@ -587,10 +590,31 @@
filter.setStartIndex(null);
filter.setEndIndex(null);
- if (filter.getFacadeName() == null && filter.getSectorName() == null) {
- ServiceReferential serviceReferential = context.getServiceFactory().getServiceReferential();
- ServiceSampling serviceSampling = context.getServiceFactory().getServiceSampling();
+ if (filter.isBoatFiltered() || filter.isSamplingFiltered()) {
+ // run the query and extract data
+ Map<Integer, Boat> indexedBoats = executeGetBoatsByFilter(transaction, filter);
+ List<Boat> boats = new ArrayList<Boat>(indexedBoats.values());
+
+ // collect values
+ result.fillBoats(boats);
+
+ if (filter.getObsProgram() == ObsProgram.OBSDEB) {
+ // in obsdeb, we don't consider boat eligibility and we cannot collect
+ // sample row, it would be tee expensive, so we don't try to restrict
+ // the values et let all the sample rows
+
+ SampleRow sampleRow = filter.getSampleRow();
+ filter.setSampleRow(null);
+ result.setSampleRows(serviceSampling.getSampleRowsByFilter(filter));
+ filter.setSampleRow(sampleRow);
+ }
+
+ } else {
+
+ // we can't run the query and browse thousand of boats so we
+ // fill with default values
+
result.setFacadeNames(serviceReferential.getFacades(filter));
result.setSectorsNames(serviceReferential.getSectors(filter));
@@ -601,14 +625,6 @@
result.setPortsOfRegistry(serviceReferential.getAllPorts(null));
- } else {
-
- // extract data
- Map<Integer, Boat> indexedBoats = executeGetBoatsByFilter(transaction, filter);
- List<Boat> boats = new ArrayList<Boat>(indexedBoats.values());
-
- // collect values
- result.fillBoats(boats);
}
filter.setStartIndex(startIndex);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -610,10 +610,9 @@
TopiaQuery query = builder.applySamplingFilter(filter, false).
addDistinct().
- setSelect(sampleRowProperty.$alias()).
+ //setSelect(sampleRowProperty.$alias()).
addLeftJoin(sampleRowProperty.dCF5Code(),
- dcf5CodeProperty.$alias(), false).
- addOrder(sampleRowProperty.code());
+ dcf5CodeProperty.$alias(), false);
List<SampleRow> rows = dao.findAllByQuery(query);
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-05-11 15:57:24 UTC (rev 1269)
@@ -140,7 +140,6 @@
/********* GRID ********/
- @Persist
private SampleRowDataSource sampleRows;
@Property
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-05-11 15:57:24 UTC (rev 1269)
@@ -95,7 +95,7 @@
t:value="filter.shipOwnerName"
t:mixins="Autocomplete" />
</div>
- <div>
+ <div class="acenter" style="white-space: nowrap;">
<label for="portOfRegistry" style="margin-left: 15px;">${message:wao.ui.field.Boat.portOfRegistry} :</label>
<t:topiaEntitySelector t:id="portOfRegistry"
t:clazzName="TerrestrialLocation"
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-11 14:10:13 UTC (rev 1268)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-11 15:57:24 UTC (rev 1269)
@@ -8,212 +8,212 @@
SynthesisId.OBSERVATION_HOUR=
wao.ui.action.acceptContact=Valider le contact
wao.ui.action.add=Ajouter
-wao.ui.action.addNewContactFromBoat=Cr\u00e9er un nouveau contact pour ce navire et la ligne s\u00e9lectionn\u00e9e dans les filtres
-wao.ui.action.back=Revenier \u00e0 l'\u00e9cran pr\u00e9c\u00e9dent
+wao.ui.action.addNewContactFromBoat=Cr\u00E9er un nouveau contact pour ce navire et la ligne s\u00E9lectionn\u00E9e dans les filtres
+wao.ui.action.back=Revenier \u00E0 l'\u00E9cran pr\u00E9c\u00E9dent
wao.ui.action.cancel=Annuler
wao.ui.action.changeLocale=Changer de langue
wao.ui.action.contactAdmin=Contacter un responsable ObsMer
-wao.ui.action.create=Cr\u00e9er
-wao.ui.action.createCompany=Cr\u00e9er une soci\u00e9t\u00e9
-wao.ui.action.createUser=Cr\u00e9er un utilisateur
+wao.ui.action.create=Cr\u00E9er
+wao.ui.action.createCompany=Cr\u00E9er une soci\u00E9t\u00E9
+wao.ui.action.createUser=Cr\u00E9er un utilisateur
wao.ui.action.delete=Supprimer
-wao.ui.action.deleteCompany=Supprimer la soci\u00e9t\u00e9
-wao.ui.action.deleteCompany.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la soci\u00e9t\u00e9 ?
+wao.ui.action.deleteCompany=Supprimer la soci\u00E9t\u00E9
+wao.ui.action.deleteCompany.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la soci\u00E9t\u00E9 ?
wao.ui.action.deleteContact=Supprimer le contact
-wao.ui.action.deleteContact.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement ce contact ?
+wao.ui.action.deleteContact.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement ce contact ?
wao.ui.action.deleteNews=Supprimer la nouvelle
-wao.ui.action.deleteNews.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement cette nouvelle ?
+wao.ui.action.deleteNews.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement cette nouvelle ?
wao.ui.action.deleteSampleRow=Supprimer la ligne du plan
-wao.ui.action.deleteSampleRow.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la ligne %s du plan ?
+wao.ui.action.deleteSampleRow.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la ligne %s du plan ?
wao.ui.action.deleteUser=Supprimer l'utilisateur
-wao.ui.action.deleteUser.confirm=\u00cates-vous s\u00fbr de vouloir supprimer l'utilisateur ?
+wao.ui.action.deleteUser.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer l'utilisateur ?
wao.ui.action.edit=Modifier
wao.ui.action.enlargeView=Agrandir la vue
-wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00e9es
+wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00E9es
wao.ui.action.filter=Filtrer
wao.ui.action.hideFilters=Masquer les filtres
wao.ui.action.login=Connexion
-wao.ui.action.logout=D\u00e9connexion
-wao.ui.action.reduceView=R\u00e9duire la vue
-wao.ui.action.refresh=Rafra\u00eechir
+wao.ui.action.logout=D\u00E9connexion
+wao.ui.action.reduceView=R\u00E9duire la vue
+wao.ui.action.refresh=Rafra\u00EEchir
wao.ui.action.refuseContact=Refuser le contact
wao.ui.action.remove=Retirer
-wao.ui.action.resetFields=Remettre le formulaire \u00e0 z\u00e9ro
+wao.ui.action.resetFields=Remettre le formulaire \u00E0 z\u00E9ro
wao.ui.action.revert=Annuler
wao.ui.action.runExport=Lancer l'export
wao.ui.action.runImport=Lancer l'import
wao.ui.action.runSearch=Lancer la recherche
wao.ui.action.save=Enregistrer
-wao.ui.action.showDetails=Voir les d\u00e9tails
+wao.ui.action.showDetails=Voir les d\u00E9tails
wao.ui.action.showFilters=Afficher les filtres
wao.ui.action.unvalidateContact=Invalider le contact
wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs
wao.ui.boatList=Liste de %s navires
wao.ui.boatinfo.title=Informations sur %s
-wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00e9e(s) \u00e0 ce navire
-wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00e9t\u00e9
-wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00e9tail.
-wao.ui.cartography.title=R\u00e9partition des contacts par quartier des navires
-wao.ui.cartography.title.company=R\u00e9partition des contacts par quartier des navires pour la soci\u00e9t\u00e9 %s
+wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00E9e(s) \u00E0 ce navire
+wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00E9t\u00E9
+wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00E9tail.
+wao.ui.cartography.title=R\u00E9partition des contacts par quartier des navires
+wao.ui.cartography.title.company=R\u00E9partition des contacts par quartier des navires pour la soci\u00E9t\u00E9 %s
wao.ui.chart.boardingsSince=Nombre de sollicitations depuis le %s
wao.ui.chart.numberBoats=Nb navires
wao.ui.chart.numberObservations=Nb observations
wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements
-wao.ui.contact.lastContact=Derni\u00e8re observation concernant ce navire pour votre soci\u00e9t\u00e9 (tous programmes confondus)
-wao.ui.contacts.createFromBoat=Cr\u00e9er un nouveau contact pour ce navire et cette ligne du plan
-wao.ui.contacts.createFromBoat.fail=Cr\u00e9ation d'un nouveau contact impossible
-wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00e9e \u00e0 \u00e9ch\u00e9ance, \u00eates-vous s\u00fbr de vouloir cr\u00e9er un nouveau contact ?
-wao.ui.disclaimer=Le site de \u00ab SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00bb a fait l'objet d'une d\u00e9claration \u00e0 la CNIL sous le num\u00e9ro suivant \: 1414476
-wao.ui.disclaimer.boats=Les donn\u00e9es saisies dans cette page sont la propri\u00e9t\u00e9 exclusive de la soci\u00e9t\u00e9. En dehors de la soci\u00e9t\u00e9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer.
+wao.ui.contact.lastContact=Derni\u00E8re observation concernant ce navire pour votre soci\u00E9t\u00E9 (tous programmes confondus)
+wao.ui.contacts.createFromBoat=Cr\u00E9er un nouveau contact pour ce navire et cette ligne du plan
+wao.ui.contacts.createFromBoat.fail=Cr\u00E9ation d'un nouveau contact impossible
+wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00E9e \u00E0 \u00E9ch\u00E9ance, \u00EAtes-vous s\u00FBr de vouloir cr\u00E9er un nouveau contact ?
+wao.ui.disclaimer=Le site de \u00AB SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00BB a fait l'objet d'une d\u00E9claration \u00E0 la CNIL sous le num\u00E9ro suivant \: 1414476
+wao.ui.disclaimer.boats=Les donn\u00E9es saisies dans cette page sont la propri\u00E9t\u00E9 exclusive de la soci\u00E9t\u00E9. En dehors de la soci\u00E9t\u00E9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer.
wao.ui.email=Adresse e-mail
wao.ui.entity.Boat=Navire
wao.ui.entity.Boats=Navires
-wao.ui.entity.Company=Soci\u00e9t\u00e9
+wao.ui.entity.Company=Soci\u00E9t\u00E9
wao.ui.entity.Contact=Contact
-wao.ui.entity.FishingZone=Zones de p\u00eache
-wao.ui.entity.SampleRow=Ligne du plan d'\u00e9chantillonnage
+wao.ui.entity.FishingZone=Zones de p\u00EAche
+wao.ui.entity.SampleRow=Ligne du plan d'\u00E9chantillonnage
wao.ui.entity.TerrestrialLocation=Lieu
wao.ui.entity.fishingGearDCF=Engin code DCF
-wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00e8ces-cible code DCF
+wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00E8ces-cible code DCF
wao.ui.field.Boat.boatLength=Longueur
-wao.ui.field.Boat.buildYear=Ann\u00e9e de construction
+wao.ui.field.Boat.buildYear=Ann\u00E9e de construction
wao.ui.field.Boat.districtCode=Quartier
wao.ui.field.Boat.immatriculation=Immatriculation
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 quartier
-wao.ui.field.BoatInfos.dup=Capacit\u00e9 d'accueil du navire en personnels sp\u00e9cialis\u00e9s
+wao.ui.field.BoatInfos.dup=Capacit\u00E9 d'accueil du navire en personnels sp\u00E9cialis\u00E9s
wao.ui.field.Company.active=Active
wao.ui.field.Company.name=Nom
-wao.ui.field.Contact.beginDate=D\u00e9but d'observation
+wao.ui.field.Contact.beginDate=D\u00E9but d'observation
wao.ui.field.Contact.comment=Commentaire observateur
wao.ui.field.Contact.commentAdmin=Commentaire programme
wao.ui.field.Contact.commentCoordinator=Commentaire coordinateur
-wao.ui.field.Contact.completeSampling=\u00c9chantillonnage complet
-wao.ui.field.Contact.contactState=\u00c9tat du contact
+wao.ui.field.Contact.completeSampling=\u00C9chantillonnage complet
+wao.ui.field.Contact.contactState=\u00C9tat du contact
wao.ui.field.Contact.contactStateMotif=Motif du refus
wao.ui.field.Contact.contactStateMotifs=Motifs de refus
-wao.ui.field.Contact.creationDate=Date de cr\u00e9ation du contact
-wao.ui.field.Contact.dataInputDate=Saisie des donn\u00e9es
-wao.ui.field.Contact.dataReliability=Qualit\u00e9 des donn\u00e9es
+wao.ui.field.Contact.creationDate=Date de cr\u00E9ation du contact
+wao.ui.field.Contact.dataInputDate=Saisie des donn\u00E9es
+wao.ui.field.Contact.dataReliability=Qualit\u00E9 des donn\u00E9es
wao.ui.field.Contact.endDate=Fin d'observation
-wao.ui.field.Contact.landingDate=Date de d\u00e9barquement
-wao.ui.field.Contact.mainObserver=Observateur r\u00e9f\u00e9rent
+wao.ui.field.Contact.landingDate=Date de d\u00E9barquement
+wao.ui.field.Contact.mainObserver=Observateur r\u00E9f\u00E9rent
wao.ui.field.Contact.mammalsCapture=Capture accidentelle
-wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00e8ces captur\u00e9es
+wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00E8ces captur\u00E9es
wao.ui.field.Contact.mammalsObservation=Observation exceptionnelle
wao.ui.field.Contact.nbObservants=Nombre d'observateurs
wao.ui.field.Contact.observationType=Type d'observation
-wao.ui.field.Contact.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage suivie
+wao.ui.field.Contact.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage suivie
wao.ui.field.Contact.secondaryObservers=Observateurs
wao.ui.field.Contact.terrestrialLocation=Lieu d'observation
-wao.ui.field.Contact.validationCompany=Validation soci\u00e9t\u00e9
+wao.ui.field.Contact.validationCompany=Validation soci\u00E9t\u00E9
wao.ui.field.Contact.validationProgram=Validation programme
-wao.ui.field.FishingZone.facadeName=Fa\u00e7ade
+wao.ui.field.FishingZone.facadeName=Fa\u00E7ade
wao.ui.field.FishingZone.sectorName=Zone
wao.ui.field.SampleRow.code=Code ligne
wao.ui.field.SampleRow.comment=Commentaire
-wao.ui.field.SampleRow.company=Soci\u00e9t\u00e9
+wao.ui.field.SampleRow.company=Soci\u00E9t\u00E9
wao.ui.field.SampleRow.dCF5Code=Codes
wao.ui.field.SampleRow.day=Jour
wao.ui.field.SampleRow.dcf5Code=Code DCF Niv. 5
-wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00eache
-wao.ui.field.SampleRow.libelle=Libell\u00e9
+wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00EAche
+wao.ui.field.SampleRow.libelle=Libell\u00E9
wao.ui.field.SampleRow.meshSize=Maillage
-wao.ui.field.SampleRow.observationUnit=Unit\u00e9 d'observation
+wao.ui.field.SampleRow.observationUnit=Unit\u00E9 d'observation
wao.ui.field.SampleRow.observers=Observateurs
wao.ui.field.SampleRow.other=Autre
-wao.ui.field.SampleRow.periodBegin=D\u00e9but
+wao.ui.field.SampleRow.periodBegin=D\u00E9but
wao.ui.field.SampleRow.periodEnd=Fin
-wao.ui.field.SampleRow.profession=M\u00e9tier
-wao.ui.field.SampleRow.professionCode=Code m\u00e9tier
+wao.ui.field.SampleRow.profession=M\u00E9tier
+wao.ui.field.SampleRow.professionCode=Code m\u00E9tier
wao.ui.field.SampleRow.programName=Programme
-wao.ui.field.SampleRow.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage
+wao.ui.field.SampleRow.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage
wao.ui.field.SampleRow.size=Taille du navire
-wao.ui.field.SampleRow.species=Esp\u00e8ces cibles
+wao.ui.field.SampleRow.species=Esp\u00E8ces cibles
wao.ui.field.SampleRow.terrestrialLocation=Quartier maritime
wao.ui.field.SampleRow.terrestrialLocationInfos=Autre(s) info(s)
-wao.ui.field.TerrestrialDivision.regionIfremer=R\u00e9gion Ifremer
-wao.ui.field.TerrestrialDivision.skillZone=Zone de comp\u00e9tence
+wao.ui.field.TerrestrialDivision.regionIfremer=R\u00E9gion Ifremer
+wao.ui.field.TerrestrialDivision.skillZone=Zone de comp\u00E9tence
wao.ui.field.TerrestrialDivision.subPopulation=Sous-population
-wao.ui.field.User.firstName=Pr\u00e9nom
+wao.ui.field.User.firstName=Pr\u00E9nom
wao.ui.field.User.lastName=Nom
wao.ui.field.User.login=Identifiant
-wao.ui.field.UserProfile.userRole=R\u00f4le
+wao.ui.field.UserProfile.userRole=R\u00F4le
wao.ui.field.WaoUser.login=Identifiant
wao.ui.field.WaoUser.mammalsNotifications=Recevoir les notifications de captures accidentelles
wao.ui.field.WaoUser.password=Mot de passe
wao.ui.filters.filters=Filtres de recherche
-wao.ui.filters.refresh=Rafra\u00eechir les champs du filtre
-wao.ui.forgotPassword=Mot de passe oubli\u00e9 ?
-wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00e9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00e9parateur pour s\u00e9parer les immatriculations (virgule, point, espace ou saut de ligne)
-wao.ui.form.SampleRow.error.missingLogComment=Vous devez pr\u00e9ciser la raison de vos modifications
-wao.ui.form.SampleRow.missingBeginDate=Date de d\u00e9but manquante pour g\u00e9n\u00e9rer le code de la ligne \!
-wao.ui.form.SampleRow.others=Autres donn\u00e9es de la ligne d'\u00e9chantillonnage
+wao.ui.filters.refresh=Rafra\u00EEchir les champs du filtre
+wao.ui.forgotPassword=Mot de passe oubli\u00E9 ?
+wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00E9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00E9parateur pour s\u00E9parer les immatriculations (virgule, point, espace ou saut de ligne)
+wao.ui.form.SampleRow.error.missingLogComment=Vous devez pr\u00E9ciser la raison de vos modifications
+wao.ui.form.SampleRow.missingBeginDate=Date de d\u00E9but manquante pour g\u00E9n\u00E9rer le code de la ligne \!
+wao.ui.form.SampleRow.others=Autres donn\u00E9es de la ligne d'\u00E9chantillonnage
wao.ui.form.SampleRow.program=Programme de rattachement et effort d'observation par mois
wao.ui.form.addComment=Ajouter un commentaire
-wao.ui.form.addRole=Ajouter ce r\u00f4le
+wao.ui.form.addRole=Ajouter ce r\u00F4le
wao.ui.form.boardingFrom=Sollicitations du navire depuis le
wao.ui.form.contactsFile=Fichier des contacts
-wao.ui.form.definePasswordManually=d\u00e9finir manuellement
+wao.ui.form.definePasswordManually=d\u00E9finir manuellement
wao.ui.form.editComment=Commentaire sur la modification
wao.ui.form.editionAuthor=Auteur de la modification
-wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00e9
-wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00e9 \u00e9quivaut au nombre de contacts valid\u00e9s ou non par la soci\u00e9t\u00e9. Les contacts refus\u00e9s par le programme ne sont pas pris en compte.
-wao.ui.form.generatePassword=G\u00e9n\u00e9rer le mot de passe
+wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00E9
+wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00E9 \u00E9quivaut au nombre de contacts valid\u00E9s ou non par la soci\u00E9t\u00E9. Les contacts refus\u00E9s par le programme ne sont pas pris en compte.
+wao.ui.form.generatePassword=G\u00E9n\u00E9rer le mot de passe
wao.ui.form.otherBoatInfos=Autres informations sur le navire
-wao.ui.form.period=P\u00e9riode
+wao.ui.form.period=P\u00E9riode
wao.ui.form.period.from=du
wao.ui.form.period.to=au
-wao.ui.form.periodFrom=P\u00e9riode du
-wao.ui.form.periodFromTo=P\u00e9riode du %s au %s
+wao.ui.form.periodFrom=P\u00E9riode du
+wao.ui.form.periodFromTo=P\u00E9riode du %s au %s
wao.ui.form.program=Programme
-wao.ui.form.programEvaluation=\u00c9valuation programme
+wao.ui.form.programEvaluation=\u00C9valuation programme
wao.ui.form.readOnly=lecture seule
wao.ui.form.removeRole=retirer ce role
-wao.ui.form.repeatPassword=R\u00e9p\u00e9ter le mot de passe
-wao.ui.form.roles=R\u00f4les
-wao.ui.form.sortByTideBegin=Trier par date de d\u00e9but d'observation (du plus r\u00e9cent au plus ancien)
-wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00e9
-wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00e9 en cours. Vous pouvez continuer \u00e0 naviguer sur le site en attendant la fin du chargement.
-wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00e9
-wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00e8s utilisateurs aux calendriers d'activit\u00e9
-wao.ui.import.boatDistrictLabel=des coordonn\u00e9es des quartiers des navires
+wao.ui.form.repeatPassword=R\u00E9p\u00E9ter le mot de passe
+wao.ui.form.roles=R\u00F4les
+wao.ui.form.sortByTideBegin=Trier par date de d\u00E9but d'observation (du plus r\u00E9cent au plus ancien)
+wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00E9
+wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00E9 en cours. Vous pouvez continuer \u00E0 naviguer sur le site en attendant la fin du chargement.
+wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00E9
+wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00E8s utilisateurs aux calendriers d'activit\u00E9
+wao.ui.import.boatDistrictLabel=des coordonn\u00E9es des quartiers des navires
wao.ui.import.boatsLabel=des navires
wao.ui.import.description=Fichier %s %s \:
-wao.ui.import.fishingZoneLabel=des zones de p\u00eaches
+wao.ui.import.fishingZoneLabel=des zones de p\u00EAches
wao.ui.import.fullDescription=Import %s (format %s avec encodage UTF-8)
wao.ui.import.longTitle=Import/Export CSV (UTF-8)
-wao.ui.import.samplingPlanLabel=du plan d'\u00e9chantillonnage
-wao.ui.import.terrestrialDivisionsLabel=du r\u00e9f\u00e9rentiel de stratification spatiale (ObsDeb)
+wao.ui.import.samplingPlanLabel=du plan d'\u00E9chantillonnage
+wao.ui.import.terrestrialDivisionsLabel=du r\u00E9f\u00E9rentiel de stratification spatiale (ObsDeb)
wao.ui.import.terrestrialLocationsLabel=des lieux terrestres
wao.ui.import.title=Import %s
wao.ui.indicator.andMore=%s et plus
wao.ui.indicator.bounds=Bornes
-wao.ui.indicator.coefficient=Pond\u00e9ration
+wao.ui.indicator.coefficient=Pond\u00E9ration
wao.ui.indicator.editions=Modifications
wao.ui.indicator.indicator=Indicateur
-wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00e9t\u00e9 selon cet indicateur.
+wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00E9t\u00E9 selon cet indicateur.
wao.ui.indicator.levels=Niveaux
-wao.ui.indicator.useRightDecimalSymbol=Attention \u00e0 bien utiliser ',' et non '.' pour les d\u00e9cimales
+wao.ui.indicator.useRightDecimalSymbol=Attention \u00E0 bien utiliser ',' et non '.' pour les d\u00E9cimales
wao.ui.indicators.coefficientsSum=Total coefficient
-wao.ui.indicators.title=Indicateurs qualit\u00e9s prestataires
+wao.ui.indicators.title=Indicateurs qualit\u00E9s prestataires
wao.ui.invalidLogin=Identifiant invalide
-wao.ui.layout.userDescription=Vous \u00eates %s de la soci\u00e9t\u00e9 %s (%s)
+wao.ui.layout.userDescription=Vous \u00EAtes %s de la soci\u00E9t\u00E9 %s (%s)
wao.ui.message.chooseProfile=Choisissez dans la liste votre profil de connexion \:
-wao.ui.misc.METIER=M\u00c9TIER
-wao.ui.misc.N/A=non renseign\u00e9e
-wao.ui.misc.accepted=Accept\u00e9
-wao.ui.misc.advancedSearch=Recherche avanc\u00e9e
+wao.ui.misc.METIER=M\u00C9TIER
+wao.ui.misc.N/A=non renseign\u00E9e
+wao.ui.misc.accepted=Accept\u00E9
+wao.ui.misc.advancedSearch=Recherche avanc\u00E9e
wao.ui.misc.by=par
wao.ui.misc.changeOn=Modification du
wao.ui.misc.comment=Commentaire
-wao.ui.misc.commentAddedOn=Commentaire ajout\u00e9 le
+wao.ui.misc.commentAddedOn=Commentaire ajout\u00E9 le
wao.ui.misc.comments=Commentaires
-wao.ui.misc.companies=Soci\u00e9t\u00e9s
-wao.ui.misc.createdOnF=Cr\u00e9\u00e9e le
-wao.ui.misc.creating=En cours de cr\u00e9ation
+wao.ui.misc.companies=Soci\u00E9t\u00E9s
+wao.ui.misc.createdOnF=Cr\u00E9\u00E9e le
+wao.ui.misc.creating=En cours de cr\u00E9ation
wao.ui.misc.dayOfWeek=Jour
wao.ui.misc.export=Export
wao.ui.misc.export.longTitle=Export CSV
@@ -226,7 +226,7 @@
wao.ui.misc.logFile.description=Afficher le fichier de log de %s
wao.ui.misc.no=Non
wao.ui.misc.noComment=aucun commentaire
-wao.ui.misc.notValidated=Non valid\u00e9
+wao.ui.misc.notValidated=Non valid\u00E9
wao.ui.misc.observationReport=Compte-rendu d'observation
wao.ui.misc.observations=Observations
wao.ui.misc.observer=Observateur
@@ -236,79 +236,79 @@
wao.ui.misc.other=Autre
wao.ui.misc.otherInfos=Autre information
wao.ui.misc.others=Autres
-wao.ui.misc.refused=R\u00e9fus\u00e9
+wao.ui.misc.refused=R\u00E9fus\u00E9
wao.ui.misc.since=depuis le
wao.ui.misc.total=Total
-wao.ui.misc.undefined=Non-d\u00e9fini
-wao.ui.misc.validated=Valid\u00e9
+wao.ui.misc.undefined=Non-d\u00E9fini
+wao.ui.misc.validated=Valid\u00E9
wao.ui.misc.week=Semaine
-wao.ui.misc.year=Ann\u00e9e
+wao.ui.misc.year=Ann\u00E9e
wao.ui.misc.yes=Oui
-wao.ui.nContactsFound=%s contacts trouv\u00e9s
+wao.ui.nContactsFound=%s contacts trouv\u00E9s
wao.ui.news.content=Texte
wao.ui.news.title=Titre
wao.ui.page.Administration.title=Administration
wao.ui.page.Boats.title=Navires
wao.ui.page.Cartography.title=Cartographie
-wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00e0 des personnels ext\u00e9rieurs, soyez riguoureux dans la description de la capture accidentelle
+wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00E0 des personnels ext\u00E9rieurs, soyez riguoureux dans la description de la capture accidentelle
wao.ui.page.ContactForm.title=Modification d'un contact
wao.ui.page.Contacts.title=Contacts
wao.ui.page.Index.title=Accueil
-wao.ui.page.SamplingPlan.title=Plan d'\u00e9chantillonnage
-wao.ui.page.Synthesis.title=Synth\u00e8se
+wao.ui.page.SamplingPlan.title=Plan d'\u00E9chantillonnage
+wao.ui.page.Synthesis.title=Synth\u00E8se
wao.ui.page.UserProfileForm.title=Gestion du profil
-wao.ui.publishedByProgram=Publi\u00e9e par le programme
-wao.ui.publishedByYourCompany=Publi\u00e9e par la soci\u00e9t\u00e9
-wao.ui.sampleRow.creation=Cr\u00e9ation d'une ligne du plan d'\u00e9chantillonnage
+wao.ui.publishedByProgram=Publi\u00E9e par le programme
+wao.ui.publishedByYourCompany=Publi\u00E9e par la soci\u00E9t\u00E9
+wao.ui.sampleRow.creation=Cr\u00E9ation d'une ligne du plan d'\u00E9chantillonnage
wao.ui.sampleRow.edition=Modification de la ligne %s
wao.ui.sampleRowLog.title=Historique de la ligne %s
wao.ui.samplingPlan.actions=Actions
-wao.ui.samplingPlan.actual=r\u00e9alis\u00e9
-wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00e9chantillonnage
-wao.ui.samplingPlan.averageTideTime=Dur\u00e9e moyenne d'une mar\u00e9e (J.)
-wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00e9es
-wao.ui.samplingPlan.estimated=estim\u00e9
-wao.ui.samplingPlan.expected=planifi\u00e9
-wao.ui.samplingPlan.export=Exporter le plan d'\u00e9chantillonnage du %s au %s
+wao.ui.samplingPlan.actual=r\u00E9alis\u00E9
+wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00E9chantillonnage
+wao.ui.samplingPlan.averageTideTime=Dur\u00E9e moyenne d'une mar\u00E9e (J.)
+wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00E9es
+wao.ui.samplingPlan.estimated=estim\u00E9
+wao.ui.samplingPlan.expected=planifi\u00E9
+wao.ui.samplingPlan.export=Exporter le plan d'\u00E9chantillonnage du %s au %s
wao.ui.samplingPlan.fishingZoneInfo=Zone autre(s) info(s)
wao.ui.samplingPlan.months=Mois
wao.ui.samplingPlan.nbObservants=Nb. d'observateurs
-wao.ui.samplingPlan.program=Programme ou r\u00e8glement rattachement
-wao.ui.samplingPlan.sampledProfessions=M\u00e9tiers \u00e9chantillonn\u00e9s
-wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00e9alis\u00e9 pour les contacts valid\u00e9s seulement
-wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00e9 pour les contacts valid\u00e9s ou non par la soci\u00e9t\u00e9
-wao.ui.samplingPlan.title=Plan d'\u00e9chantillonnage
-wao.ui.synthesis.allegroReactivity.description=Ce r\u00e9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00e9es et la date de fin d'observation.
-wao.ui.synthesis.allegroReactivity.title=R\u00e9activit\u00e9 quant \u00e0 la saisie des donn\u00e9es
+wao.ui.samplingPlan.program=Programme ou r\u00E8glement rattachement
+wao.ui.samplingPlan.sampledProfessions=M\u00E9tiers \u00E9chantillonn\u00E9s
+wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00E9alis\u00E9 pour les contacts valid\u00E9s seulement
+wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00E9 pour les contacts valid\u00E9s ou non par la soci\u00E9t\u00E9
+wao.ui.samplingPlan.title=Plan d'\u00E9chantillonnage
+wao.ui.synthesis.allegroReactivity.description=Ce r\u00E9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00E9es et la date de fin d'observation.
+wao.ui.synthesis.allegroReactivity.title=R\u00E9activit\u00E9 quant \u00E0 la saisie des donn\u00E9es
wao.ui.synthesis.boarding.boardingCount=Au total, %s observations invalides sur %s observations.
-wao.ui.synthesis.boarding.description=Ces r\u00e9sultats ne concernent que les lignes du plan d'\u00e9chantillonnage ayant une dur\u00e9e moyenne de mar\u00e9es inf\u00e9rieure ou \u00e9gale \u00e0 48h.
-wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00e9 avec %s observations (tous programmes confondus) \: %s (%s)
+wao.ui.synthesis.boarding.description=Ces r\u00E9sultats ne concernent que les lignes du plan d'\u00E9chantillonnage ayant une dur\u00E9e moyenne de mar\u00E9es inf\u00E9rieure ou \u00E9gale \u00E0 48h.
+wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00E9 avec %s observations (tous programmes confondus) \: %s (%s)
wao.ui.synthesis.boarding.title=Sollicitations des navires
-wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00e9vu d'observateurs pour chaque mar\u00e9e r\u00e9alis\u00e9e.
-wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00e9s
-wao.ui.synthesis.contactsStates.description=Ces r\u00e9sultats concernent l'ensemble des \u00e9tats des contacts except\u00e9 ceux qui ont \u00e9t\u00e9 refus\u00e9s par le programme.
-wao.ui.synthesis.contactsStates.title=\u00c9tats des contacts
-wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00e9es exploitables par rapport nombre de mar\u00e9e r\u00e9alis\u00e9es.
-wao.ui.synthesis.dataReliability.title=Qualit\u00e9 de la donn\u00e9e
-wao.ui.synthesis.dataSampling.title=Donn\u00e9es des mar\u00e9es (r\u00e9alis\u00e9 / planifi\u00e9)
+wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00E9vu d'observateurs pour chaque mar\u00E9e r\u00E9alis\u00E9e.
+wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00E9s
+wao.ui.synthesis.contactsStates.description=Ces r\u00E9sultats concernent l'ensemble des \u00E9tats des contacts except\u00E9 ceux qui ont \u00E9t\u00E9 refus\u00E9s par le programme.
+wao.ui.synthesis.contactsStates.title=\u00C9tats des contacts
+wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00E9es exploitables par rapport nombre de mar\u00E9e r\u00E9alis\u00E9es.
+wao.ui.synthesis.dataReliability.title=Qualit\u00E9 de la donn\u00E9e
+wao.ui.synthesis.dataSampling.title=Donn\u00E9es des mar\u00E9es (r\u00E9alis\u00E9 / planifi\u00E9)
wao.ui.synthesis.distinctBoatsCounts.axisName=Nombre de navires distincts
-wao.ui.synthesis.distinctBoatsCounts.categoryName=Mois de l'ann\u00e9e
-wao.ui.synthesis.distinctBoatsCounts.description=Nombre de navires distincts observ\u00e9s selon le mois de l'ann\u00e9e
-wao.ui.synthesis.distinctBoatsCounts.title=Nombre de navires observ\u00e9s
-wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00e8se global
-wao.ui.synthesis.globalSynthesis.title=Synth\u00e8se globale
-wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00e8se globale (selon estimations)
-wao.ui.synthesis.log.description=Cette page pr\u00e9sente toutes les modifications effectu\u00e9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs.
-wao.ui.synthesis.log.empty=Aucune modification n'a \u00e9t\u00e9 apport\u00e9e \u00e0 ce jour
+wao.ui.synthesis.distinctBoatsCounts.categoryName=Mois de l'ann\u00E9e
+wao.ui.synthesis.distinctBoatsCounts.description=Nombre de navires distincts observ\u00E9s selon le mois de l'ann\u00E9e
+wao.ui.synthesis.distinctBoatsCounts.title=Nombre de navires observ\u00E9s
+wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00E8se global
+wao.ui.synthesis.globalSynthesis.title=Synth\u00E8se globale
+wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00E8se globale (selon estimations)
+wao.ui.synthesis.log.description=Cette page pr\u00E9sente toutes les modifications effectu\u00E9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs.
+wao.ui.synthesis.log.empty=Aucune modification n'a \u00E9t\u00E9 apport\u00E9e \u00E0 ce jour
wao.ui.synthesis.log.entry.author=Auteur de la modification
-wao.ui.synthesis.log.entry.comment=Commentaire associ\u00e9
+wao.ui.synthesis.log.entry.comment=Commentaire associ\u00E9
wao.ui.synthesis.log.entry.date=Date de la modification
-wao.ui.synthesis.log.entry.summary=Modifications effectu\u00e9es
-wao.ui.synthesis.log.title=Historique des modifications des param\u00e8tres de la synth\u00e8se globale
+wao.ui.synthesis.log.entry.summary=Modifications effectu\u00E9es
+wao.ui.synthesis.log.title=Historique des modifications des param\u00E8tres de la synth\u00E8se globale
wao.ui.synthesis.observationHours.axisName=Nombre d'observations
-wao.ui.synthesis.observationHours.categoryName=Heures de la journ\u00e9e
-wao.ui.synthesis.observationHours.description=Nombre d'observations effectu\u00e9e selon l'heure d'arriv\u00e9e
-wao.ui.synthesis.observationHours.title=Distribution des p\u00e9riodes d'observation
-wao.ui.unavailableOperation=Op\u00e9ration non-disponible
+wao.ui.synthesis.observationHours.categoryName=Heures de la journ\u00E9e
+wao.ui.synthesis.observationHours.description=Nombre d'observations effectu\u00E9e selon l'heure d'arriv\u00E9e
+wao.ui.synthesis.observationHours.title=Distribution des p\u00E9riodes d'observation
+wao.ui.unavailableOperation=Op\u00E9ration non-disponible
wao.ui.userList=Liste des utilisateurs
wao.ui.validLogin=Identifiant valide
1
0
[Suiviobsmer-commits] r1268 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/xmi wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/resources/i18n wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 11 May '11
by bleny@users.labs.libre-entreprise.org 11 May '11
11 May '11
Author: bleny
Date: 2011-05-11 14:10:13 +0000 (Wed, 11 May 2011)
New Revision: 1268
Log:
add port of regitry in boat filters and grid
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterValuesImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
trunk/wao-ui/src/main/webapp/Boats.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterValuesImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterValuesImpl.java 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/BoatFilterValuesImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
@@ -24,8 +24,11 @@
package fr.ifremer.wao.bean;
import fr.ifremer.wao.entity.Boat;
+import fr.ifremer.wao.entity.Company;
import fr.ifremer.wao.entity.ElligibleBoat;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import java.util.ArrayList;
import java.util.List;
/**
@@ -34,12 +37,31 @@
public class BoatFilterValuesImpl extends BoatFilterValues {
@Override
+ public void addPortsOfRegistry(TerrestrialLocation toAdd) {
+ if (toAdd == null) {
+ return;
+ }
+ if (getPortsOfRegistry() == null) {
+ setPortsOfRegistry(new ArrayList<TerrestrialLocation>());
+ }
+ if (!containsPortsOfRegistry(toAdd)) {
+ super.addPortsOfRegistry(toAdd);
+ }
+ }
+
+ @Override
+ public List<TerrestrialLocation> getPortsOfRegistryAsList() {
+ return getAsList(getPortsOfRegistry());
+ }
+
+ @Override
public void fillBoats(List<Boat> boats) {
for (Boat boat : boats) {
List<ElligibleBoat> elligibleBoats = boat.getElligibleBoat();
for (ElligibleBoat elligibleBoat : elligibleBoats) {
fillSampleRow(elligibleBoat.getSampleRow());
}
+ addPortsOfRegistry(boat.getPortOfRegistry());
}
}
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
@@ -599,6 +599,8 @@
result.setSampleRows(serviceSampling.getSampleRowsByFilter(filter));
filter.setSampleRow(sampleRow);
+ result.setPortsOfRegistry(serviceReferential.getAllPorts(null));
+
} else {
// extract data
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-05-11 14:10:13 UTC (rev 1268)
@@ -659,24 +659,38 @@
return observationUnits;
}
- /** Returns all the ports that are in a given observation unit */
+ /** Returns all the ports that are in a given observation unit
+ * @param observationUnit may be null, and all ports will be returned
+ */
@Override
protected List<TerrestrialLocation> executeGetAllPorts(TopiaContext transaction, TerrestrialDivision observationUnit) throws Exception {
- TerrestrialDivisionDAO terrestrialDivisionDAO = WaoDAOHelper.getTerrestrialDivisionDAO(transaction);
- Map<String, Object> properties = new HashMap<String, Object>();
- properties.put(TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE, observationUnit.getObservationUnitCode());
- properties.put(TerrestrialDivision.PROPERTY_REGION_IFREMER_CODE, observationUnit.getRegionIfremerCode());
- List<TerrestrialDivision> terrestrialDivisions = terrestrialDivisionDAO.findAllByProperties(properties);
+ List<TerrestrialLocation> ports;
- List<TerrestrialLocation> ports = new LinkedList<TerrestrialLocation>();
- for (TerrestrialDivision terrestrialDivision : terrestrialDivisions) {
- if ( ! terrestrialDivision.isObservationUnit()) {
- TerrestrialLocation port = terrestrialDivision.getPort();
- ports.add(port);
- port.getDescription();
+ if (observationUnit == null) {
+
+ TerrestrialLocationDAO terrestrialLocationDAO = WaoDAOHelper.getTerrestrialLocationDAO(transaction);
+ ports = terrestrialLocationDAO.findAllByLocationTypeOrdinal(LocationType.PORT.ordinal());
+
+ } else {
+
+ TerrestrialDivisionDAO terrestrialDivisionDAO = WaoDAOHelper.getTerrestrialDivisionDAO(transaction);
+
+ Map<String, Object> properties = new HashMap<String, Object>();
+ properties.put(TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE, observationUnit.getObservationUnitCode());
+ properties.put(TerrestrialDivision.PROPERTY_REGION_IFREMER_CODE, observationUnit.getRegionIfremerCode());
+ List<TerrestrialDivision> terrestrialDivisions = terrestrialDivisionDAO.findAllByProperties(properties);
+
+ ports = new LinkedList<TerrestrialLocation>();
+ for (TerrestrialDivision terrestrialDivision : terrestrialDivisions) {
+ if ( ! terrestrialDivision.isObservationUnit()) {
+ TerrestrialLocation port = terrestrialDivision.getPort();
+ ports.add(port);
+ port.getDescription();
+ }
}
}
+
return ports;
}
}
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-05-11 14:10:13 UTC (rev 1268)
@@ -95,6 +95,14 @@
t:value="filter.shipOwnerName"
t:mixins="Autocomplete" />
</div>
+ <div>
+ <label for="portOfRegistry" style="margin-left: 15px;">${message:wao.ui.field.Boat.portOfRegistry} :</label>
+ <t:topiaEntitySelector t:id="portOfRegistry"
+ t:clazzName="TerrestrialLocation"
+ t:labelPropertyName="description"
+ t:values="possibleValuesForFilter.portsOfRegistryAsList"
+ t:selectedValue="filter.portOfRegistry" />
+ </div>
<div class="aright" style="white-space: nowrap;">
<input t:type="submit" class="ico22px refresh" t:id="refresh"
value="${message:wao.ui.filters.refresh}"
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-05-11 14:10:13 UTC (rev 1268)
@@ -81,6 +81,7 @@
wao.ui.field.Boat.districtCode=District
wao.ui.field.Boat.immatriculation=Registration number
wao.ui.field.Boat.name=Name
+wao.ui.field.Boat.portOfRegistry=Port of registry
wao.ui.field.Boat.shipOwner=Shipowner
wao.ui.field.BoatDistrict.code=District code
wao.ui.field.BoatInfos.dup=Capacity of the ship in specialized staff
Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties
===================================================================
--- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-05-11 14:10:13 UTC (rev 1268)
@@ -8,211 +8,212 @@
SynthesisId.OBSERVATION_HOUR=
wao.ui.action.acceptContact=Valider le contact
wao.ui.action.add=Ajouter
-wao.ui.action.addNewContactFromBoat=Cr\u00E9er un nouveau contact pour ce navire et la ligne s\u00E9lectionn\u00E9e dans les filtres
-wao.ui.action.back=Revenier \u00E0 l'\u00E9cran pr\u00E9c\u00E9dent
+wao.ui.action.addNewContactFromBoat=Cr\u00e9er un nouveau contact pour ce navire et la ligne s\u00e9lectionn\u00e9e dans les filtres
+wao.ui.action.back=Revenier \u00e0 l'\u00e9cran pr\u00e9c\u00e9dent
wao.ui.action.cancel=Annuler
wao.ui.action.changeLocale=Changer de langue
wao.ui.action.contactAdmin=Contacter un responsable ObsMer
-wao.ui.action.create=Cr\u00E9er
-wao.ui.action.createCompany=Cr\u00E9er une soci\u00E9t\u00E9
-wao.ui.action.createUser=Cr\u00E9er un utilisateur
+wao.ui.action.create=Cr\u00e9er
+wao.ui.action.createCompany=Cr\u00e9er une soci\u00e9t\u00e9
+wao.ui.action.createUser=Cr\u00e9er un utilisateur
wao.ui.action.delete=Supprimer
-wao.ui.action.deleteCompany=Supprimer la soci\u00E9t\u00E9
-wao.ui.action.deleteCompany.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la soci\u00E9t\u00E9 ?
+wao.ui.action.deleteCompany=Supprimer la soci\u00e9t\u00e9
+wao.ui.action.deleteCompany.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la soci\u00e9t\u00e9 ?
wao.ui.action.deleteContact=Supprimer le contact
-wao.ui.action.deleteContact.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement ce contact ?
+wao.ui.action.deleteContact.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement ce contact ?
wao.ui.action.deleteNews=Supprimer la nouvelle
-wao.ui.action.deleteNews.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer d\u00E9finitivement cette nouvelle ?
+wao.ui.action.deleteNews.confirm=\u00cates-vous s\u00fbr de vouloir supprimer d\u00e9finitivement cette nouvelle ?
wao.ui.action.deleteSampleRow=Supprimer la ligne du plan
-wao.ui.action.deleteSampleRow.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer la ligne %s du plan ?
+wao.ui.action.deleteSampleRow.confirm=\u00cates-vous s\u00fbr de vouloir supprimer la ligne %s du plan ?
wao.ui.action.deleteUser=Supprimer l'utilisateur
-wao.ui.action.deleteUser.confirm=\u00CAtes-vous s\u00FBr de vouloir supprimer l'utilisateur ?
+wao.ui.action.deleteUser.confirm=\u00cates-vous s\u00fbr de vouloir supprimer l'utilisateur ?
wao.ui.action.edit=Modifier
wao.ui.action.enlargeView=Agrandir la vue
-wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00E9es
+wao.ui.action.exportBoats=Exporter les $s navires avec leurs informations priv\u00e9es
wao.ui.action.filter=Filtrer
wao.ui.action.hideFilters=Masquer les filtres
wao.ui.action.login=Connexion
-wao.ui.action.logout=D\u00E9connexion
-wao.ui.action.reduceView=R\u00E9duire la vue
-wao.ui.action.refresh=Rafra\u00EEchir
+wao.ui.action.logout=D\u00e9connexion
+wao.ui.action.reduceView=R\u00e9duire la vue
+wao.ui.action.refresh=Rafra\u00eechir
wao.ui.action.refuseContact=Refuser le contact
wao.ui.action.remove=Retirer
-wao.ui.action.resetFields=Remettre le formulaire \u00E0 z\u00E9ro
+wao.ui.action.resetFields=Remettre le formulaire \u00e0 z\u00e9ro
wao.ui.action.revert=Annuler
wao.ui.action.runExport=Lancer l'export
wao.ui.action.runImport=Lancer l'import
wao.ui.action.runSearch=Lancer la recherche
wao.ui.action.save=Enregistrer
-wao.ui.action.showDetails=Voir les d\u00E9tails
+wao.ui.action.showDetails=Voir les d\u00e9tails
wao.ui.action.showFilters=Afficher les filtres
wao.ui.action.unvalidateContact=Invalider le contact
wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs
wao.ui.boatList=Liste de %s navires
wao.ui.boatinfo.title=Informations sur %s
-wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00E9e(s) \u00E0 ce navire
-wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00E9t\u00E9
-wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00E9tail.
-wao.ui.cartography.title=R\u00E9partition des contacts par quartier des navires
-wao.ui.cartography.title.company=R\u00E9partition des contacts par quartier des navires pour la soci\u00E9t\u00E9 %s
+wao.ui.boats.associatedLine=Ligne(s) du plan associ\u00e9e(s) \u00e0 ce navire
+wao.ui.boats.nbObservations=%s observation(s) dont %s avec votre soci\u00e9t\u00e9
+wao.ui.cartography.help=Cliquez sur les graphiques pour avoir le d\u00e9tail.
+wao.ui.cartography.title=R\u00e9partition des contacts par quartier des navires
+wao.ui.cartography.title.company=R\u00e9partition des contacts par quartier des navires pour la soci\u00e9t\u00e9 %s
wao.ui.chart.boardingsSince=Nombre de sollicitations depuis le %s
wao.ui.chart.numberBoats=Nb navires
wao.ui.chart.numberObservations=Nb observations
wao.ui.chart.numberOfBoatsWithBoardings=Nombre de navires avec x embarquements
-wao.ui.contact.lastContact=Derni\u00E8re observation concernant ce navire pour votre soci\u00E9t\u00E9 (tous programmes confondus)
-wao.ui.contacts.createFromBoat=Cr\u00E9er un nouveau contact pour ce navire et cette ligne du plan
-wao.ui.contacts.createFromBoat.fail=Cr\u00E9ation d'un nouveau contact impossible
-wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00E9e \u00E0 \u00E9ch\u00E9ance, \u00EAtes-vous s\u00FBr de vouloir cr\u00E9er un nouveau contact ?
-wao.ui.disclaimer=Le site de \u00AB SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00BB a fait l'objet d'une d\u00E9claration \u00E0 la CNIL sous le num\u00E9ro suivant \: 1414476
-wao.ui.disclaimer.boats=Les donn\u00E9es saisies dans cette page sont la propri\u00E9t\u00E9 exclusive de la soci\u00E9t\u00E9. En dehors de la soci\u00E9t\u00E9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer.
+wao.ui.contact.lastContact=Derni\u00e8re observation concernant ce navire pour votre soci\u00e9t\u00e9 (tous programmes confondus)
+wao.ui.contacts.createFromBoat=Cr\u00e9er un nouveau contact pour ce navire et cette ligne du plan
+wao.ui.contacts.createFromBoat.fail=Cr\u00e9ation d'un nouveau contact impossible
+wao.ui.contacts.createFromBoat.warn=Attention \: cette ligne du plan est arriv\u00e9e \u00e0 \u00e9ch\u00e9ance, \u00eates-vous s\u00fbr de vouloir cr\u00e9er un nouveau contact ?
+wao.ui.disclaimer=Le site de \u00ab SUIVI DU REALISE DU PLAN D'ECHANTILLONNAGE DES OBSERVATIONS A LA MER \u00bb a fait l'objet d'une d\u00e9claration \u00e0 la CNIL sous le num\u00e9ro suivant \: 1414476
+wao.ui.disclaimer.boats=Les donn\u00e9es saisies dans cette page sont la propri\u00e9t\u00e9 exclusive de la soci\u00e9t\u00e9. En dehors de la soci\u00e9t\u00e9, seul l'administrateur peut les consulter pour des questions de maintenance sur le site. L'administrateur est une personne de l'Ifremer.
wao.ui.email=Adresse e-mail
wao.ui.entity.Boat=Navire
wao.ui.entity.Boats=Navires
-wao.ui.entity.Company=Soci\u00E9t\u00E9
+wao.ui.entity.Company=Soci\u00e9t\u00e9
wao.ui.entity.Contact=Contact
-wao.ui.entity.FishingZone=Zones de p\u00EAche
-wao.ui.entity.SampleRow=Ligne du plan d'\u00E9chantillonnage
+wao.ui.entity.FishingZone=Zones de p\u00eache
+wao.ui.entity.SampleRow=Ligne du plan d'\u00e9chantillonnage
wao.ui.entity.TerrestrialLocation=Lieu
wao.ui.entity.fishingGearDCF=Engin code DCF
-wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00E8ces-cible code DCF
+wao.ui.entity.targetSpeciesDCF=Ensembles d'esp\u00e8ces-cible code DCF
wao.ui.field.Boat.boatLength=Longueur
-wao.ui.field.Boat.buildYear=Ann\u00E9e de construction
+wao.ui.field.Boat.buildYear=Ann\u00e9e de construction
wao.ui.field.Boat.districtCode=Quartier
wao.ui.field.Boat.immatriculation=Immatriculation
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 quartier
-wao.ui.field.BoatInfos.dup=Capacit\u00E9 d'accueil du navire en personnels sp\u00E9cialis\u00E9s
+wao.ui.field.BoatInfos.dup=Capacit\u00e9 d'accueil du navire en personnels sp\u00e9cialis\u00e9s
wao.ui.field.Company.active=Active
wao.ui.field.Company.name=Nom
-wao.ui.field.Contact.beginDate=D\u00E9but d'observation
+wao.ui.field.Contact.beginDate=D\u00e9but d'observation
wao.ui.field.Contact.comment=Commentaire observateur
wao.ui.field.Contact.commentAdmin=Commentaire programme
wao.ui.field.Contact.commentCoordinator=Commentaire coordinateur
-wao.ui.field.Contact.completeSampling=\u00C9chantillonnage complet
-wao.ui.field.Contact.contactState=\u00C9tat du contact
+wao.ui.field.Contact.completeSampling=\u00c9chantillonnage complet
+wao.ui.field.Contact.contactState=\u00c9tat du contact
wao.ui.field.Contact.contactStateMotif=Motif du refus
wao.ui.field.Contact.contactStateMotifs=Motifs de refus
-wao.ui.field.Contact.creationDate=Date de cr\u00E9ation du contact
-wao.ui.field.Contact.dataInputDate=Saisie des donn\u00E9es
-wao.ui.field.Contact.dataReliability=Qualit\u00E9 des donn\u00E9es
+wao.ui.field.Contact.creationDate=Date de cr\u00e9ation du contact
+wao.ui.field.Contact.dataInputDate=Saisie des donn\u00e9es
+wao.ui.field.Contact.dataReliability=Qualit\u00e9 des donn\u00e9es
wao.ui.field.Contact.endDate=Fin d'observation
-wao.ui.field.Contact.landingDate=Date de d\u00E9barquement
-wao.ui.field.Contact.mainObserver=Observateur r\u00E9f\u00E9rent
+wao.ui.field.Contact.landingDate=Date de d\u00e9barquement
+wao.ui.field.Contact.mainObserver=Observateur r\u00e9f\u00e9rent
wao.ui.field.Contact.mammalsCapture=Capture accidentelle
-wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00E8ces captur\u00E9es
+wao.ui.field.Contact.mammalsInfo=Noms scientifiques et nombres d'individus des esp\u00e8ces captur\u00e9es
wao.ui.field.Contact.mammalsObservation=Observation exceptionnelle
wao.ui.field.Contact.nbObservants=Nombre d'observateurs
wao.ui.field.Contact.observationType=Type d'observation
-wao.ui.field.Contact.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage suivie
+wao.ui.field.Contact.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage suivie
wao.ui.field.Contact.secondaryObservers=Observateurs
wao.ui.field.Contact.terrestrialLocation=Lieu d'observation
-wao.ui.field.Contact.validationCompany=Validation soci\u00E9t\u00E9
+wao.ui.field.Contact.validationCompany=Validation soci\u00e9t\u00e9
wao.ui.field.Contact.validationProgram=Validation programme
-wao.ui.field.FishingZone.facadeName=Fa\u00E7ade
+wao.ui.field.FishingZone.facadeName=Fa\u00e7ade
wao.ui.field.FishingZone.sectorName=Zone
wao.ui.field.SampleRow.code=Code ligne
wao.ui.field.SampleRow.comment=Commentaire
-wao.ui.field.SampleRow.company=Soci\u00E9t\u00E9
+wao.ui.field.SampleRow.company=Soci\u00e9t\u00e9
wao.ui.field.SampleRow.dCF5Code=Codes
wao.ui.field.SampleRow.day=Jour
wao.ui.field.SampleRow.dcf5Code=Code DCF Niv. 5
-wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00EAche
-wao.ui.field.SampleRow.libelle=Libell\u00E9
+wao.ui.field.SampleRow.fishingZones=Zone(s) de p\u00eache
+wao.ui.field.SampleRow.libelle=Libell\u00e9
wao.ui.field.SampleRow.meshSize=Maillage
-wao.ui.field.SampleRow.observationUnit=Unit\u00E9 d'observation
+wao.ui.field.SampleRow.observationUnit=Unit\u00e9 d'observation
wao.ui.field.SampleRow.observers=Observateurs
wao.ui.field.SampleRow.other=Autre
-wao.ui.field.SampleRow.periodBegin=D\u00E9but
+wao.ui.field.SampleRow.periodBegin=D\u00e9but
wao.ui.field.SampleRow.periodEnd=Fin
-wao.ui.field.SampleRow.profession=M\u00E9tier
-wao.ui.field.SampleRow.professionCode=Code m\u00E9tier
+wao.ui.field.SampleRow.profession=M\u00e9tier
+wao.ui.field.SampleRow.professionCode=Code m\u00e9tier
wao.ui.field.SampleRow.programName=Programme
-wao.ui.field.SampleRow.samplingStrategy=Strat\u00E9gie d'\u00E9chantillonnage
+wao.ui.field.SampleRow.samplingStrategy=Strat\u00e9gie d'\u00e9chantillonnage
wao.ui.field.SampleRow.size=Taille du navire
-wao.ui.field.SampleRow.species=Esp\u00E8ces cibles
+wao.ui.field.SampleRow.species=Esp\u00e8ces cibles
wao.ui.field.SampleRow.terrestrialLocation=Quartier maritime
wao.ui.field.SampleRow.terrestrialLocationInfos=Autre(s) info(s)
-wao.ui.field.TerrestrialDivision.regionIfremer=R\u00E9gion Ifremer
-wao.ui.field.TerrestrialDivision.skillZone=Zone de comp\u00E9tence
+wao.ui.field.TerrestrialDivision.regionIfremer=R\u00e9gion Ifremer
+wao.ui.field.TerrestrialDivision.skillZone=Zone de comp\u00e9tence
wao.ui.field.TerrestrialDivision.subPopulation=Sous-population
-wao.ui.field.User.firstName=Pr\u00E9nom
+wao.ui.field.User.firstName=Pr\u00e9nom
wao.ui.field.User.lastName=Nom
wao.ui.field.User.login=Identifiant
-wao.ui.field.UserProfile.userRole=R\u00F4le
+wao.ui.field.UserProfile.userRole=R\u00f4le
wao.ui.field.WaoUser.login=Identifiant
wao.ui.field.WaoUser.mammalsNotifications=Recevoir les notifications de captures accidentelles
wao.ui.field.WaoUser.password=Mot de passe
wao.ui.filters.filters=Filtres de recherche
-wao.ui.filters.refresh=Rafra\u00EEchir les champs du filtre
-wao.ui.forgotPassword=Mot de passe oubli\u00E9 ?
-wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00E9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00E9parateur pour s\u00E9parer les immatriculations (virgule, point, espace ou saut de ligne)
-wao.ui.form.SampleRow.error.missingLogComment=Vous devez pr\u00E9ciser la raison de vos modifications
-wao.ui.form.SampleRow.missingBeginDate=Date de d\u00E9but manquante pour g\u00E9n\u00E9rer le code de la ligne \!
-wao.ui.form.SampleRow.others=Autres donn\u00E9es de la ligne d'\u00E9chantillonnage
+wao.ui.filters.refresh=Rafra\u00eechir les champs du filtre
+wao.ui.forgotPassword=Mot de passe oubli\u00e9 ?
+wao.ui.form.SampleRow.boatsDescription=Ce champs correspond aux immatriculations des navires qui sont \u00e9ligibles pour cette ligne. Vous pouvez utiliser n'importe quel s\u00e9parateur pour s\u00e9parer les immatriculations (virgule, point, espace ou saut de ligne)
+wao.ui.form.SampleRow.error.missingLogComment=Vous devez pr\u00e9ciser la raison de vos modifications
+wao.ui.form.SampleRow.missingBeginDate=Date de d\u00e9but manquante pour g\u00e9n\u00e9rer le code de la ligne \!
+wao.ui.form.SampleRow.others=Autres donn\u00e9es de la ligne d'\u00e9chantillonnage
wao.ui.form.SampleRow.program=Programme de rattachement et effort d'observation par mois
wao.ui.form.addComment=Ajouter un commentaire
-wao.ui.form.addRole=Ajouter ce r\u00F4le
+wao.ui.form.addRole=Ajouter ce r\u00f4le
wao.ui.form.boardingFrom=Sollicitations du navire depuis le
wao.ui.form.contactsFile=Fichier des contacts
-wao.ui.form.definePasswordManually=d\u00E9finir manuellement
+wao.ui.form.definePasswordManually=d\u00e9finir manuellement
wao.ui.form.editComment=Commentaire sur la modification
wao.ui.form.editionAuthor=Auteur de la modification
-wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00E9
-wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00E9 \u00E9quivaut au nombre de contacts valid\u00E9s ou non par la soci\u00E9t\u00E9. Les contacts refus\u00E9s par le programme ne sont pas pris en compte.
-wao.ui.form.generatePassword=G\u00E9n\u00E9rer le mot de passe
+wao.ui.form.estimatedTides=Voir l'effort d'observations estim\u00e9
+wao.ui.form.estimatedTides.description=L'effort d'observations estim\u00e9 \u00e9quivaut au nombre de contacts valid\u00e9s ou non par la soci\u00e9t\u00e9. Les contacts refus\u00e9s par le programme ne sont pas pris en compte.
+wao.ui.form.generatePassword=G\u00e9n\u00e9rer le mot de passe
wao.ui.form.otherBoatInfos=Autres informations sur le navire
-wao.ui.form.period=P\u00E9riode
+wao.ui.form.period=P\u00e9riode
wao.ui.form.period.from=du
wao.ui.form.period.to=au
-wao.ui.form.periodFrom=P\u00E9riode du
-wao.ui.form.periodFromTo=P\u00E9riode du %s au %s
+wao.ui.form.periodFrom=P\u00e9riode du
+wao.ui.form.periodFromTo=P\u00e9riode du %s au %s
wao.ui.form.program=Programme
-wao.ui.form.programEvaluation=\u00C9valuation programme
+wao.ui.form.programEvaluation=\u00c9valuation programme
wao.ui.form.readOnly=lecture seule
wao.ui.form.removeRole=retirer ce role
-wao.ui.form.repeatPassword=R\u00E9p\u00E9ter le mot de passe
-wao.ui.form.roles=R\u00F4les
-wao.ui.form.sortByTideBegin=Trier par date de d\u00E9but d'observation (du plus r\u00E9cent au plus ancien)
-wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00E9
-wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00E9 en cours. Vous pouvez continuer \u00E0 naviguer sur le site en attendant la fin du chargement.
-wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00E9
-wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00E8s utilisateurs aux calendriers d'activit\u00E9
-wao.ui.import.boatDistrictLabel=des coordonn\u00E9es des quartiers des navires
+wao.ui.form.repeatPassword=R\u00e9p\u00e9ter le mot de passe
+wao.ui.form.roles=R\u00f4les
+wao.ui.form.sortByTideBegin=Trier par date de d\u00e9but d'observation (du plus r\u00e9cent au plus ancien)
+wao.ui.import.activityCalendarImportLabel=de l'import des calendriers d'activit\u00e9
+wao.ui.import.activityCalendarImportRunning=Import des calendriers d'activit\u00e9 en cours. Vous pouvez continuer \u00e0 naviguer sur le site en attendant la fin du chargement.
+wao.ui.import.activityCalendarLabel=des calendriers d'activit\u00e9
+wao.ui.import.activityCalendarUserAccessesLabel=des acc\u00e8s utilisateurs aux calendriers d'activit\u00e9
+wao.ui.import.boatDistrictLabel=des coordonn\u00e9es des quartiers des navires
wao.ui.import.boatsLabel=des navires
wao.ui.import.description=Fichier %s %s \:
-wao.ui.import.fishingZoneLabel=des zones de p\u00EAches
+wao.ui.import.fishingZoneLabel=des zones de p\u00eaches
wao.ui.import.fullDescription=Import %s (format %s avec encodage UTF-8)
wao.ui.import.longTitle=Import/Export CSV (UTF-8)
-wao.ui.import.samplingPlanLabel=du plan d'\u00E9chantillonnage
-wao.ui.import.terrestrialDivisionsLabel=du r\u00E9f\u00E9rentiel de stratification spatiale (ObsDeb)
+wao.ui.import.samplingPlanLabel=du plan d'\u00e9chantillonnage
+wao.ui.import.terrestrialDivisionsLabel=du r\u00e9f\u00e9rentiel de stratification spatiale (ObsDeb)
wao.ui.import.terrestrialLocationsLabel=des lieux terrestres
wao.ui.import.title=Import %s
wao.ui.indicator.andMore=%s et plus
wao.ui.indicator.bounds=Bornes
-wao.ui.indicator.coefficient=Pond\u00E9ration
+wao.ui.indicator.coefficient=Pond\u00e9ration
wao.ui.indicator.editions=Modifications
wao.ui.indicator.indicator=Indicateur
-wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00E9t\u00E9 selon cet indicateur.
+wao.ui.indicator.legend=En jaune, la position actuelle de la soci\u00e9t\u00e9 selon cet indicateur.
wao.ui.indicator.levels=Niveaux
-wao.ui.indicator.useRightDecimalSymbol=Attention \u00E0 bien utiliser ',' et non '.' pour les d\u00E9cimales
+wao.ui.indicator.useRightDecimalSymbol=Attention \u00e0 bien utiliser ',' et non '.' pour les d\u00e9cimales
wao.ui.indicators.coefficientsSum=Total coefficient
-wao.ui.indicators.title=Indicateurs qualit\u00E9s prestataires
+wao.ui.indicators.title=Indicateurs qualit\u00e9s prestataires
wao.ui.invalidLogin=Identifiant invalide
-wao.ui.layout.userDescription=Vous \u00EAtes %s de la soci\u00E9t\u00E9 %s (%s)
+wao.ui.layout.userDescription=Vous \u00eates %s de la soci\u00e9t\u00e9 %s (%s)
wao.ui.message.chooseProfile=Choisissez dans la liste votre profil de connexion \:
-wao.ui.misc.METIER=M\u00C9TIER
-wao.ui.misc.N/A=non renseign\u00E9e
-wao.ui.misc.accepted=Accept\u00E9
-wao.ui.misc.advancedSearch=Recherche avanc\u00E9e
+wao.ui.misc.METIER=M\u00c9TIER
+wao.ui.misc.N/A=non renseign\u00e9e
+wao.ui.misc.accepted=Accept\u00e9
+wao.ui.misc.advancedSearch=Recherche avanc\u00e9e
wao.ui.misc.by=par
wao.ui.misc.changeOn=Modification du
wao.ui.misc.comment=Commentaire
-wao.ui.misc.commentAddedOn=Commentaire ajout\u00E9 le
+wao.ui.misc.commentAddedOn=Commentaire ajout\u00e9 le
wao.ui.misc.comments=Commentaires
-wao.ui.misc.companies=Soci\u00E9t\u00E9s
-wao.ui.misc.createdOnF=Cr\u00E9\u00E9e le
-wao.ui.misc.creating=En cours de cr\u00E9ation
+wao.ui.misc.companies=Soci\u00e9t\u00e9s
+wao.ui.misc.createdOnF=Cr\u00e9\u00e9e le
+wao.ui.misc.creating=En cours de cr\u00e9ation
wao.ui.misc.dayOfWeek=Jour
wao.ui.misc.export=Export
wao.ui.misc.export.longTitle=Export CSV
@@ -225,7 +226,7 @@
wao.ui.misc.logFile.description=Afficher le fichier de log de %s
wao.ui.misc.no=Non
wao.ui.misc.noComment=aucun commentaire
-wao.ui.misc.notValidated=Non valid\u00E9
+wao.ui.misc.notValidated=Non valid\u00e9
wao.ui.misc.observationReport=Compte-rendu d'observation
wao.ui.misc.observations=Observations
wao.ui.misc.observer=Observateur
@@ -235,79 +236,79 @@
wao.ui.misc.other=Autre
wao.ui.misc.otherInfos=Autre information
wao.ui.misc.others=Autres
-wao.ui.misc.refused=R\u00E9fus\u00E9
+wao.ui.misc.refused=R\u00e9fus\u00e9
wao.ui.misc.since=depuis le
wao.ui.misc.total=Total
-wao.ui.misc.undefined=Non-d\u00E9fini
-wao.ui.misc.validated=Valid\u00E9
+wao.ui.misc.undefined=Non-d\u00e9fini
+wao.ui.misc.validated=Valid\u00e9
wao.ui.misc.week=Semaine
-wao.ui.misc.year=Ann\u00E9e
+wao.ui.misc.year=Ann\u00e9e
wao.ui.misc.yes=Oui
-wao.ui.nContactsFound=%s contacts trouv\u00E9s
+wao.ui.nContactsFound=%s contacts trouv\u00e9s
wao.ui.news.content=Texte
wao.ui.news.title=Titre
wao.ui.page.Administration.title=Administration
wao.ui.page.Boats.title=Navires
wao.ui.page.Cartography.title=Cartographie
-wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00E0 des personnels ext\u00E9rieurs, soyez riguoureux dans la description de la capture accidentelle
+wao.ui.page.ContactForm.mammalsInfo.disclaimer=Attention, toutes les informations saisies seront transmises \u00e0 des personnels ext\u00e9rieurs, soyez riguoureux dans la description de la capture accidentelle
wao.ui.page.ContactForm.title=Modification d'un contact
wao.ui.page.Contacts.title=Contacts
wao.ui.page.Index.title=Accueil
-wao.ui.page.SamplingPlan.title=Plan d'\u00E9chantillonnage
-wao.ui.page.Synthesis.title=Synth\u00E8se
+wao.ui.page.SamplingPlan.title=Plan d'\u00e9chantillonnage
+wao.ui.page.Synthesis.title=Synth\u00e8se
wao.ui.page.UserProfileForm.title=Gestion du profil
-wao.ui.publishedByProgram=Publi\u00E9e par le programme
-wao.ui.publishedByYourCompany=Publi\u00E9e par la soci\u00E9t\u00E9
-wao.ui.sampleRow.creation=Cr\u00E9ation d'une ligne du plan d'\u00E9chantillonnage
+wao.ui.publishedByProgram=Publi\u00e9e par le programme
+wao.ui.publishedByYourCompany=Publi\u00e9e par la soci\u00e9t\u00e9
+wao.ui.sampleRow.creation=Cr\u00e9ation d'une ligne du plan d'\u00e9chantillonnage
wao.ui.sampleRow.edition=Modification de la ligne %s
wao.ui.sampleRowLog.title=Historique de la ligne %s
wao.ui.samplingPlan.actions=Actions
-wao.ui.samplingPlan.actual=r\u00E9alis\u00E9
-wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00E9chantillonnage
-wao.ui.samplingPlan.averageTideTime=Dur\u00E9e moyenne d'une mar\u00E9e (J.)
-wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00E9es
-wao.ui.samplingPlan.estimated=estim\u00E9
-wao.ui.samplingPlan.expected=planifi\u00E9
-wao.ui.samplingPlan.export=Exporter le plan d'\u00E9chantillonnage du %s au %s
+wao.ui.samplingPlan.actual=r\u00e9alis\u00e9
+wao.ui.samplingPlan.addSampleRow=Ajouter une ligne au plan d'\u00e9chantillonnage
+wao.ui.samplingPlan.averageTideTime=Dur\u00e9e moyenne d'une mar\u00e9e (J.)
+wao.ui.samplingPlan.effort=Effort d'observation en nombre de mar\u00e9es
+wao.ui.samplingPlan.estimated=estim\u00e9
+wao.ui.samplingPlan.expected=planifi\u00e9
+wao.ui.samplingPlan.export=Exporter le plan d'\u00e9chantillonnage du %s au %s
wao.ui.samplingPlan.fishingZoneInfo=Zone autre(s) info(s)
wao.ui.samplingPlan.months=Mois
wao.ui.samplingPlan.nbObservants=Nb. d'observateurs
-wao.ui.samplingPlan.program=Programme ou r\u00E8glement rattachement
-wao.ui.samplingPlan.sampledProfessions=M\u00E9tiers \u00E9chantillonn\u00E9s
-wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00E9alis\u00E9 pour les contacts valid\u00E9s seulement
-wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00E9 pour les contacts valid\u00E9s ou non par la soci\u00E9t\u00E9
-wao.ui.samplingPlan.title=Plan d'\u00E9chantillonnage
-wao.ui.synthesis.allegroReactivity.description=Ce r\u00E9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00E9es et la date de fin d'observation.
-wao.ui.synthesis.allegroReactivity.title=R\u00E9activit\u00E9 quant \u00E0 la saisie des donn\u00E9es
+wao.ui.samplingPlan.program=Programme ou r\u00e8glement rattachement
+wao.ui.samplingPlan.sampledProfessions=M\u00e9tiers \u00e9chantillonn\u00e9s
+wao.ui.samplingPlan.showActual=Afficher l'effort d'observations r\u00e9alis\u00e9 pour les contacts valid\u00e9s seulement
+wao.ui.samplingPlan.showExpected=Afficher l'effort d'observations estim\u00e9 pour les contacts valid\u00e9s ou non par la soci\u00e9t\u00e9
+wao.ui.samplingPlan.title=Plan d'\u00e9chantillonnage
+wao.ui.synthesis.allegroReactivity.description=Ce r\u00e9sultat est une moyenne du nombre de jours entre la date de saisie des donn\u00e9es et la date de fin d'observation.
+wao.ui.synthesis.allegroReactivity.title=R\u00e9activit\u00e9 quant \u00e0 la saisie des donn\u00e9es
wao.ui.synthesis.boarding.boardingCount=Au total, %s observations invalides sur %s observations.
-wao.ui.synthesis.boarding.description=Ces r\u00E9sultats ne concernent que les lignes du plan d'\u00E9chantillonnage ayant une dur\u00E9e moyenne de mar\u00E9es inf\u00E9rieure ou \u00E9gale \u00E0 48h.
-wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00E9 avec %s observations (tous programmes confondus) \: %s (%s)
+wao.ui.synthesis.boarding.description=Ces r\u00e9sultats ne concernent que les lignes du plan d'\u00e9chantillonnage ayant une dur\u00e9e moyenne de mar\u00e9es inf\u00e9rieure ou \u00e9gale \u00e0 48h.
+wao.ui.synthesis.boarding.mostUsedBoat=Navire le plus sollicit\u00e9 avec %s observations (tous programmes confondus) \: %s (%s)
wao.ui.synthesis.boarding.title=Sollicitations des navires
-wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00E9vu d'observateurs pour chaque mar\u00E9e r\u00E9alis\u00E9e.
-wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00E9s
-wao.ui.synthesis.contactsStates.description=Ces r\u00E9sultats concernent l'ensemble des \u00E9tats des contacts except\u00E9 ceux qui ont \u00E9t\u00E9 refus\u00E9s par le programme.
-wao.ui.synthesis.contactsStates.title=\u00C9tats des contacts
-wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00E9es exploitables par rapport nombre de mar\u00E9e r\u00E9alis\u00E9es.
-wao.ui.synthesis.dataReliability.title=Qualit\u00E9 de la donn\u00E9e
-wao.ui.synthesis.dataSampling.title=Donn\u00E9es des mar\u00E9es (r\u00E9alis\u00E9 / planifi\u00E9)
+wao.ui.synthesis.complianceBoarding.description=Respect du nombre pr\u00e9vu d'observateurs pour chaque mar\u00e9e r\u00e9alis\u00e9e.
+wao.ui.synthesis.complianceBoarding.title=Respect du nombre d'observateurs embarqu\u00e9s
+wao.ui.synthesis.contactsStates.description=Ces r\u00e9sultats concernent l'ensemble des \u00e9tats des contacts except\u00e9 ceux qui ont \u00e9t\u00e9 refus\u00e9s par le programme.
+wao.ui.synthesis.contactsStates.title=\u00c9tats des contacts
+wao.ui.synthesis.dataReliability.description=Pourcentage du nombre de mar\u00e9es exploitables par rapport nombre de mar\u00e9e r\u00e9alis\u00e9es.
+wao.ui.synthesis.dataReliability.title=Qualit\u00e9 de la donn\u00e9e
+wao.ui.synthesis.dataSampling.title=Donn\u00e9es des mar\u00e9es (r\u00e9alis\u00e9 / planifi\u00e9)
wao.ui.synthesis.distinctBoatsCounts.axisName=Nombre de navires distincts
-wao.ui.synthesis.distinctBoatsCounts.categoryName=Mois de l'ann\u00E9e
-wao.ui.synthesis.distinctBoatsCounts.description=Nombre de navires distincts observ\u00E9s selon le mois de l'ann\u00E9e
-wao.ui.synthesis.distinctBoatsCounts.title=Nombre de navires observ\u00E9s
-wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00E8se global
-wao.ui.synthesis.globalSynthesis.title=Synth\u00E8se globale
-wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00E8se globale (selon estimations)
-wao.ui.synthesis.log.description=Cette page pr\u00E9sente toutes les modifications effectu\u00E9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs.
-wao.ui.synthesis.log.empty=Aucune modification n'a \u00E9t\u00E9 apport\u00E9e \u00E0 ce jour
+wao.ui.synthesis.distinctBoatsCounts.categoryName=Mois de l'ann\u00e9e
+wao.ui.synthesis.distinctBoatsCounts.description=Nombre de navires distincts observ\u00e9s selon le mois de l'ann\u00e9e
+wao.ui.synthesis.distinctBoatsCounts.title=Nombre de navires observ\u00e9s
+wao.ui.synthesis.globalSynthesis.globalResult=Bilan de la synth\u00e8se global
+wao.ui.synthesis.globalSynthesis.title=Synth\u00e8se globale
+wao.ui.synthesis.globalSynthesis.title.estimated=Synth\u00e8se globale (selon estimations)
+wao.ui.synthesis.log.description=Cette page pr\u00e9sente toutes les modifications effectu\u00e9es depuis l'origine qui portent sur les bornes de chaque niveaux ainsi que les coefficients de chaque indicateurs.
+wao.ui.synthesis.log.empty=Aucune modification n'a \u00e9t\u00e9 apport\u00e9e \u00e0 ce jour
wao.ui.synthesis.log.entry.author=Auteur de la modification
-wao.ui.synthesis.log.entry.comment=Commentaire associ\u00E9
+wao.ui.synthesis.log.entry.comment=Commentaire associ\u00e9
wao.ui.synthesis.log.entry.date=Date de la modification
-wao.ui.synthesis.log.entry.summary=Modifications effectu\u00E9es
-wao.ui.synthesis.log.title=Historique des modifications des param\u00E8tres de la synth\u00E8se globale
+wao.ui.synthesis.log.entry.summary=Modifications effectu\u00e9es
+wao.ui.synthesis.log.title=Historique des modifications des param\u00e8tres de la synth\u00e8se globale
wao.ui.synthesis.observationHours.axisName=Nombre d'observations
-wao.ui.synthesis.observationHours.categoryName=Heures de la journ\u00E9e
-wao.ui.synthesis.observationHours.description=Nombre d'observations effectu\u00E9e selon l'heure d'arriv\u00E9e
-wao.ui.synthesis.observationHours.title=Distribution des p\u00E9riodes d'observation
-wao.ui.unavailableOperation=Op\u00E9ration non-disponible
+wao.ui.synthesis.observationHours.categoryName=Heures de la journ\u00e9e
+wao.ui.synthesis.observationHours.description=Nombre d'observations effectu\u00e9e selon l'heure d'arriv\u00e9e
+wao.ui.synthesis.observationHours.title=Distribution des p\u00e9riodes d'observation
+wao.ui.unavailableOperation=Op\u00e9ration non-disponible
wao.ui.userList=Liste des utilisateurs
wao.ui.validLogin=Identifiant valide
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2011-05-11 13:18:17 UTC (rev 1267)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-05-11 14:10:13 UTC (rev 1268)
@@ -120,7 +120,7 @@
title="${format:wao.ui.action.exportBoats=boats.availableRows}" />
</a>
</h1>
- <div t:type="grid" t:source="boats" t:row="boat" t:add="boatDistrict"
+ <div t:type="grid" t:source="boats" t:row="boat" t:add="boatDistrict, portOfRegistry"
t:include="name, immatriculation, boatLength, buildYear" t:rowClass="prop:rowStyle" t:rowsPerPage="20">
<p:nameCell>
<t:if t:test="canCreateNewContactFromList()">
@@ -141,6 +141,11 @@
<p:boatLengthCell>
${boat.boatLength} m
</p:boatLengthCell>
+ <p:portOfRegistryCell>
+ <t:if test="boat.portOfRegistry">
+ ${boat.portOfRegistry.code}
+ </t:if>
+ </p:portOfRegistryCell>
</div>
</div>
1
0
[Suiviobsmer-commits] r1267 - in trunk: wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/test/java/fr/ifremer/wao/service wao-business/src/test/resources/import wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp
by bleny@users.labs.libre-entreprise.org 11 May '11
by bleny@users.labs.libre-entreprise.org 11 May '11
11 May '11
Author: bleny
Date: 2011-05-11 13:18:17 +0000 (Wed, 11 May 2011)
New Revision: 1267
Log:
add port of registry to boats, enabling filtering on sampleRows
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
trunk/wao-business/src/test/resources/import/navires.csv
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoQueryBuilder.java 2011-05-11 13:18:17 UTC (rev 1267)
@@ -31,8 +31,10 @@
import fr.ifremer.wao.entity.Contact;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.WaoUser;
+import net.fortuna.ical4j.model.Period;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang.StringUtils;
+import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.util.PeriodDates;
import org.slf4j.Logger;
@@ -292,17 +294,6 @@
query.addSubQuery(WaoQueryHelper.format(
"$1 IN (?)", sampleRowProperty.$alias()), subquery);
- // XXX 20101022 bleny it seems that last call don't
- // keep params of the sub-query. Thus, the :facadeName is still
- // in the query but misses in params of the request.
- // the next line is a work-around that copy the params of the
- // subquery is the main query. It works but it seems that
- // there is a bug in addSubQuery, :facadeName should have been
- // replaced in the query and removed from params OR not replaced
- // in the query and kept in the params but NOT not replaced in
- // the query and removed from params
- query.getParams().addAll(subquery.getParams());
-
if(logger.isDebugEnabled()) {
logger.debug("sampling filter query " + query);
}
@@ -471,6 +462,12 @@
*/
public TopiaQuery applyBoatFilter(BoatFilter filter) {
+ if (filter.getObsProgram() == ObsProgram.OBSDEB) {
+ sampleRowProperty = WaoQueryHelper.newSampleRowProperty();
+ } else {
+ sampleRowProperty = elligibleBoatProperty.sampleRowProperty();
+ }
+
//boatProperty = query.getMainAlias();
Company company = filter.getCompany();
@@ -482,25 +479,41 @@
// Sampling filter
if (filter.isSamplingFiltered()) {
- // Add join for ElligibleBoat
-// elligibleBoatProperty = WaoQueryHelper.newElligibleBoatProperty();
- query.addLeftJoin(boatProperty.elligibleBoat(), elligibleBoatProperty.$alias(), false);
+ if (filter.getObsProgram() == ObsProgram.OBSDEB) {
+ if (filter.getSampleRow() != null) {
+ String observationUnitCode = filter.getSampleRow().getObservationUnit().getObservationUnitCode();
- // To be sure to have no doubloons
- query.setSelect(boatProperty.$alias()).addDistinct();
+ WaoQueryHelper.TerrestrialDivisionProperty subTerrestrialDivisionProperty =
+ WaoQueryHelper.newTerrestrialDivisionProperty("TD2");
- // Apply filter for sampling
-// sampleRowProperty = elligibleBoatProperty.sampleRowProperty();
- applySamplingFilter(filter);
+ TopiaQuery subquery = WaoQueryHelper.createQuery(subTerrestrialDivisionProperty).
+ setSelect(subTerrestrialDivisionProperty.portProperty().topiaId()).
+ addEquals(subTerrestrialDivisionProperty.observationUnitCode(), observationUnitCode);
- // Company
- if (company != null) {
- // Test only valid ElligibleBoat for that company
- query.addWhere(WaoQueryHelper.format(
- "$1 = :booleanTrue OR ($1 IS NULL AND $2 = :booleanTrue)",
- elligibleBoatProperty.companyActive(),
- elligibleBoatProperty.globalActive())
- ).addParam("booleanTrue", Boolean.TRUE);
+ if (logger.isDebugEnabled()) {
+ logger.debug("subquery to find ports given an observation unit code: " + subquery);
+ }
+
+ query.addSubQuery(WaoQueryHelper.format(
+ "$1 IN (?)", boatProperty.portOfRegistryProperty().topiaId()), subquery);
+
+ }
+ } else {
+ applySamplingFilter(filter);
+ // Add join for ElligibleBoat
+ query.addLeftJoin(boatProperty.elligibleBoat(), elligibleBoatProperty.$alias(), false);
+
+ // To be sure to have no doubloons
+ query.setSelect(boatProperty.$alias()).addDistinct();
+
+ if (company != null) {
+ // Test only valid ElligibleBoat for that company
+ query.addWhere(WaoQueryHelper.format(
+ "$1 = :booleanTrue OR ($1 IS NULL AND $2 = :booleanTrue)",
+ elligibleBoatProperty.companyActive(),
+ elligibleBoatProperty.globalActive())
+ ).addParam("booleanTrue", Boolean.TRUE);
+ }
}
}
@@ -508,6 +521,10 @@
query.addOrder(boatProperty.$property(orderBy));
}
+ if (logger.isDebugEnabled()) {
+ logger.debug("query after applying boat filter:" + query);
+ }
+
return query;
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-11 13:18:17 UTC (rev 1267)
@@ -146,6 +146,13 @@
Map<Integer, Boat> results = dao.findAllMappedByQuery(query,
Boat.PROPERTY_IMMATRICULATION, Integer.class);
+ if (filter.getObsProgram() == ObsProgram.OBSDEB) {
+ // force load
+ for (Boat boat : results.values()) {
+ boat.getPortOfRegistry();
+ }
+ }
+
return results;
}
@@ -447,6 +454,7 @@
existingBoat.setActive(boat.getActive());
existingBoat.setShipOwner(boat.getShipOwner());
existingBoat.setBoatDistrict(boat.getBoatDistrict());
+ existingBoat.setPortOfRegistry(boat.getPortOfRegistry());
boatDAO.update(existingBoat);
}
@@ -611,16 +619,19 @@
protected BoatFilter executeNewBoatFilter(TopiaContext transaction, ConnectedUser connectedUser) throws Exception {
BoatFilter boatFilter = new BoatFilterImpl();
- // Only rows which are not finished nearly one month
- boatFilter.setNbMonthFinishedFromToday(-1);
boatFilter.setObsProgram(connectedUser.getProfile().getObsProgram());
- // Very very important to do that at beginning
+ // Very very important to do that at beginning for security purpose
// Evo #2227 : Guest user has no default company filter
if (connectedUser.isCoordinatorOrObserver()) {
boatFilter.setCompany(connectedUser.getCompany());
}
+ // Only rows which are not finished nearly one month
+ if (connectedUser.isObsMer() || connectedUser.isObsVente()) {
+ boatFilter.setNbMonthFinishedFromToday(-1);
+ }
+
return boatFilter;
}
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebFixtures.java 2011-05-11 13:18:17 UTC (rev 1267)
@@ -61,7 +61,7 @@
return ifremer;
}
- protected void importBoats() {
+ public void boats() {
if ( ! boatsImported) {
ServiceBoat serviceBoat = manager.getServiceBoat();
InputStream input = getClass().getResourceAsStream("/import/navires.csv");
@@ -75,7 +75,7 @@
public Boat samourai() {
if (samourai == null) {
- importBoats();
+ boats();
ServiceBoat serviceBoat = manager.getServiceBoat();
try {
samourai = serviceBoat.getBoat(174258);
@@ -88,7 +88,7 @@
public Boat moise() {
if (moise == null) {
- importBoats();
+ boats();
ServiceBoat serviceBoat = manager.getServiceBoat();
try {
moise = serviceBoat.getBoat(273129);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ObsDebTest.java 2011-05-11 13:18:17 UTC (rev 1267)
@@ -25,6 +25,7 @@
import fr.ifremer.wao.AbstractServiceTest;
import fr.ifremer.wao.WaoBusinessException;
+import fr.ifremer.wao.bean.BoatFilter;
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ObservationType;
@@ -345,10 +346,23 @@
manager.setCurrentDate(DateUtil.createDate(15, 2, 2010));
// the user is supposed to create a contact to tell what he
- // has done this day
+ // has done this day, when i was supposed to observe for this row
SampleRow row = serviceSampling.getSampleRowByCode(fixtures.joshAsObserver(), "2011_890");
- Boat boat = serviceBoat.getBoat(fixtures.moise().getImmatriculation());
+ fixtures.boats(); // boats must be imported
+
+ // observer can get a list of boats given this sample row. It should give him the boats
+ // having a portOfRegistry in the observation unit of the sample-row
+ BoatFilter boatFilter = serviceBoat.newBoatFilter(fixtures.joshAsObserver());
+ boatFilter.setSampleRow(row);
+ Map<Integer, Boat> boatsForRow = serviceBoat.getBoatsByFilter(boatFilter);
+ if (log.isDebugEnabled()) {
+ log.debug("boats returned after filtering on sample row:" + boatsForRow.values());
+ }
+ Assert.assertEquals(4, boatsForRow.size());
+
+ Boat boat = boatsForRow.get(fixtures.moise().getImmatriculation());
+
// let's create the contact
Contact contact = serviceContact.getNewContact(fixtures.joshAsObserver(), row, boat);
Modified: trunk/wao-business/src/test/resources/import/navires.csv
===================================================================
--- trunk/wao-business/src/test/resources/import/navires.csv 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-business/src/test/resources/import/navires.csv 2011-05-11 13:18:17 UTC (rev 1267)
@@ -1,7 +1,7 @@
NAVIRE_IMMATRICULATION;NAVIRE_NOM;NAVIRE_LONGUEUR;NAVIRE_ANNEE;QUARTIER_CODE;ARMATEUR_CODE;ARMATEUR_NOM;ARMATEUR_PRENOM;NAVIRE_ACTIF;PORT_CODE
-273129;MOISE;7;1992;UX;19771564;BEURRE ;JEAN CLAUDE;Y;XSN
-174258;SAMOURAI KING;9;1982;UN;19744130;MARIE ;JEAN PHILIPPE;Y;XSN
+273129;MOISE;7;1992;UX;19771564;BEURRE ;JEAN CLAUDE;Y;MP3
+174258;SAMOURAI KING;9;1982;UN;19744130;MARIE ;JEAN PHILIPPE;Y;MP6
177474;MAYFLOWERS;10;1983;UN;19784252;MOSELLE ;ALAIN RENE;N;XSN
174592;FIFITOU;8;1975;UN;18854131;POUTRE ;JEAN PIERRE;Y;XSN
-284595;A MA LOUTRE;8;1973;UN; SPR3965;BECANAUD; NA;Y;XSN
-978419;BISOUNOURS;11;2002;CI;18854131;POUTRE ;JEAN PIERRE;Y;XSN
+284595;A MA LOUTRE;8;1973;UN; SPR3965;BECANAUD; NA;Y;LP3
+978419;BISOUNOURS;11;2002;CI;18854131;POUTRE ;JEAN PIERRE;Y;MP6
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-05-11 13:18:17 UTC (rev 1267)
@@ -120,7 +120,9 @@
void setupRender() throws WaoException, WaoBusinessException {
- filterComponent.resetFilter();
+ // XXX bleny 20110511 resetting on page load may solve an issue when
+ // creating contact and coming back to Boats. But this may break the page
+ // filterComponent.resetFilter();
if (boatSelectedImmatriculation != null && getBoatSelected() == null) {
layout.addFatal("L'immatriculation " + boatSelectedImmatriculation +
@@ -303,7 +305,7 @@
boatSelectedImmatriculation = null;
// Suppress persistant boat informations for boat selected
companyBoatInfos = null;
- return this;
+ return boatsZone.getBody();
}
/*************** RIGHT PANEL ****************/
Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-09 14:49:28 UTC (rev 1266)
+++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-11 13:18:17 UTC (rev 1267)
@@ -151,6 +151,9 @@
<img src="${asset:context:}/img/delete2.png" alt="${message:wao.ui.action.deleteSampleRow}" />
</a>
</t:if>
+ <a t:type="pagelink" t:page="boats" t:context="sampleRow.code">
+ <img src="${asset:context:}/img/boat.png" alt="${message:wao.ui.entity.Boats}" />
+ </a>
</p:actionsCell>
</div>
1
0
[Suiviobsmer-commits] r1266 - in trunk/wao-business/src: main/java/fr/ifremer/wao main/java/fr/ifremer/wao/io/csv2/models main/java/fr/ifremer/wao/io/csv2/models/operations main/java/fr/ifremer/wao/service main/resources/i18n main/xmi test/resources/import
by bleny@users.labs.libre-entreprise.org 09 May '11
by bleny@users.labs.libre-entreprise.org 09 May '11
09 May '11
Author: bleny
Date: 2011-05-09 14:49:28 +0000 (Mon, 09 May 2011)
New Revision: 1266
Log:
add portOfRegistry to boats (import/export)
Added:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/PortParserFormatter.java
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/BoatImportExportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/TerrestrialDivisionImportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/resources/import/navires.csv
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -875,4 +875,10 @@
queries.add("ALTER TABLE SampleRow ADD blankRow BOOLEAN");
queries.add("UPDATE TABLE SampleRow SET blankRow=FALSE");
}
+
+ @Override
+ protected void addPortOfRegistryToBoats_3_0(List<String> queries) {
+ queries.add("ALTER TABLE Boat ADD portOfRegistry CHARACTER VARYING(255);");
+ queries.add("ALTER TABLE Boat ADD CONSTRAINT portOfRegistry_fkey FOREIGN KEY (portOfRegistry) REFERENCES TerrestrialLocation(topiaId);");
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -145,6 +145,8 @@
protected abstract void addObsDebToSampleRows_3_0(List<String> queries);
+ protected abstract void addPortOfRegistryToBoats_3_0(List<String> queries);
+
protected static final Version[] VERSIONS = new Version[] {
VersionUtil.valueOf("1.0"),
VersionUtil.valueOf("1.1"),
@@ -509,6 +511,8 @@
addObsDebToSampleRows_3_0(queries);
+ addPortOfRegistryToBoats_3_0(queries);
+
String[] strings = queries.toArray(new String[queries.size()]);
executeSQL(tx, showSql, showProgression, strings);
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/BoatImportExportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/BoatImportExportModel.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/BoatImportExportModel.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -5,6 +5,7 @@
import fr.ifremer.wao.entity.BoatDistrictImpl;
import fr.ifremer.wao.entity.BoatImpl;
import fr.ifremer.wao.entity.ShipOwnerImpl;
+import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.io.csv2.Common;
import fr.ifremer.wao.io.csv2.ExportableColumn;
import fr.ifremer.wao.io.csv2.ImportExportModel;
@@ -12,6 +13,7 @@
import fr.ifremer.wao.io.csv2.ModelBuilder;
import fr.ifremer.wao.io.csv2.ValueGetterSetter;
import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import fr.ifremer.wao.io.csv2.models.operations.PortParserFormatter;
import java.text.ParseException;
import java.util.Collection;
@@ -27,7 +29,20 @@
protected ModelBuilder<Boat> modelBuilder;
+ protected List<TerrestrialLocation> ports;
+
+ /** Constructor for export */
public BoatImportExportModel() {
+ buildModel();
+ }
+
+ /** Constructor for import */
+ public BoatImportExportModel(List<TerrestrialLocation> ports) {
+ this.ports = ports;
+ buildModel();
+ }
+
+ protected void buildModel() {
modelBuilder = new ModelBuilder<Boat>();
modelBuilder.newColumnForImportExport("NAVIRE_IMMATRICULATION", Boat.PROPERTY_IMMATRICULATION, new ValueParserFormatter<Integer>() {
Pattern pattern = Pattern.compile("\\d{6}");
@@ -40,7 +55,7 @@
@Override
public Integer parse(String imma) throws ParseException {
Matcher matcher = pattern.matcher(imma);
- if ( ! matcher.find()) {
+ if (!matcher.find()) {
throw new IllegalArgumentException(WaoUtils._("wao.business.boat.validation.immatriculation.wrongFormat"));
}
Integer immatriculation = Integer.parseInt(imma);
@@ -99,6 +114,12 @@
boat.getBoatDistrict().setCode(districtCode);
}
});
+
+ // port of registry
+ modelBuilder.newColumnForImportExport("PORT_CODE",
+ Boat.PROPERTY_PORT_OF_REGISTRY,
+ new PortParserFormatter(ports, true));
+
}
@Override
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/TerrestrialDivisionImportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/TerrestrialDivisionImportModel.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/TerrestrialDivisionImportModel.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -30,27 +30,23 @@
import fr.ifremer.wao.io.csv2.ImportableColumn;
import fr.ifremer.wao.io.csv2.ModelBuilder;
import fr.ifremer.wao.io.csv2.ValueParser;
+import fr.ifremer.wao.io.csv2.models.operations.PortParserFormatter;
import org.apache.commons.lang.StringUtils;
import java.util.Collection;
import java.util.List;
-import java.util.Map;
import java.util.Set;
public class TerrestrialDivisionImportModel implements ImportModel<TerrestrialDivision> {
- /** Existing ports
- * key should be an terrestrial location id {@link fr.ifremer.wao.entity.TerrestrialLocation#getCode()}
- * and all the values must have {@link fr.ifremer.wao.entity.TerrestrialLocation#getLocationType()} at
- * {@link fr.ifremer.wao.bean.LocationType#PORT}.
- */
- protected Map<String, TerrestrialLocation> ports;
/** all valid {@link fr.ifremer.wao.entity.TerrestrialLocation#getRegionIfremerCode()} values.
* for validation purpose only */
protected Set<String> regionCodes;
- public TerrestrialDivisionImportModel(Map<String, TerrestrialLocation> ports, Set<String> regionCodes) {
+ protected List<TerrestrialLocation> ports;
+
+ public TerrestrialDivisionImportModel(List<TerrestrialLocation> ports, Set<String> regionCodes) {
this.ports = ports;
this.regionCodes = regionCodes;
}
@@ -110,16 +106,7 @@
modelBuilder.newMandatoryColumn(
"LIEU_OBSERVATION_COD",
// the value given is a code of a port, let's find and associate
- new ValueParser<TerrestrialLocation>() {
- @Override
- public TerrestrialLocation parse(String locationCode) {
- TerrestrialLocation port = ports.get(locationCode);
- if (port == null) {
- throw new IllegalArgumentException("Le code '" + locationCode + "' n'est pas un code de lieu valide");
- }
- return port;
- }
- },
+ new PortParserFormatter(ports, false),
TerrestrialDivision.PROPERTY_PORT);
modelBuilder.newIgnoredColumn("LIEU_OBSERVATION_LIB");
modelBuilder.newIgnoredColumn("DATE_DEBUT");
Added: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/PortParserFormatter.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/PortParserFormatter.java (rev 0)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/operations/PortParserFormatter.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -0,0 +1,63 @@
+package fr.ifremer.wao.io.csv2.models.operations;
+
+import fr.ifremer.wao.WaoUtils;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.io.csv2.ValueParser;
+import fr.ifremer.wao.io.csv2.ValueParserFormatter;
+import org.apache.commons.lang.StringUtils;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+* Created by IntelliJ IDEA.
+* User: brendan
+* Date: 09/05/11
+* Time: 14:53
+* To change this template use File | Settings | File Templates.
+*/
+public class PortParserFormatter implements ValueParserFormatter<TerrestrialLocation> {
+
+ /** Existing ports
+ * key should be an terrestrial location id {@link fr.ifremer.wao.entity.TerrestrialLocation#getCode()}
+ * and all the values must have {@link fr.ifremer.wao.entity.TerrestrialLocation#getLocationType()} at
+ * {@link fr.ifremer.wao.bean.LocationType#PORT}.
+ */
+ protected Map<String, TerrestrialLocation> ports;
+
+ protected boolean allowNullValue;
+
+ public PortParserFormatter(List<TerrestrialLocation> ports, boolean allowNullValue) {
+ this.allowNullValue = allowNullValue;
+ if (ports != null) {
+ this.ports = WaoUtils.projectPropertyUnique(ports, TerrestrialLocation.PROPERTY_CODE);
+ }
+ }
+
+ @Override
+ public TerrestrialLocation parse(String locationCode) {
+ TerrestrialLocation port;
+ if (StringUtils.isBlank(locationCode)) {
+ if (allowNullValue) {
+ port = null;
+ } else {
+ throw new IllegalArgumentException("Il faut préciser un port");
+ }
+ } else {
+ port = ports.get(locationCode);
+ if (port == null) {
+ throw new IllegalArgumentException("Le code '" + locationCode + "' n'est pas un code de lieu valide");
+ }
+ }
+ return port;
+ }
+
+ @Override
+ public String format(TerrestrialLocation port) {
+ String code = "";
+ if (port != null) {
+ code = port.getCode();
+ }
+ return code;
+ }
+}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -24,8 +24,6 @@
package fr.ifremer.wao.service;
-import com.csvreader.CsvReader;
-import com.csvreader.CsvWriter;
import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoBusinessException.Type;
import fr.ifremer.wao.WaoContext;
@@ -34,6 +32,7 @@
import fr.ifremer.wao.WaoProperty;
import fr.ifremer.wao.WaoQueryBuilder;
import fr.ifremer.wao.WaoQueryHelper;
+import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.BoatFilter;
import fr.ifremer.wao.bean.BoatFilterImpl;
import fr.ifremer.wao.bean.BoatFilterValues;
@@ -41,6 +40,7 @@
import fr.ifremer.wao.bean.CompanyBoatInfos;
import fr.ifremer.wao.bean.CompanyBoatInfosImpl;
import fr.ifremer.wao.bean.ConnectedUser;
+import fr.ifremer.wao.bean.LocationType;
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.entity.ActivityCalendar;
import fr.ifremer.wao.entity.ActivityCalendarDAO;
@@ -62,12 +62,10 @@
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.ShipOwner;
import fr.ifremer.wao.entity.ShipOwnerDAO;
+import fr.ifremer.wao.entity.TerrestrialLocation;
+import fr.ifremer.wao.entity.TerrestrialLocationDAO;
import fr.ifremer.wao.io.ImportResults;
import fr.ifremer.wao.io.ImportResultsImpl;
-import fr.ifremer.wao.io.csv.ExportHelper;
-import fr.ifremer.wao.io.csv.ImportHelper;
-import fr.ifremer.wao.io.csv.WaoCsvHeader;
-import fr.ifremer.wao.io.csv.WaoCsvHeader.BOAT;
import fr.ifremer.wao.io.csv2.Export;
import fr.ifremer.wao.io.csv2.Import;
import fr.ifremer.wao.io.csv2.models.BoatImportExportModel;
@@ -82,11 +80,9 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
-import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
-import java.util.Arrays;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -374,49 +370,67 @@
}
/**
- * Import boats from a CSV file. Warning, must be UTF-8 encoding.
- * Use of CsvReader to manage InputStream and create or update boats.
- * Header file must be : NAVS_COD, CARN_NOM, CARN_LONGUEUR_HT, CARN_ANNEE,
- * QUARTIER_IMMA, PER_COD, PER_NOM,PER_PRENOM.
- * Existing boats (with same immatriculation) are updated.
+ * 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
*
- *
* @param transaction current transaction
- * @param input Stream corresponding to Csv file
- * @return an array with two int : the first corresponding to total number
- * of boats imported and the second corresponding only to new boats added.
- * @throws TopiaException
- * @throws IOException
- * @throws WaoBusinessException
- * @see com.csvreader.CsvReader
+ * @param input stream of the CSV file, see documentation for required headers
+ * file may be encoded using UTF-8 encoding and ';' as column
+ * separator
+ * @return an import result giving counts of number of rows
+ * @throws TopiaException if fail at retrieving/writing data in the DB
+ * @throws IOException if fail at reading CSV file
*/
@Override
public ImportResults executeImportBoatCsv(TopiaContext transaction,
- InputStream input)
- throws TopiaException, IOException, WaoBusinessException {
+ InputStream input) throws TopiaException, IOException {
- BoatImportExportModel model = new BoatImportExportModel();
+ // Before importing, we need to retrieve all ports that may be mentioned
+ // in the CSV file
+ TerrestrialLocationDAO terrestrialLocationDAO = WaoDAOHelper.getTerrestrialLocationDAO(transaction);
+ List<TerrestrialLocation> ports = terrestrialLocationDAO.findAllByLocationTypeOrdinal(LocationType.PORT.ordinal());
+
+ // Building the model, providing ports
+ BoatImportExportModel model = new BoatImportExportModel(ports);
Import<Boat> boatImport = new Import<Boat>(model, input);
+
+ // Getting some DAOs
BoatDAO boatDAO = WaoDAOHelper.getBoatDAO(transaction);
ShipOwnerDAO shipOwnerDAO = WaoDAOHelper.getShipOwnerDAO(transaction);
BoatDistrictDAO boatDistrictDAO = WaoDAOHelper.getBoatDistrictDAO(transaction);
+ // load data that will be linked to the boat
+ Map<String, ShipOwner> shipOwners = WaoUtils.projectPropertyUnique(shipOwnerDAO.findAll(), ShipOwner.PROPERTY_CODE);
+ Map<String, BoatDistrict> districts = WaoUtils.projectPropertyUnique(boatDistrictDAO.findAll(), BoatDistrict.PROPERTY_CODE);
+
+ // init the counts to be returned
ImportResults importResults = new ImportResultsImpl();
+
+ // now iterating over the lines of the CSV
Iterator<Boat> it = boatImport.startImport();
while (it.hasNext()) {
Boat boat = it.next();
+ // 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
- ShipOwner shipOwner = shipOwnerDAO.findByCode(boat.getShipOwner().getCode());
+ 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 boat district
- BoatDistrict district = boatDistrictDAO.findByCode(boat.getBoatDistrict().getCode());
+ String districtCode = boat.getBoatDistrict().getCode();
+ BoatDistrict district = districts.get(districtCode);
if (district == null) {
- district = boatDistrictDAO.create(BoatDistrict.PROPERTY_CODE, boat.getBoatDistrict().getCode());
+ district = boatDistrictDAO.create(BoatDistrict.PROPERTY_CODE, districtCode);
+ districts.put(districtCode, district);
}
boat.setBoatDistrict(district);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-05-09 14:49:28 UTC (rev 1266)
@@ -571,16 +571,15 @@
List<TerrestrialLocation> ports = terrestrialLocationDAO.findAllByLocationTypeOrdinal(LocationType.PORT.ordinal());
// from that, deduce a map terrestrial location code -> entity and the set of region codes
- Map<String, TerrestrialLocation> codeToPorts = WaoUtils.projectPropertyUnique(ports, TerrestrialLocation.PROPERTY_CODE);
Set<String> regionCodes = WaoUtils.projectProperty(String.class, ports, TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE).keySet();
if (log.isDebugEnabled()) {
- log.debug(codeToPorts.size() + " ports, " + regionCodes.size() + " regions");
+ log.debug(ports.size() + " ports, " + regionCodes.size() + " regions");
log.debug("regionCodes = " + regionCodes);
}
// the import itself
- ImportModel<TerrestrialDivision> importModel = new TerrestrialDivisionImportModel(codeToPorts, regionCodes);
+ ImportModel<TerrestrialDivision> importModel = new TerrestrialDivisionImportModel(ports, regionCodes);
Import<TerrestrialDivision> terrestrialDivisionImport = new Import<TerrestrialDivision>(importModel, input);
TerrestrialDivisionDAO dao = WaoDAOHelper.getTerrestrialDivisionDAO(transaction);
Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties
===================================================================
--- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-05-09 14:49:28 UTC (rev 1266)
@@ -1,175 +1,175 @@
ContactPieChartConstant.OTHER=Autres
-ContactPieChartConstant.REALIZED=R\u00e9alis\u00e9s
-ContactPieChartConstant.REFUSED=Refus\u00e9s
-ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00e9finitif
+ContactPieChartConstant.REALIZED=R\u00E9alis\u00E9s
+ContactPieChartConstant.REFUSED=Refus\u00E9s
+ContactState.CONTACT_DEFINITELY_REFUSED=Refus d\u00E9finitif
ContactState.CONTACT_REFUSED=Refus
ContactState.CONTACT_START=Contact pris
-ContactState.OBSERVATION_CANCELLED=Annul\u00e9e
-ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e
-ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e
-ContactState.OBSERVATION_NOT_DONE=Non observ\u00e9
-DataReliability.CORRECTION_ASKED=Correction demand\u00e9e
+ContactState.OBSERVATION_CANCELLED=Annul\u00E9e
+ContactState.OBSERVATION_DONE=Observation r\u00E9alis\u00E9e
+ContactState.OBSERVATION_EXPECTED=Observation programm\u00E9e
+ContactState.OBSERVATION_NOT_DONE=Non observ\u00E9
+DataReliability.CORRECTION_ASKED=Correction demand\u00E9e
DataReliability.DOUBTFUL=Douteuse
-DataReliability.NOT_PROVIDED=Non contr\u00f4l\u00e9e
+DataReliability.NOT_PROVIDED=Non contr\u00F4l\u00E9e
DataReliability.NOT_RELIABLE=Non exploitable
DataReliability.RELIABLE=Exploitable
DataReliability.UNKNOWN=Inconnue
-GlobalIndicatorValue.BAD=P\u00e9nalit\u00e9 de niveau 1
+GlobalIndicatorValue.BAD=P\u00E9nalit\u00E9 de niveau 1
GlobalIndicatorValue.GOOD=Bonus de niveau 1
GlobalIndicatorValue.NEUTRAL=Conforme au cahier des charges
-GlobalIndicatorValue.VERY_BAD=P\u00e9nalit\u00e9 de niveau 2
+GlobalIndicatorValue.VERY_BAD=P\u00E9nalit\u00E9 de niveau 2
GlobalIndicatorValue.VERY_GOOD=Bonus de niveau 2
-LocationType.AUCTION=Cri\u00e9e
+LocationType.AUCTION=Cri\u00E9e
LocationType.PORT=Port
ObsProgram.OBSDEB=ObsDeb
ObsProgram.OBSMER=ObsMer
ObsProgram.OBSVENTE=ObsVente
ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain
-ObservationType.FIELD_WORK_SURVEY=Enqu\u00eate de terrain
-SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00e9 \: Toutes esp\u00e8ces commerciales
-SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1+G2
-SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00e9 \: esp\u00e8ces G1
-SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00e9cifique
-SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00e9s
-SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00eame navire conforme aux exigences
-SynthesisId.GRAPH_SAMPLING=Taux de r\u00e9alisation du plan d'\u00e9chantillonage
-SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00e9lais de transmission des donn\u00e9es
-SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00e9s
-SynthesisId.IND_CONTACT_STATE=\u00c9tats des contacts
-SynthesisId.IND_DATA_RELIABILITY=Qualit\u00e9 de la donn\u00e9e
-SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00e9e
+ObservationType.FIELD_WORK_SURVEY=Enqu\u00EAte de terrain
+SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultan\u00E9 \: Toutes esp\u00E8ces commerciales
+SamplingStrategy.SIMULTANEOUS_G1_G2_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1+G2
+SamplingStrategy.SIMULTANEOUS_G1_SPECIES=Simultan\u00E9 \: esp\u00E8ces G1
+SamplingStrategy.SPECIFIC_STOCK=Stock sp\u00E9cifique
+SynthesisId.DISTINCT_BOATS_COUNTS=Nombres de navires distincts observ\u00E9s
+SynthesisId.GRAPH_BOARDING=Taux d'embarquement sur un m\u00EAme navire conforme aux exigences
+SynthesisId.GRAPH_SAMPLING=Taux de r\u00E9alisation du plan d'\u00E9chantillonage
+SynthesisId.IND_ALLEGRO_REACTIVITY=D\u00E9lais de transmission des donn\u00E9es
+SynthesisId.IND_COMPLIANCE_BOARDING=Respect du nombre d'observateurs embarqu\u00E9s
+SynthesisId.IND_CONTACT_STATE=\u00C9tats des contacts
+SynthesisId.IND_DATA_RELIABILITY=Qualit\u00E9 de la donn\u00E9e
+SynthesisId.OBSERVATION_HOUR=Heures d'observation dans la journ\u00E9e
UserRole.ADMIN=Administrateur
UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invit\u00e9
+UserRole.GUEST=Invit\u00E9
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\u00e9tation de la valeur '%s' (colonne '%s', ligne %s)
-csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00e0 la ligne %s
+csv.import.error.unableToParseValue=Erreur lors de l'interpr\u00E9tation de la valeur '%s' (colonne '%s', ligne %s)
+csv.import.error.unableToReadField=Impossible de lire la colonne '%s' \u00E0 la ligne %s
csv.import.error.unableToReadLine=Impossible de lire la ligne %s
-csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00e9 '%s', ligne %s)
+csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entit\u00E9 '%s', ligne %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.FishingGearDCF.=Non sp\u00e9cifi\u00e9
-fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00e9es par bateau
-fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00e0 main
-fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00e8ges a\u00e9riens
-fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00c9perviers
-fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00e8ges (non-sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00e8ges fixes non couverts
+fr.ifremer.wao.entity.FishingGearDCF.=Non sp\u00E9cifi\u00E9
+fr.ifremer.wao.entity.FishingGearDCF.DRB=Dragues remorqu\u00E9es par bateau
+fr.ifremer.wao.entity.FishingGearDCF.DRH=Dragues \u00E0 main
+fr.ifremer.wao.entity.FishingGearDCF.FAR=Pi\u00E8ges a\u00E9riens
+fr.ifremer.wao.entity.FishingGearDCF.FCN=\u00C9perviers
+fr.ifremer.wao.entity.FishingGearDCF.FG=Autres engins retombants (non-sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.FIX=Pi\u00E8ges (non-sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.FPN=Filets-pi\u00E8ges fixes non couverts
fr.ifremer.wao.entity.FishingGearDCF.FPO=Nasses (casiers)
-fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00e0 l'\u00e9talage (diables)
+fr.ifremer.wao.entity.FishingGearDCF.FSN=Filets \u00E0 l'\u00E9talage (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\u00e9lants (non sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00e0 civelles
-fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.GEN=Filets maillants et filets emm\u00E9lants (non sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.GES=Tamis \u00E0 civelles
+fr.ifremer.wao.entity.FishingGearDCF.GN=Filets maillants (non sp\u00E9cifi\u00E9s)
fr.ifremer.wao.entity.FishingGearDCF.GNC=Filets maillants encerclants
-fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00e9rivants (filets d\u00e9rivants)
+fr.ifremer.wao.entity.FishingGearDCF.GND=Filets maillants d\u00E9rivants (filets d\u00E9rivants)
fr.ifremer.wao.entity.FishingGearDCF.GNF=Filets maillants fixes (sur perches)
-fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00e9s (ancr\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00e9mailleurs
-fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00e9mails et filets maillants combin\u00e9s
-fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00e9mails
+fr.ifremer.wao.entity.FishingGearDCF.GNS=Filets maillants cal\u00E9s (ancr\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.GT=Tr\u00E9mailleurs
+fr.ifremer.wao.entity.FishingGearDCF.GTN=Tr\u00E9mails et filets maillants combin\u00E9s
+fr.ifremer.wao.entity.FishingGearDCF.GTR=Tr\u00E9mails
fr.ifremer.wao.entity.FishingGearDCF.HAR=Harpons
-fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00e9canis\u00e9es
+fr.ifremer.wao.entity.FishingGearDCF.HMD=Dragues m\u00E9canis\u00E9es
fr.ifremer.wao.entity.FishingGearDCF.HMP=Pompes
-fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00e9colte (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.HMX=Engins de r\u00E9colte (non sp\u00E9cifi\u00E9s)
fr.ifremer.wao.entity.FishingGearDCF.LA=Filets tournants sans coulisse (filet lamparo)
-fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00e0 main et lignes avec cannes
-fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00e0 main et lignes \u00e0 cannes
-fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00e9cifi\u00e9es)
-fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00e9rivantes
-fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00e9es ou semi-flottantes
-fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00e9s (non sp\u00e9cifi\u00e9s)
-fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00e9s man\u0153uvr\u00e9es du bateau
-fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00e9s portatifs
-fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00e9s fixes man\u0153uvr\u00e9es du rivage
-fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00eene
-fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00e7ons et lignes (non sp\u00e9cifi\u00e9s)
+fr.ifremer.wao.entity.FishingGearDCF.LHM=Lignes \u00E0 main et lignes avec cannes
+fr.ifremer.wao.entity.FishingGearDCF.LHP=Lignes \u00E0 main et lignes \u00E0 cannes
+fr.ifremer.wao.entity.FishingGearDCF.LL=Palangres (non sp\u00E9cifi\u00E9es)
+fr.ifremer.wao.entity.FishingGearDCF.LLD=Palangres d\u00E9rivantes
+fr.ifremer.wao.entity.FishingGearDCF.LLS=Palangres cal\u00E9es ou semi-flottantes
+fr.ifremer.wao.entity.FishingGearDCF.LN=Filets soulev\u00E9s (non sp\u00E9cifi\u00E9s)
+fr.ifremer.wao.entity.FishingGearDCF.LNB=Filets soulev\u00E9s man\u0153uvr\u00E9es du bateau
+fr.ifremer.wao.entity.FishingGearDCF.LNP=Filets soulev\u00E9s portatifs
+fr.ifremer.wao.entity.FishingGearDCF.LNS=Filets soulev\u00E9s fixes man\u0153uvr\u00E9es du rivage
+fr.ifremer.wao.entity.FishingGearDCF.LTL=lignes de tra\u00EEne
+fr.ifremer.wao.entity.FishingGearDCF.LX=Hame\u00E7ons et lignes (non sp\u00E9cifi\u00E9s)
fr.ifremer.wao.entity.FishingGearDCF.MIS=Divers
-fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00e9cifi\u00e9s
-fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00e0 panneaux (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00e0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00e9lagiques \u00e0 panneaux
-fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00e0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.NK=Engins inconnus ou non sp\u00E9cifi\u00E9s
+fr.ifremer.wao.entity.FishingGearDCF.OT=Chaluts \u00E0 panneaux (non sp\u00E9cifi\u00E9)
+fr.ifremer.wao.entity.FishingGearDCF.OTB=Chalut de fond \u00E0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTM=Chaluts p\u00E9lagiques \u00E0 panneaux
+fr.ifremer.wao.entity.FishingGearDCF.OTT=Chaluts jumeaux \u00E0 panneaux
fr.ifremer.wao.entity.FishingGearDCF.PS=Filets tournants avec coulisse (sennes coulissantes)
-fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par un bateau
-fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00e9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00e9cifi\u00e9)
+fr.ifremer.wao.entity.FishingGearDCF.PS1=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par un bateau
+fr.ifremer.wao.entity.FishingGearDCF.PS2=Filets tournants, sennes coulissantes man\u0153uvr\u00E9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.PT=Chalut-b\u0153ufs (non sp\u00E9cifi\u00E9)
fr.ifremer.wao.entity.FishingGearDCF.PTB=Chalut-b\u0153ufs de fond
-fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00e9lagiques
-fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00eache r\u00e9vr\u00e9ative
+fr.ifremer.wao.entity.FishingGearDCF.PTM=Chalut-b\u0153ufs p\u00E9lagiques
+fr.ifremer.wao.entity.FishingGearDCF.RG=Engins de p\u00EAche r\u00E9vr\u00E9ative
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\u0153uvr\u00e9es par deux bateaux
-fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00e9cossaises
-fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00e9es \u00e0 bord
-fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00e9cifi\u00e9es)
-fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00e0 perche
-fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00e0 langoustines
-fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00e0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00e9lagique (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00e0 crevettes
-fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00e9cifi\u00e9)
-fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00e9cifi\u00e9
+fr.ifremer.wao.entity.FishingGearDCF.SPR=Sennes man\u0153uvr\u00E9es par deux bateaux
+fr.ifremer.wao.entity.FishingGearDCF.SSC=Sennes \u00E9cossaises
+fr.ifremer.wao.entity.FishingGearDCF.SV=Sennes hal\u00E9es \u00E0 bord
+fr.ifremer.wao.entity.FishingGearDCF.SW=Sennes (non sp\u00E9cifi\u00E9es)
+fr.ifremer.wao.entity.FishingGearDCF.TB=Chalut de fond (non sp\u00E9cifi\u00E9)
+fr.ifremer.wao.entity.FishingGearDCF.TBB=Chaluts \u00E0 perche
+fr.ifremer.wao.entity.FishingGearDCF.TBN=Chalut \u00E0 langoustines
+fr.ifremer.wao.entity.FishingGearDCF.TBS=Chalut \u00E0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TM=Chalut p\u00E9lagique (non sp\u00E9cifi\u00E9)
+fr.ifremer.wao.entity.FishingGearDCF.TMS=Chalut \u00E0 crevettes
+fr.ifremer.wao.entity.FishingGearDCF.TX=Autre chalut (non sp\u00E9cifi\u00E9)
+fr.ifremer.wao.entity.TargetSpeciesDCF.=Non sp\u00E9cifi\u00E9
fr.ifremer.wao.entity.TargetSpeciesDCF.ALG=Algues
-fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00e8ces catadromes
-fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00e9s
+fr.ifremer.wao.entity.TargetSpeciesDCF.CAT=Esp\u00E8ces catadromes
+fr.ifremer.wao.entity.TargetSpeciesDCF.CRU=Crustac\u00E9s
fr.ifremer.wao.entity.TargetSpeciesDCF.CSJ=Coquilles Saint-Jacques
-fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00e8ces d\u00e9mersales
-fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00e8ces d'eaux profondes
+fr.ifremer.wao.entity.TargetSpeciesDCF.DEF=Esp\u00E8ces d\u00E9mersales
+fr.ifremer.wao.entity.TargetSpeciesDCF.DWS=Esp\u00E8ces d'eaux profondes
fr.ifremer.wao.entity.TargetSpeciesDCF.FIN=Poisson plats
-fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00e9lagiques
+fr.ifremer.wao.entity.TargetSpeciesDCF.LPF=Grands p\u00E9lagiques
fr.ifremer.wao.entity.TargetSpeciesDCF.MOL=Mollusques
-fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00e9lagiques
-wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00eatre form\u00e9e de 6 chiffres
-wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00e9ciser dans le commentaire administrateur pourquoi la donn\u00e9e est '%s'
-wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00e9ciser la qualit\u00e9 de la donn\u00e9e avant de valider
+fr.ifremer.wao.entity.TargetSpeciesDCF.SPF=Petits p\u00E9lagiques
+wao.business.boat.validation.immatriculation.wrongFormat=L'immatriculation du navire doit \u00EAtre form\u00E9e de 6 chiffres
+wao.business.contact.validation.commentAdminNecessaryForDataReliability=Il faut pr\u00E9ciser dans le commentaire administrateur pourquoi la donn\u00E9e est '%s'
+wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut pr\u00E9ciser la qualit\u00E9 de la donn\u00E9e 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\u00e9 dans WAO l'information suivante \:\n\nMar\u00e9e \: %s\nM\u00e9tier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao
+wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseign\u00E9 dans WAO l'information suivante \:\n\nMar\u00E9e \: %s\nM\u00E9tier \: %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\u00e9er un nouveau contact pour la soci\u00e9t\u00e9 %1$s et le navire %2$s (%3$d)
-wao.error.boat.getNbBoarding=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s
-wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00e9cup\u00e9rer le nombre d'embarquements r\u00e9els depuis le %1$s pour la soci\u00e9t\u00e9 %2$s
+wao.error.boat.canCreateContact=Impossible de cr\u00E9er un nouveau contact pour la soci\u00E9t\u00E9 %1$s et le navire %2$s (%3$d)
+wao.error.boat.getNbBoarding=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s
+wao.error.boatInfos.getNbBoardingForCompany=Impossible de r\u00E9cup\u00E9rer le nombre d'embarquements r\u00E9els depuis le %1$s pour la soci\u00E9t\u00E9 %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\u00e9cup\u00e9ration du contexte principale de ToPIA
+wao.error.context.getRootContext=Une erreur est survenue pour la r\u00E9cup\u00E9ration 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\u00e9marrage de l'application
+wao.error.context.start=Une erreur est survenue pendant le d\u00E9marrage 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\u00e9es r\u00e9els pour le mois de %1$s [ligne \: %2$s]
-wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00e9crit par %1$s
-wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00e9er ou modifier les informations li\u00e9s au navire %1$d pour la soci\u00e9t\u00e9 %2$s
-wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00e9lectionn\u00e9s
+wao.error.sampleMonth.addRealTideTime=Impossible d'enregistrer le nombre de mar\u00E9es r\u00E9els pour le mois de %1$s [ligne \: %2$s]
+wao.error.sampleRow.saveSampleRowLog=Impossible d'enregistrer le commentaire \u00E9crit par %1$s
+wao.error.serviceBoat.createUpdateCompanyBoatInfos=Impossible de cr\u00E9er ou modifier les informations li\u00E9s au navire %1$d pour la soci\u00E9t\u00E9 %2$s
+wao.error.serviceBoat.exportBoatCsv=Impossible d'exporter les navires s\u00E9lectionn\u00E9s
wao.error.serviceBoat.getActivityCalendarLogAccessFile=
wao.error.serviceBoat.getActivityCalendarLogFile=
wao.error.serviceBoat.getBoat=Impossible de charger le navire
-wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00e9cup\u00e9rer les navires avec un nom commencant par '%1$s'
+wao.error.serviceBoat.getBoatNamesStartWith=Impossible de r\u00E9cup\u00E9rer 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\u00eene d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00e9der 6 chiffres
-wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00e9cup\u00e9rer les informations du navire immatricul\u00e9 %1$d pour la soci\u00e9t\u00e9 %2$s
-wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00e9 du navire %1$s (%2$d)
+wao.error.serviceBoat.getBoatsByImmatriculations=La cha\u00EEne d'immatriculations est incorrect \! Chaque immatriculation doit poss\u00E9der 6 chiffres
+wao.error.serviceBoat.getCompanyBoatInfos=Impossible de r\u00E9cup\u00E9rer les informations du navire immatricul\u00E9 %1$d pour la soci\u00E9t\u00E9 %2$s
+wao.error.serviceBoat.getLastActivityCalendar=Impossible de charger le dernier calendrier d'activit\u00E9 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\u00e8me d'import du fichier CSV des calendriers d'activit\u00e9
-wao.error.serviceBoat.importBoatCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ NAVS_COD,CARN_NOM,CARN_LONGUEUR_HT,CARN_ANNEE,QUARTIER_IMMA,PER_COD,PER_NOM,PER_PRENOM,NAVS_ACTIVE ]. Voir documentation pour plus de d\u00e9tails.
+wao.error.serviceBoat.importActivityCalendarCsv=Probl\u00E8me d'import du fichier CSV des calendriers d'activit\u00E9
+wao.error.serviceBoat.importBoatCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier.
wao.error.serviceBoat.newBoatFilter=
wao.error.serviceCartography.exportContactMotifsStatisticsKml=
wao.error.serviceCartography.exportContactStatisticsKml=
-wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00e9es des quartiers des navires. V\u00e9rifiez la documentation pour le bon format du fichier Kml.
+wao.error.serviceCartography.importBoatDistrictKml=Impossible d'importer les coordonn\u00E9es des quartiers des navires. V\u00E9rifiez 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\u00e9s
+wao.error.serviceContact.getNbContacts=Impossible de compter le nombre de contacts filtr\u00E9s
wao.error.serviceContact.getNewContact=Impossible d'instancier un nouveau contact
wao.error.serviceContact.getPossibleValuesForFilter=
wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts
@@ -180,7 +180,7 @@
wao.error.serviceContact.updateSampleMonthTidesValue=
wao.error.serviceContact.validateContact=
wao.error.serviceNews.getNewNews=
-wao.error.serviceNews.getNews=Impossible de r\u00e9cup\u00e9rer l'ensemble des news
+wao.error.serviceNews.getNews=Impossible de r\u00E9cup\u00E9rer l'ensemble des news
wao.error.serviceNews.saveNews=Impossible d'enregistrer la news ayant pour titre '%1$s'
wao.error.serviceReferential.getAllContactStateMotifs=
wao.error.serviceReferential.getAllObservationUnits=
@@ -189,83 +189,83 @@
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\u00eache
-wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00e9tiers
-wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00eache
+wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\u00EAche
+wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00E9tiers
+wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00EAche
wao.error.serviceReferential.getTerrestrialDistrict=
wao.error.serviceReferential.importContactStateMotifs=
-wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00e9er le r\u00e9f\u00e9rentiel des codes DCF
-wao.error.serviceReferential.importFishingZoneCsv=Probl\u00e8me d'import du fichier CSV. V\u00e9rifiez l'en-t\u00eate du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00e9tails.
+wao.error.serviceReferential.importDCFcodes=Impossible de cr\u00E9er le r\u00E9f\u00E9rentiel des codes DCF
+wao.error.serviceReferential.importFishingZoneCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00E9tails.
wao.error.serviceReferential.importInitialContactStateMotifs=
wao.error.serviceReferential.importTerrestrialDivisions=
wao.error.serviceReferential.importTerrestrialLocations=
wao.error.serviceReferential.updateAllContactStatesMotifs=
wao.error.serviceSampling.countSampleRows=
wao.error.serviceSampling.createSampleRowLog=
-wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00e9chantillon
-wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00e9chantillon \: %1$s
-wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00e9chantillonnage sur la p\u00e9riode du %1$s au %2$s
+wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00E9chantillon
+wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00E9chantillon \: %1$s
+wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00E9chantillonnage sur la p\u00E9riode 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\u00e9cup\u00e9rer un nouveau code pour une ligne d'\u00e9chantillonnage
+wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00E9cup\u00E9rer un nouveau code pour une ligne d'\u00E9chantillonnage
wao.error.serviceSampling.getNewSampleRowLog=
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'\u00e9chantillon ayant pour identifiant \: %1$s
-wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00e9chantillon ayant pour code %1$s
-wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
+wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00E9chantillon ayant pour identifiant \: %1$s
+wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00E9chantillon ayant pour code %1$s
+wao.error.serviceSampling.getSampleRowsByFilter=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
wao.error.serviceSampling.getSampleRowsForEligibility=
-wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
+wao.error.serviceSampling.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
wao.error.serviceSampling.importSamplingPlanCsv=Erreur lors de l'import du plan
wao.error.serviceSampling.newSampleRow=
wao.error.serviceSampling.newSamplingFilter=
wao.error.serviceSampling.validateSampleRow=
wao.error.serviceSynthesis.getAllIndicatorLogs=
-wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es du graphique concernant les embarquements sur les navires
+wao.error.serviceSynthesis.getBoardingBoats=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es du graphique concernant les embarquements sur les navires
wao.error.serviceSynthesis.getBoatsCount=
wao.error.serviceSynthesis.getComplianceBoardingIndicator=
-wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00e9cup\u00e9rer l'indicateur de r\u00e9activit\u00e9 sur les dates de saisies dans Allegro
+wao.error.serviceSynthesis.getContactDataInputDateReactivity=Impossible de r\u00E9cup\u00E9rer l'indicateur de r\u00E9activit\u00E9 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\u00e9cup\u00e9rer les statistiques sur les \u00e9tats des contacts
+wao.error.serviceSynthesis.getContactStateStatistics=Impossible de r\u00E9cup\u00E9rer les statistiques sur les \u00E9tats des contacts
wao.error.serviceSynthesis.getDataReliability=
-wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es
+wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es pour le graphique dynamique des efforts de mar\u00E9es
wao.error.serviceSynthesis.getDistinctBoatsCounts=
-wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es concernant les indicateurs pour la synth\u00e8se globale
+wao.error.serviceSynthesis.getGlobalSynthesisParameters=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es concernant les indicateurs pour la synth\u00E8se globale
wao.error.serviceSynthesis.getGlobalSynthesisResult=
-wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00E9cup\u00E9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00E9s
wao.error.serviceSynthesis.getObservationHours=
-wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00E0 jour les param\u00E8tres de la synth\u00E8se globale
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\u00e9er l'administrateur par d\u00e9faut
-wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00e9er ou de mettre \u00e0 jour la soci\u00e9t\u00e9
-wao.error.serviceUser.createUpdateUser=Impossible de cr\u00e9er ou de mettre \u00e0 jour l'utilisateur
-wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00e9t\u00e9 ou de v\u00e9rifier les contraintes de suppression
+wao.error.serviceUser.createDefaultAdmin=Impossible de cr\u00E9er l'administrateur par d\u00E9faut
+wao.error.serviceUser.createUpdateCompany=Impossible de cr\u00E9er ou de mettre \u00E0 jour la soci\u00E9t\u00E9
+wao.error.serviceUser.createUpdateUser=Impossible de cr\u00E9er ou de mettre \u00E0 jour l'utilisateur
+wao.error.serviceUser.deleteCompany=Impossible de supprimer la soci\u00E9t\u00E9 ou de v\u00E9rifier 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\u00e9cup\u00e9rer la liste des soci\u00e9t\u00e9s
+wao.error.serviceUser.getCompanies=Impossible de r\u00E9cup\u00E9rer la liste des soci\u00E9t\u00E9s
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\u00e9cup\u00e9rer la liste des observateurs
+wao.error.serviceUser.getObservers=Impossible de r\u00E9cup\u00E9rer la liste des observateurs
wao.error.serviceUser.getUserByToken=
wao.error.serviceUser.getUserRolesByLogin=
-wao.error.serviceUser.getUsersByCompany=Impossible de r\u00e9cup\u00e9rer la liste des utilisateurs de la soci\u00e9t\u00e9 %1$s
+wao.error.serviceUser.getUsersByCompany=Impossible de r\u00E9cup\u00E9rer la liste des utilisateurs de la soci\u00E9t\u00E9 %1$s
wao.export.ical.desc=avec %s
wao.export.ical.title=Observation ObsDeb
-wao.import.contact.failure.boatMissing=Il faut pr\u00e9ciser l'immatriculation du navire associ\u00e9 au contact
-wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00eatre renseign\u00e9
-wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00e9e
+wao.import.contact.failure.boatMissing=Il faut pr\u00E9ciser l'immatriculation du navire associ\u00E9 au contact
+wao.import.contact.failure.locationTypeMissing=Le type du lieu doit \u00EAtre renseign\u00E9
+wao.import.contact.failure.sampleRowCodeMissing=Il manque le code de la ligne de plan associ\u00E9e
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.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.wrongUser=Il n'y a pas d'utilisateur ayant pour identifiant '%s'
-wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00eatre associ\u00e9 \u00e0 la ligne %s car il doit observer, le m\u00eame jour, pour la ligne %s
+wao.validation.sampleRow.conflictOnObserver=L'observateur %s ne peut \u00EAtre associ\u00E9 \u00E0 la ligne %s car il doit observer, le m\u00EAme jour, pour la ligne %s
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/resources/import/navires.csv
===================================================================
--- trunk/wao-business/src/test/resources/import/navires.csv 2011-05-09 12:08:47 UTC (rev 1265)
+++ trunk/wao-business/src/test/resources/import/navires.csv 2011-05-09 14:49:28 UTC (rev 1266)
@@ -1,7 +1,7 @@
-NAVIRE_IMMATRICULATION;NAVIRE_NOM;NAVIRE_LONGUEUR;NAVIRE_ANNEE;QUARTIER_CODE;ARMATEUR_CODE;ARMATEUR_NOM;ARMATEUR_PRENOM;NAVIRE_ACTIF
-273129;MOISE;7;1992;UX;19771564;BEURRE ;JEAN CLAUDE;Y
-174258;SAMOURAI KING;9;1982;UN;19744130;MARIE ;JEAN PHILIPPE;Y
-177474;MAYFLOWERS;10;1983;UN;19784252;MOSELLE ;ALAIN RENE;N
-174592;FIFITOU;8;1975;UN;18854131;POUTRE ;JEAN PIERRE;Y
-284595;A MA LOUTRE;8;1973;UN; SPR3965;BECANAUD; NA;Y
-978419;BISOUNOURS;11;2002;CI;18854131;POUTRE ;JEAN PIERRE;Y
+NAVIRE_IMMATRICULATION;NAVIRE_NOM;NAVIRE_LONGUEUR;NAVIRE_ANNEE;QUARTIER_CODE;ARMATEUR_CODE;ARMATEUR_NOM;ARMATEUR_PRENOM;NAVIRE_ACTIF;PORT_CODE
+273129;MOISE;7;1992;UX;19771564;BEURRE ;JEAN CLAUDE;Y;XSN
+174258;SAMOURAI KING;9;1982;UN;19744130;MARIE ;JEAN PHILIPPE;Y;XSN
+177474;MAYFLOWERS;10;1983;UN;19784252;MOSELLE ;ALAIN RENE;N;XSN
+174592;FIFITOU;8;1975;UN;18854131;POUTRE ;JEAN PIERRE;Y;XSN
+284595;A MA LOUTRE;8;1973;UN; SPR3965;BECANAUD; NA;Y;XSN
+978419;BISOUNOURS;11;2002;CI;18854131;POUTRE ;JEAN PIERRE;Y;XSN
1
0