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
March 2011
- 3 participants
- 73 discussions
02 Mar '11
Author: bleny
Date: 2011-03-02 13:11:44 +0000 (Wed, 02 Mar 2011)
New Revision: 1050
Log:
add import for obsdeb sampling plan
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/WaoUtils.java
trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.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/ImportableColumn.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumnImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ValueParser.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportModel.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.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/io/csv2/ImportTest.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/RequiresAuthentication.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.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-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -810,4 +810,36 @@
"CONSTRAINT port_fkey FOREIGN KEY (port) " +
"REFERENCES TerrestrialLocation (topiaid));");
}
+
+ @Override
+ protected void addObsDebToSampleRows_3_0(List<String> queries) {
+ queries.add("ALTER TABLE SampleRow ADD day TIMESTAMP WITHOUT TIME ZONE;");
+ queries.add("ALTER TABLE SampleRow ADD groupName CHARACTER VARYING(255);");
+ queries.add("ALTER TABLE SampleRow ADD observationUnit CHARACTER VARYING(255);");
+ queries.add("ALTER TABLE SampleRow ADD CONSTRAINT observationUnit_fkey FOREIGN KEY (observationUnit) REFERENCES TerrestrialDivision(topiaId);");
+
+ }
+
+ @Override
+ protected void addAdminRolesToAdmin_3_0(TopiaContextImplementor tx, List<String> queries) throws TopiaException {
+ SQLQuery query = tx.getHibernate().
+ createSQLQuery("SELECT topiaId FROM WaoUser WHERE login='admin';");
+
+ Object result = query.uniqueResult();
+ String adminTopiaId = (String) result;
+
+ String topiaCreateDateValue = "DATE '2011-03-03'";
+
+ String sql = String.format("INSERT INTO UserProfile (topiaId, topiaVersion, topiaCreateDate, waoUser, obsProgramOrdinal, userRoleOrdinal, canWrite) " +
+ "VALUES ('%s', %s, %s, '%s', %s, %s, %s);",
+ "fr.ifremer.wao.entities.UserProfile#1299060188000#73994323",
+ 0,
+ topiaCreateDateValue,
+ adminTopiaId,
+ ObsProgram.OBSDEB.ordinal(),
+ UserRole.ADMIN.ordinal(),
+ true);
+
+ queries.add(sql);
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -133,6 +133,10 @@
protected abstract void addTerrestrialDivisions_3_0(List<String> queries);
+ protected abstract void addObsDebToSampleRows_3_0(List<String> queries);
+
+ protected abstract void addAdminRolesToAdmin_3_0(TopiaContextImplementor tx, List<String> queries) throws TopiaException;
+
protected static final Version[] VERSIONS = new Version[] {
VersionUtil.valueOf("1.0"),
VersionUtil.valueOf("1.1"),
@@ -472,8 +476,12 @@
List<String> queries = new LinkedList<String>();
+ addAdminRolesToAdmin_3_0(tx, queries);
+
addTerrestrialDivisions_3_0(queries);
+ addObsDebToSampleRows_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/WaoUtils.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoUtils.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -24,16 +24,23 @@
package fr.ifremer.wao;
+import fr.ifremer.wao.entity.TerrestrialDivision;
+import org.apache.commons.beanutils.PropertyUtils;
import org.apache.commons.mail.EmailException;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.lang.reflect.InvocationTargetException;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
import java.util.Locale;
+import java.util.Map;
import static org.nuiton.i18n.I18n.l_;
@@ -161,4 +168,64 @@
public static boolean isEmail(String str) {
return str.matches("^[a-z0-9!#$%&'*+/=?^_`{|}~-]+((\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)?)+@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9\\-]*[a-z0-9])?$");
}
+
+ /** Cut a collection of beans by divide them depending of the value
+ * of a given property.
+ *
+ * @param clazz the class of the property
+ * @param elements all the elements to project
+ * @param propertyName the name of the property to get on each element
+ * to make the projection
+ * @param <T> the type of the
+ * @param <E> the type
+ * @return a map associate for each different values of the properties
+ * all the elements that has this value
+ */
+ public static <T,E> Map<T, List<E>> projectProperty(Class<T> clazz, List<E> elements, String propertyName) {
+ Map<T, List<E>> projection = new LinkedHashMap<T, List<E>>();
+ for (E element : elements) {
+ T key;
+ try {
+ key = (T) PropertyUtils.getProperty(element, propertyName);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException(e);
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+ List<E> value = projection.get(key);
+ if (value == null) {
+ value = new LinkedList<E>();
+ }
+ value.add(element);
+ projection.put(key, value);
+ }
+ return projection;
+ }
+
+ /**
+ * Produce a map of the same size of the list, values are the
+ * elements of the list and key is, for each element of the
+ * list, the value of a given property for this element.
+ *
+ * @see #projectProperty(Class, java.util.List, String)
+ */
+ public static <T,E> Map<T, E> projectPropertyUnique(List<E> elements, String propertyName) {
+ Map<T, E> projection = new LinkedHashMap<T, E>();
+ for (E element : elements) {
+ T key;
+ try {
+ key = (T) PropertyUtils.getProperty(element, propertyName);
+ } catch (IllegalAccessException e) {
+ throw new RuntimeException(e);
+ } catch (InvocationTargetException e) {
+ throw new RuntimeException(e);
+ } catch (NoSuchMethodException e) {
+ throw new RuntimeException(e);
+ }
+ projection.put(key, element);
+ }
+ return projection;
+ }
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ObsProgram.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -27,7 +27,8 @@
public enum ObsProgram {
OBSMER(n_("ObsProgram.OBSMER")),
- OBSVENTE(n_("ObsProgram.OBSVENTE"));
+ OBSVENTE(n_("ObsProgram.OBSVENTE")),
+ OBSDEB(n_("ObsProgram.OBSDEB"));
protected String i18nKey;
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/TerrestrialLocationImpl.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -22,6 +22,7 @@
import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.LocationType;
+import org.apache.commons.lang.ObjectUtils;
import static org.nuiton.i18n.I18n.n_;
@@ -74,7 +75,7 @@
} else {
description.append(getName()).append(" (")
.append(getLocationType()).append(", ");
- if ( ! getPortName().equals(getName())) {
+ if (getPortName() != null && ! getPortName().equals(getName())) {
description.append(getPortName()).append(", ");
}
}
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-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -2,6 +2,11 @@
import org.apache.commons.beanutils.BeanUtils;
+import java.text.DateFormat;
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+
public class Common {
public static class StringValueParser implements ValueParser<String> {
@@ -27,4 +32,20 @@
}
}
+ public static class DateValueParser implements ValueParser<Date> {
+
+ protected DateFormat dateFormat;
+
+ public DateValueParser(String dateFormatPattern) {
+ this.dateFormat = new SimpleDateFormat(dateFormatPattern);
+ }
+
+ @Override
+ public Date parse(String value) throws ParseException {
+ return dateFormat.parse(value);
+ }
+ }
+
+ public static final ValueParser<Date> DAY_PARSER = new DateValueParser("dd/MM/yyyy");
+
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumn.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumn.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumn.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -20,6 +20,8 @@
*/
package fr.ifremer.wao.io.csv2;
+import java.text.ParseException;
+
public interface ImportableColumn<E, T> {
String getHeaderName();
@@ -27,7 +29,7 @@
boolean isIgnored();
- T parseValue(String value);
+ T parseValue(String value) throws ParseException;
void setValue(E object, T value) throws Exception;
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumnImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumnImpl.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ImportableColumnImpl.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -22,6 +22,8 @@
import org.apache.commons.beanutils.BeanUtils;
+import java.text.ParseException;
+
public class ImportableColumnImpl<E, T> implements ImportableColumn<E, T> {
protected String headerName;
@@ -86,7 +88,7 @@
}
@Override
- public T parseValue(String value) {
+ public T parseValue(String value) throws ParseException {
if (valueParser == null) {
throw new UnsupportedOperationException("no parser provided for " + this);
} else {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ValueParser.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ValueParser.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/ValueParser.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -20,8 +20,10 @@
*/
package fr.ifremer.wao.io.csv2;
+import java.text.ParseException;
+
public interface ValueParser<T> {
- T parse(String value);
+ T parse(String value) throws ParseException;
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportModel.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportModel.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportModel.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -23,42 +23,135 @@
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.SampleRowImpl;
+import fr.ifremer.wao.entity.TerrestrialDivision;
+import fr.ifremer.wao.io.csv2.Common;
import fr.ifremer.wao.io.csv2.ImportModel;
import fr.ifremer.wao.io.csv2.ImportableColumn;
+import fr.ifremer.wao.io.csv2.ImportableColumnImpl;
+import fr.ifremer.wao.io.csv2.ValueParser;
+import fr.ifremer.wao.io.csv2.ValueSetter;
+import org.apache.commons.lang.StringUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+import java.text.ParseException;
import java.util.Collection;
+import java.util.HashMap;
+import java.util.LinkedList;
import java.util.List;
+import java.util.Map;
+/**
+ *
+ */
public class SamplingPlanImportModel implements ImportModel<SampleRow> {
- protected ObsProgram obsProgram;
- public SamplingPlanImportModel(ObsProgram obsProgram) {
- this.obsProgram = obsProgram;
+ private static final Logger log =
+ LoggerFactory.getLogger(SamplingPlanImportModel.class);
+
+ static class ObservationUnitParser implements ValueParser<TerrestrialDivision> {
+
+ protected Map<String, Map<String, TerrestrialDivision>> observationUnits;
+
+ protected String currentRegionCode;
+
+ ObservationUnitParser(Map<String, Map<String, TerrestrialDivision>> observationUnits) {
+ this.observationUnits = observationUnits;
+ }
+
+ @Override
+ public TerrestrialDivision parse(String observationUnitCode) throws ParseException {
+ Map<String, TerrestrialDivision> uos = observationUnits.get(currentRegionCode);
+ if (uos == null) {
+ throw new IllegalArgumentException("Le code de région '" + currentRegionCode + "' n'est pas un code valide");
+ }
+ TerrestrialDivision observationUnit = uos.get(observationUnitCode);
+ if (observationUnit == null) {
+ throw new IllegalArgumentException("Il n'y a pas d'unité '" + observationUnitCode + "' dans cette région");
+ }
+ return observationUnit;
+ }
+
+ public void setCurrentRegionCode(String regionCode) {
+ currentRegionCode = regionCode;
+ }
}
+ static class RegionCodeSetter implements ValueSetter<SampleRow, String> {
+
+ protected ObservationUnitParser observationUnitSetter;
+
+ RegionCodeSetter(ObservationUnitParser observationUnitSetter) {
+ this.observationUnitSetter = observationUnitSetter;
+ }
+
+ @Override
+ public void set(SampleRow sampleRow, String regionCode) throws Exception {
+ observationUnitSetter.setCurrentRegionCode(regionCode);
+ }
+ }
+
+ /** region ifremer code -> UO code -> TerrestrialDivision */
+ protected Map<String, Map<String, TerrestrialDivision>> observationUnits;
+
+ public SamplingPlanImportModel(List<TerrestrialDivision> terrestrialDivisions) {
+
+ observationUnits = new HashMap<String, Map<String, TerrestrialDivision>>();
+ for (TerrestrialDivision terrestrialDivision : terrestrialDivisions) {
+ String regionCode = terrestrialDivision.getRegionIfremerCode();
+ Map<String, TerrestrialDivision> unitCodesToDivision = observationUnits.get(regionCode);
+ if (unitCodesToDivision == null) {
+ unitCodesToDivision = new HashMap<String, TerrestrialDivision>();
+ }
+ unitCodesToDivision.put(terrestrialDivision.getObservationUnitCode(), terrestrialDivision);
+ observationUnits.put(regionCode, unitCodesToDivision);
+ }
+
+ if (log.isDebugEnabled()) {
+ for (Map.Entry<String, Map<String, TerrestrialDivision>> entry : observationUnits.entrySet()) {
+ log.debug(entry.getKey());
+ for (Map.Entry<String, TerrestrialDivision> unitCodesToDivision : entry.getValue().entrySet()) {
+ log.debug(" -> " + unitCodesToDivision.getKey() + " -> " + unitCodesToDivision.getValue());
+ }
+ }
+ }
+ }
+
@Override
public void pushCsvHeaderNames(List<String> headerNames) {
- // discover months
+ // nothing to do
}
@Override
public SampleRow newEmptyInstance() {
SampleRow newSampleRow = new SampleRowImpl();
- newSampleRow.setObsProgram(obsProgram);
+ newSampleRow.setObsProgram(ObsProgram.OBSDEB);
return newSampleRow;
}
@Override
public Collection<ImportableColumn> getAllColumns() {
-
- if (obsProgram == ObsProgram.OBSMER) {
- // add obsMer-only field
- }
- if (obsProgram == ObsProgram.OBSVENTE) {
- // add obsVente-only field
- }
-
- throw new UnsupportedOperationException("not yet implemented");
+ List<ImportableColumn> columns = new LinkedList<ImportableColumn>();
+ columns.add(ImportableColumnImpl.newMandatoryColumn(
+ "PLAN_CODE",
+ new ValueParser<String>() {
+ /** null if string is empty */
+ @Override
+ public String parse(String code) {
+ if (StringUtils.isEmpty(code)) {
+ code = null;
+ }
+ return code;
+ }
+ },
+ SampleRow.PROPERTY_CODE));
+ columns.add(ImportableColumnImpl.newMandatoryColumn("OBSERVATEUR_COD", SampleRow.PROPERTY_GROUP_NAME));
+ columns.add(ImportableColumnImpl.newMandatoryColumn("OBSERVATION_DATE", Common.DAY_PARSER, SampleRow.PROPERTY_DAY));
+ ObservationUnitParser observationUnitParser = new ObservationUnitParser(observationUnits);
+ ValueSetter<SampleRow, String> regionCodeSetter = new RegionCodeSetter(observationUnitParser);
+ columns.add(ImportableColumnImpl.<SampleRow> newMandatoryColumn("REGION_IFREMER_COD", regionCodeSetter));
+ columns.add(ImportableColumnImpl.newMandatoryColumn("UNITE_OBSERVATION_COD", observationUnitParser, SampleRow.PROPERTY_OBSERVATION_UNIT));
+ return columns;
}
}
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-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -31,6 +31,7 @@
import fr.ifremer.wao.WaoException;
import fr.ifremer.wao.WaoQueryBuilder;
import fr.ifremer.wao.WaoQueryHelper;
+import fr.ifremer.wao.WaoUtils;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactState;
import fr.ifremer.wao.bean.LocationType;
@@ -568,8 +569,8 @@
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 = projectPropertyUnique(ports, TerrestrialLocation.PROPERTY_CODE);
- Set<String> regionCodes = projectProperty(String.class, ports, TerrestrialLocation.PROPERTY_REGION_IFREMER_CODE).keySet();
+ 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");
@@ -623,29 +624,6 @@
}
- protected <T,E> Map<T, List<E>> projectProperty(Class<T> clazz, List<E> elements, String propertyName) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {
- Map<T, List<E>> projection = new LinkedHashMap<T, List<E>>();
- for (E element : elements) {
- T key = (T) PropertyUtils.getProperty(element, propertyName);
- List<E> value = projection.get(key);
- if (value == null) {
- value = new LinkedList<E>();
- }
- value.add(element);
- projection.put(key, value);
- }
- return projection;
- }
-
- protected <T,E> Map<T, E> projectPropertyUnique(List<E> elements, String propertyName) throws InvocationTargetException, NoSuchMethodException, IllegalAccessException {
- Map<T, E> projection = new LinkedHashMap<T, E>();
- for (E element : elements) {
- T key = (T) PropertyUtils.getProperty(element, propertyName);
- projection.put(key, element);
- }
- return projection;
- }
-
protected <E extends TopiaEntity> void createOrUpdate(Class<E> clazz, Iterator<E> entitiesIterator,
TopiaDAO<E> dao, String... idProperties)
throws InvocationTargetException, NoSuchMethodException, IllegalAccessException, TopiaException {
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-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-03-02 13:11:44 UTC (rev 1050)
@@ -20,6 +20,7 @@
GlobalIndicatorValue.VERY_GOOD=Level 2 bonus
LocationType.AUCTION=Auction
LocationType.PORT=Port
+ObsProgram.OBSDEB=ObsDeb
ObsProgram.OBSMER=ObsMer
ObsProgram.OBSVENTE=ObsVente
SamplingStrategy.SIMULTANEOUS_ALL_SPECIES=Simultaneous \: All commercial 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-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-03-02 13:11:44 UTC (rev 1050)
@@ -1,159 +1,160 @@
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
-DataReliability.CORRECTION_ASKED=Correction demand\u00E9e
+ContactState.OBSERVATION_CANCELLED=Annul\u00e9e
+ContactState.OBSERVATION_DONE=Observation r\u00e9alis\u00e9e
+ContactState.OBSERVATION_EXPECTED=Observation programm\u00e9e
+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
-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.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
+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.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
UserRole.ADMIN=Administrateur
UserRole.COORDINATOR=Coordinateur
-UserRole.GUEST=Invit\u00E9
+UserRole.GUEST=Invit\u00e9
UserRole.OBSERVER=Observateur
UserRole.PROFESSIONAL=Professionnel
-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.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.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.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 \: [ 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.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.importContactCsv=Impossible d'importer les contacts
wao.error.serviceContact.saveComment=
@@ -162,66 +163,66 @@
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.getAllTerrestrialDistricts=
wao.error.serviceReferential.getAllTerrestrialLocations=
wao.error.serviceReferential.getCodesDCF5Contains=
wao.error.serviceReferential.getFacades=Impossible de charger la liste des facades
-wao.error.serviceReferential.getFishingZones=Impossible de charger la liste des secteurs de p\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.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.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.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.getSampleRowsOrderedByFishingZone=Impossible de r\u00E9cup\u00E9rer la liste des lignes du plan d'\u00E9chantillonnage
-wao.error.serviceSampling.importSamplingPlanCsv=Erreur \u00E0 la ligne %1$d [CODE \= %2$s]
+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.getSampleRowsOrderedByFishingZone=Impossible de r\u00e9cup\u00e9rer la liste des lignes du plan d'\u00e9chantillonnage
+wao.error.serviceSampling.importSamplingPlanCsv=Erreur \u00e0 la ligne %1$d [CODE \= %2$s]
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.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.getGlobalSynthesisParameters=Impossible de r\u00E9cup\u00E9rer les donn\u00E9es concernant les indicateurs pour la synth\u00E8se globale
+wao.error.serviceSynthesis.getDataSampling=Impossible de r\u00e9cup\u00e9rer les donn\u00e9es pour le graphique dynamique des efforts de mar\u00e9es
+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.updateGlobalSynthesisParameters=Impossible de mettre \u00E0 jour les param\u00E8tres de la synth\u00E8se globale
+wao.error.serviceSynthesis.getNonComplianceBoardingIndicator=Impossible de r\u00e9cup\u00e9rer l'indicateur de non respect du nombre d'observateurs embarqu\u00e9s
+wao.error.serviceSynthesis.updateGlobalSynthesisParameters=Impossible de mettre \u00e0 jour les param\u00e8tres de la synth\u00e8se globale
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.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.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
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/io/csv2/ImportTest.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -23,6 +23,8 @@
import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.ValidationResult;
import fr.ifremer.wao.entity.SampleRow;
+import fr.ifremer.wao.entity.TerrestrialDivision;
+import fr.ifremer.wao.entity.TerrestrialDivisionImpl;
import fr.ifremer.wao.entity.TerrestrialLocation;
import fr.ifremer.wao.io.csv2.models.SamplingPlanImportModel;
import fr.ifremer.wao.io.csv2.models.TerrestrialLocationImportModel;
@@ -34,6 +36,7 @@
import org.slf4j.LoggerFactory;
import java.io.IOException;
+import java.io.InputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -80,29 +83,43 @@
}
@Test
- @Ignore("not yet implemented")
public void testImportSamplingPlan() throws IOException {
- String csv = "";
+ TerrestrialDivision uo07 = new TerrestrialDivisionImpl();
+ uo07.setRegionIfremerCode("GA");
+ uo07.setObservationUnitCode("UO007");
+ TerrestrialDivision uo87 = new TerrestrialDivisionImpl();
+ uo87.setRegionIfremerCode("MA");
+ uo87.setObservationUnitCode("UO087");
- ImportModel<SampleRow> model = new SamplingPlanImportModel(ObsProgram.OBSMER);
+ List<TerrestrialDivision> terrestrialDivisions = new ArrayList<TerrestrialDivision>();
+ terrestrialDivisions.add(uo07);
+ terrestrialDivisions.add(uo87);
- Import<SampleRow> samplingPlanImport =
- new Import<SampleRow>(model, IOUtils.toInputStream(csv));
+ ImportModel<SampleRow> model = new SamplingPlanImportModel(terrestrialDivisions);
+ InputStream input = null;
+ try {
+ input = getClass().getResourceAsStream("/import/samplingPlan-obsdeb.csv");
+ Import<SampleRow> samplingPlanImport = new Import<SampleRow>(model, input);
- ValidationResult validationResult = samplingPlanImport.validateCsv();
- if (log.isDebugEnabled()) {
- log.debug("validation result message : " + validationResult.getMessage());
- }
- Assert.assertTrue(validationResult.isSuccess());
+ ValidationResult validationResult = samplingPlanImport.validateCsv();
+ if (log.isDebugEnabled()) {
+ log.debug("validation result message : " + validationResult.getMessage());
+ }
+ Assert.assertTrue(validationResult.isSuccess());
- Iterator<SampleRow> it = samplingPlanImport.startImport();
+ Iterator<SampleRow> it = samplingPlanImport.startImport();
- List<SampleRow> sampleRows = new ArrayList<SampleRow>();
- while (it.hasNext()) {
- SampleRow sampleRow = it.next();
- sampleRows.add(sampleRow);
+ List<SampleRow> sampleRows = new ArrayList<SampleRow>();
+ while (it.hasNext()) {
+ SampleRow sampleRow = it.next();
+ sampleRows.add(sampleRow);
+ if (log.isDebugEnabled()) {
+ log.debug(sampleRow.getObservationUnit().getObservationUnitCode());
+ }
+ }
+ } finally {
+ IOUtils.closeQuietly(input);
}
-
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/RequiresAuthentication.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/RequiresAuthentication.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/data/RequiresAuthentication.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -48,7 +48,7 @@
UserRole[] allowedRoles() default
{UserRole.OBSERVER, UserRole.ADMIN, UserRole.COORDINATOR, UserRole.GUEST, UserRole.PROFESSIONAL};
- ObsProgram[] allowedPrograms() default {ObsProgram.OBSMER, ObsProgram.OBSVENTE};
+ ObsProgram[] allowedPrograms() default {ObsProgram.OBSMER, ObsProgram.OBSVENTE, ObsProgram.OBSDEB};
boolean readOnlyAllowed() default true;
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2011-03-02 12:15:11 UTC (rev 1049)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Cartography.java 2011-03-02 13:11:44 UTC (rev 1050)
@@ -23,6 +23,7 @@
import fr.ifremer.wao.bean.ConnectedUser;
import fr.ifremer.wao.bean.ContactFilter;
import fr.ifremer.wao.bean.ContactFilterImpl;
+import fr.ifremer.wao.bean.ObsProgram;
import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.bean.WaoFilter;
import fr.ifremer.wao.entity.Company;
@@ -51,7 +52,7 @@
* @author fdesbois <fdesbois at codelutin.com>
* @version $Id$
*/
- at RequiresAuthentication(allowedRoles = {UserRole.ADMIN, UserRole.COORDINATOR, UserRole.OBSERVER, UserRole.PROFESSIONAL})
+ at RequiresAuthentication(allowedPrograms = {ObsProgram.OBSMER, ObsProgram.OBSVENTE}, allowedRoles = {UserRole.ADMIN, UserRole.COORDINATOR, UserRole.OBSERVER, UserRole.PROFESSIONAL})
public class Cartography {
@SessionState
1
0
Author: bleny
Date: 2011-03-02 12:15:11 +0000 (Wed, 02 Mar 2011)
New Revision: 1049
Log:
add wao version in war display-name
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-03-02 12:14:51 UTC (rev 1048)
+++ trunk/pom.xml 2011-03-02 12:15:11 UTC (rev 1049)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4labs</artifactId>
- <version>2.5.1</version>
+ <version>2.5.2-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
[Suiviobsmer-commits] r1048 - trunk/wao-ui/src/main/webapp/WEB-INF
by bleny@users.labs.libre-entreprise.org 02 Mar '11
by bleny@users.labs.libre-entreprise.org 02 Mar '11
02 Mar '11
Author: bleny
Date: 2011-03-02 12:14:51 +0000 (Wed, 02 Mar 2011)
New Revision: 1048
Log:
add wao version in war display-name
Modified:
trunk/wao-ui/src/main/webapp/WEB-INF/web.xml
Modified: trunk/wao-ui/src/main/webapp/WEB-INF/web.xml
===================================================================
--- trunk/wao-ui/src/main/webapp/WEB-INF/web.xml 2011-02-28 17:32:58 UTC (rev 1047)
+++ trunk/wao-ui/src/main/webapp/WEB-INF/web.xml 2011-03-02 12:14:51 UTC (rev 1048)
@@ -27,7 +27,7 @@
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
"http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>
- <display-name>Wao</display-name>
+ <display-name>Wao ${project.version}</display-name>
<context-param>
<!-- The only significant configuration for Tapestry 5, this informs Tapestry
of where to look for pages, components and mixins. -->
1
0