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 2010
- 2 participants
- 35 discussions
[Suiviobsmer-commits] r400 - in trunk: . wao-business wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity wao-business/src/main/xmi wao-business/src/test/java/fr/ifremer/wao wao-business/src/test/java/fr/ifremer/wao/entity wao-business/src/test/java/fr/ifremer/wao/service wao-ui wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by fdesbois@users.labs.libre-entreprise.org 31 Mar '10
by fdesbois@users.labs.libre-entreprise.org 31 Mar '10
31 Mar '10
Author: fdesbois
Date: 2010-03-31 19:25:21 +0000 (Wed, 31 Mar 2010)
New Revision: 400
Modified:
trunk/pom.xml
trunk/wao-business/pom.xml
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceNewsImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml
trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml
trunk/wao-business/src/main/xmi/wao.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-business/src/test/java/fr/ifremer/wao/WaoGlobalTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java
trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java
trunk/wao-ui/pom.xml
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
Log:
- Add debug time (temp)
- Remove lazy=false on unecessary relations (optimize page loading on sampleRows)
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/pom.xml 2010-03-31 19:25:21 UTC (rev 400)
@@ -15,7 +15,7 @@
<groupId>fr.ifremer</groupId>
<artifactId>wao</artifactId>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.1-SNAPSHOT</version>
<modules>
<module>wao-ui</module>
Modified: trunk/wao-business/pom.xml
===================================================================
--- trunk/wao-business/pom.xml 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/pom.xml 2010-03-31 19:25:21 UTC (rev 400)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>wao</artifactId>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.wao</groupId>
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoGlobal.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -82,7 +82,6 @@
WaoUser.PASSWORD, password,
WaoUser.FIRST_NAME, "Super",
WaoUser.LAST_NAME, "Admin");
- company.addWaoUser(user);
user.setCompany(company);
transaction.commitTransaction();
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -47,10 +47,10 @@
List<String> queries = new ArrayList<String>();
-// createUserRoleColumn_1_1(queries);
-//
-// changeContactStateColumn_1_1(queries);
+ createUserRoleColumn_1_1(queries);
+ changeContactStateColumn_1_1(queries);
+
changeSampleRowLogAdminColumn_1_1(queries);
String[] strings = queries.toArray(new String[queries.size()]);
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoRunnerImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -56,6 +56,7 @@
public void start() throws WaoException {
try {
configuration = new ApplicationConfig();
+ configuration.setAppName("wao");
configuration.setConfigFileName("Wao.properties");
configuration.parse(new String[]{});
configuration.setOption("topia.persistence.classes",
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 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -84,6 +84,11 @@
TopiaContext transaction = null;
Map<Integer, Boat> results = new HashMap<Integer, Boat>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
+
transaction = rootContext.beginTransaction();
BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction);
@@ -102,6 +107,13 @@
}
results = dao.findAllMappedByQuery(query, Boat.IMMATRICULATION, Integer.class);
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getBoatsByFilter ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de filtrer la liste des navires", eee);
@@ -116,6 +128,11 @@
TopiaContext transaction = null;
int result = 0;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
+
transaction = rootContext.beginTransaction();
BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction);
@@ -124,6 +141,13 @@
query = createQueryForBoatFilter(query, filter);
result = query.executeCount();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getNbBoatsByFilter ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de filtrer la liste des navires", eee);
@@ -186,6 +210,11 @@
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
+
transaction = rootContext.beginTransaction();
BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction);
@@ -233,6 +262,13 @@
if (contact != null) {
result.setLastContact(contact);
}
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getCompanyBoatInfos ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
// transaction.closeContext();
} catch (Exception eee) {
@@ -251,6 +287,10 @@
throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
BoatInfosDAO dao = WaoModelDAOHelper.getBoatInfosDAO(transaction);
@@ -272,6 +312,13 @@
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ createUpdateCompanyBoatInfos ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
Boat boat = companyBoatInfos.getBoatInfos().getBoat();
@@ -292,6 +339,10 @@
return boats;
}
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction);
@@ -308,6 +359,13 @@
}
boats.add(boat);
}
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getBoatsByImmatriculations ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
@@ -324,12 +382,23 @@
TopiaContext transaction = null;
Boat result = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
BoatDAO dao = WaoModelDAOHelper.getBoatDAO(transaction);
result = dao.findByTopiaId(boatId);
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getBoat ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de charger le navire", eee);
@@ -344,6 +413,10 @@
TopiaContext transaction = null;
List<String> results = new ArrayList<String>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
input = StringUtils.upperCase(input);
@@ -353,6 +426,13 @@
results = dao.createQuery().addDistinct().setSelect(Boat.NAME).
add(Boat.NAME, Op.LIKE, input + "%").execute();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getBoatNamesStartWith ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -591,6 +671,10 @@
TopiaContext transaction = null;
ActivityCalendar result = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ActivityCalendarDAO dao = WaoModelDAOHelper.getActivityCalendarDAO(transaction);
@@ -628,6 +712,13 @@
company.getName());
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getLastActivityCalendar ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
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 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -62,7 +62,6 @@
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
@@ -73,6 +72,7 @@
import java.util.Map;
import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.persistence.TopiaEntity;
import org.slf4j.Logger;
@@ -104,6 +104,10 @@
Map<String, Contact> results = new HashMap<String, Contact>();
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -118,8 +122,16 @@
log.debug("Query : " + query);
}
+ query.addLoad(Contact.SAMPLE_ROW + "." + SampleRow.SAMPLE_MONTH);
results = dao.findAllMappedByQuery(query);
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getContacts ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -135,6 +147,10 @@
TopiaContext transaction = null;
int result = 0;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -143,6 +159,13 @@
result = query.executeCount();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getNbContacts ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -167,6 +190,10 @@
public void saveContact(Contact contact, boolean delete) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -183,6 +210,13 @@
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ saveContact ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -369,7 +403,8 @@
// For an admin, get the company from database
if (user.isAdmin()) {
// FIXME-FD20100104 findContains not optimized in TopiaDAOImpl
- company = companyDAO.findContainsWaoUser(observer);
+ //company = companyDAO.findContainsWaoUser(observer);
+ company = observer.getCompany();
// For a user, check if the observer as the same company as the current user
} else if (!observer.getCompany().equals(company)) {
throw new WaoBusinessException(Type.IMPORT_ERROR, this.getClass(),
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceNewsImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceNewsImpl.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceNewsImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -26,9 +26,9 @@
import fr.ifremer.wao.WaoModelDAOHelper;
import fr.ifremer.wao.entity.News;
import fr.ifremer.wao.entity.NewsDAO;
-import fr.ifremer.wao.service.ServiceNews;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.persistence.TopiaEntity;
import org.slf4j.Logger;
@@ -60,12 +60,23 @@
TopiaContext transaction = null;
List<News> results = new ArrayList<News>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
NewsDAO dao = WaoModelDAOHelper.getNewsDAO(transaction);
results = dao.findAllWithOrder(TopiaEntity.TOPIA_CREATE_DATE + " DESC");
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getNews ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -80,6 +91,10 @@
public void saveNews(News news, boolean delete) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
NewsDAO dao = WaoModelDAOHelper.getNewsDAO(transaction);
@@ -92,6 +107,13 @@
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ saveNews ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
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 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -34,11 +34,11 @@
import fr.ifremer.wao.io.ImportHelper;
import fr.ifremer.wao.io.WaoCsvHeader.FISHING_ZONE;
import java.io.InputStream;
-import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
@@ -71,6 +71,10 @@
TopiaContext transaction = null;
List<String> results = new ArrayList<String>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
FishingZoneDAO dao = WaoModelDAOHelper.getFishingZoneDAO(transaction);
@@ -80,6 +84,13 @@
results = (List<String>)query.setSelect("DISTINCT F." + FishingZone.FACADE_NAME).execute();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getFacades ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de charger la liste des facades", eee);
@@ -94,6 +105,10 @@
TopiaContext transaction = null;
List<String> results = new ArrayList<String>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
FishingZoneDAO dao = WaoModelDAOHelper.getFishingZoneDAO(transaction);
@@ -107,6 +122,13 @@
results = (List<String>)query.setSelect("DISTINCT F." + FishingZone.SECTOR_NAME).execute();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getSectors ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de charger la liste des secteurs de pêche", eee);
@@ -138,12 +160,23 @@
TopiaContext transaction = null;
List<Profession> results = new ArrayList<Profession>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ProfessionDAO dao = WaoModelDAOHelper.getProfessionDAO(transaction);
results = dao.findAll();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getProfessions ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -159,12 +192,23 @@
TopiaContext transaction = null;
List<FishingZone> results = new ArrayList<FishingZone>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
FishingZoneDAO dao = WaoModelDAOHelper.getFishingZoneDAO(transaction);
results = dao.findAll();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getFishingZones ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
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 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -43,7 +43,6 @@
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
-import java.nio.charset.Charset;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.text.ParseException;
@@ -56,7 +55,9 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.logging.Level;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.TopiaException;
import org.nuiton.topia.framework.TopiaQuery;
@@ -93,7 +94,12 @@
@Override
public void createUpdateSampleRow(SampleRow row, List<Boat> boats, SampleRowLog rowLog) throws WaoException {
TopiaContext transaction = null;
+ TopiaContext transaction2 = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
SampleRowLogDAO logDAO = WaoModelDAOHelper.getSampleRowLogDAO(transaction);
@@ -115,10 +121,10 @@
Company oldCompany = null;
Map<String, SampleMonth> oldMonths = new HashMap<String, SampleMonth>();
List<FishingZone> oldZones = new ArrayList<FishingZone>();
+ transaction2 = rootContext.beginTransaction();
// UPDATE
if (!newRow) {
// Prepare data for logging or deleting oldMonths
- TopiaContext transaction2 = rootContext.beginTransaction();
SampleRowDAO oldDAO = WaoModelDAOHelper.getSampleRowDAO(transaction2);
oldRow = oldDAO.findByTopiaId(row.getTopiaId());
oldCompany = oldRow.getCompany();
@@ -127,7 +133,6 @@
oldMonths.put(month.getTopiaId(), month);
}
oldZones = oldRow.getFishingZone();
- transaction2.closeContext();
// NbObservants
if (oldRow.getNbObservants() != row.getNbObservants()) {
@@ -233,7 +238,7 @@
if (log.isDebugEnabled()) {
log.debug("update row : " + row);
}
- row.addSampleRowLog(rowLog);
+ rowLog.setSampleRow(row);
rowDAO.update(row);
if (log.isDebugEnabled()) {
@@ -241,11 +246,23 @@
log.debug("commit transaction !");
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ createUpdateSampleRow ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
"Impossible de sauvegarder la ligne d'échantillon", eee);
} finally {
+ try {
+ transaction2.closeContext();
+ } catch (TopiaException eee) {
+ log.error("Error closing transaction", eee);
+ }
WaoContext.closeTransaction(transaction);
}
}
@@ -286,6 +303,10 @@
TopiaContext transaction = null;
FacadeRow result = new FacadeRowImpl();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
if (period.getFromDate() == null || period.getThruDate() == null) {
throw new IllegalArgumentException("PeriodBegin date and/or PeriodEnd date can't be null !");
}
@@ -311,11 +332,20 @@
query.addOrder(zoneOrder).addOrder("S." + SampleRow.CODE).addSelect(zoneOrder);
// Load data
//query.addLoad(SampleRow.PROFESSION, SampleRow.COMPANY);
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ before query getSampleRowsOrderedByFishingZone ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ startTime = System.currentTimeMillis();
+ }
if (log.isDebugEnabled()) {
log.debug("Query : " + query);
}
+ query.addLoad(SampleRow.SAMPLE_MONTH);
List<SampleRow> results = dao.findAllByQuery(query);
for (SampleRow row : results) {
@@ -323,6 +353,13 @@
result.addRow(row);
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getSampleRowsOrderedByFishingZone exec query ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -338,6 +375,10 @@
TopiaContext transaction = null;
List<String> results = new ArrayList<String>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
@@ -349,6 +390,13 @@
results = (List<String>)query.setSelect("DISTINCT " + SampleRow.PROGRAM_NAME).execute();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getPrograms ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -364,6 +412,10 @@
TopiaContext transaction = null;
List<SampleRow> results = new ArrayList<SampleRow>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
@@ -373,21 +425,27 @@
query = filter.prepareQueryForSampling(query, "S");
if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ after prepareQueryForSampling ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ startTime = System.currentTimeMillis();
+ }
+
+ if (log.isDebugEnabled()) {
log.debug("Query : " + query);
}
-// if (finished) {
-// // Only rows which are not finished will be kept
-// Date current = WaoContext.getCurrentDate();
-// query.add(SampleRow.PERIOD_END, Op.GE, current);
-// }
+ results = dao.findAllByQuery(query);
-// if (filter.getCompany() != null) {
-// query.add("S." + SampleRow.COMPANY, filter.getCompany());
-// }
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getSampleRowsByFilter exec query ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ startTime = System.currentTimeMillis();
+ }
- results = dao.findAllByQuery(query);
-
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -403,12 +461,26 @@
TopiaContext transaction = null;
SampleRow result = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
result = dao.findByTopiaId(sampleRowId);
+ result.sizeSampleMonth();
+ result.sizeElligibleBoat();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getSampleRow ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -427,6 +499,10 @@
TopiaContext transaction = null;
SampleRow result = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
if (log.isInfoEnabled()) {
log.info("W:[ getSampleRowByCode ] : " +
"sampleRowCode = " + sampleRowCode);
@@ -442,6 +518,7 @@
query.add(SampleRow.COMPANY, user.getCompany());
}
+ query.addLoad(SampleRow.SAMPLE_ROW_LOG);
result = dao.findByQuery(query);
if (result == null) {
@@ -449,6 +526,13 @@
ServiceSampling.class, "La ligne du plan avec " +
"pour code " + sampleRowCode + " est introuvable !");
}
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getSampleRowByCode ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -465,6 +549,10 @@
public void deleteSampleRow(SampleRow sampleRow) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
@@ -474,6 +562,13 @@
dao.delete(row);
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ deleteSampleRow ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -492,6 +587,10 @@
return result;
}
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
Calendar begin = new GregorianCalendar();
@@ -515,6 +614,13 @@
String str = StringUtils.leftPad("" + num, 4, "0");
result = year + "_" + str;
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getNewSampleRowCode ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSynthesisImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -51,6 +51,7 @@
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.framework.TopiaQuery;
import org.nuiton.topia.framework.TopiaQuery.Op;
@@ -86,6 +87,10 @@
TopiaContext transaction = null;
List<SortedMap<Date, Integer>> results = new ArrayList<SortedMap<Date, Integer>>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
PeriodDates period = filter.getPeriod();
@@ -137,6 +142,13 @@
}
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getDataSampling ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -169,6 +181,10 @@
BoardingResult result = new BoardingResultImpl();
result.setData(map);
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
// Initialiaze max boardings and its max key value
@@ -239,6 +255,13 @@
result.setMaxBoardingValue(maxValue.intValue());
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getBoardingBoats ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
@@ -257,6 +280,10 @@
// only if there is no unfinished sampleRow or no contact done
Map<String, Double> results = new HashMap<String, Double>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -325,6 +352,13 @@
}
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getNonComplianceBoardingIndicator ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
String msgEnd = "";
@@ -345,6 +379,10 @@
TopiaContext transaction = null;
Map<String, ContactStateStatistics> results = new HashMap<String, ContactStateStatistics>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -406,7 +444,13 @@
stats.addResult(state, rowCount.intValue());
}
- //transaction.closeContext();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getContactStateStatistics ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
} catch (Exception eee) {
String msgEnd = "";
if (company != null) {
@@ -429,6 +473,10 @@
Map<String, ContactAverageReactivity> results = new HashMap<String, ContactAverageReactivity>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
@@ -454,18 +502,6 @@
}
String dataInput = contact + "." + Contact.DATA_INPUT_DATE;
- //query.addNotNull(dataInput);
-
- // FIXME-FD20100212 Hack for H2 which not managed day for date diff
-// TopiaContextImplementor context = (TopiaContextImplementor)transaction;
-// String dialect = context.getHibernateConfiguration().getProperty("hibernate.dialect");
-
-// String avg = "AVG(day(" + dataInput + " - " + tideBegin + "))";
-// if (dialect.contains("H2Dialect")) {
-// avg = "AVG(" + dataInput + " - " + tideBegin + ")";
-// }
-
- //query.setSelect(companyName, avg).addGroup(companyName);
query.setSelect(companyName, dataInput, tideBegin);
if (log.isDebugEnabled()) {
@@ -496,28 +532,15 @@
}
avg.addValue(nbDays);
+ }
-
-
-// String rowCompanyName = (String)row[0];
-// Object rowAverage = row[1];
-// if (log.isDebugEnabled()) {
-// log.debug("Company : " + rowCompanyName);
-// log.debug("Res : " + rowAverage.getClass().getName());
-// log.debug("Res : " + rowAverage);
-// log.debug("tideBegin : " + (Date)row[3]);
-// log.debug("dataInput : " + (Date)row[2]);
-// }
-//// Double d = new Double((double)rowAverage.intValue());
-//// if (rowAverage < 0) {
-//// rowAverage = 0.;
-//// }
-// results.put(rowCompanyName, 0.);
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getContactDataInputDateReactivity ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
}
-
-
-
} catch (Exception eee) {
String msgEnd = "";
if (company != null) {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -38,6 +38,7 @@
import java.util.ArrayList;
import java.util.List;
import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.framework.TopiaQuery;
import org.slf4j.Logger;
@@ -69,6 +70,10 @@
TopiaContext transaction = null;
WaoUser user = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
WaoUserDAO dao = WaoModelDAOHelper.getWaoUserDAO(transaction);
@@ -87,6 +92,13 @@
"Identifiant ou mot de passe incorrects, veuillez réessayer.");
}
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ connect ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Une erreur est survenue lors de la demande de connexion", eee);
@@ -100,6 +112,10 @@
public void forgetPassword(String login) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
if (!login.contains("@")) {
throw new WaoBusinessException(Type.SYNTAX, this.getClass(), "Votre identifiant n'est pas un email valide, " +
"veuillez contacter un administrateur pour qu'il puisse changer votre mot de passe.");
@@ -134,6 +150,13 @@
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ forgetPassword ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de créer ou de mettre à jour l'utilisateur", eee);
@@ -146,6 +169,10 @@
public void createUpdateUser(WaoUser user, boolean generatePassword) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
if (user == null) {
throw new IllegalArgumentException("user parameter can't be null");
}
@@ -215,6 +242,13 @@
}
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ createUpdateUser ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de créer ou de mettre à jour l'utilisateur", eee);
@@ -227,6 +261,10 @@
public void deleteUser(WaoUser user) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
String userType = StringUtils.lowerCase(
@@ -276,6 +314,13 @@
dao.delete(user);
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ deleteUser ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de créer ou" +
@@ -289,6 +334,10 @@
public void createUpdateCompany(Company company) throws WaoException {
TopiaContext transaction = null;
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
if (company == null) {
throw new IllegalArgumentException("company parameter can't be null");
}
@@ -301,6 +350,13 @@
dao.update(company);
transaction.commitTransaction();
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ createUpdateCompany ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de créer ou de mettre à jour la société", eee);
@@ -314,6 +370,10 @@
TopiaContext transaction = null;
List<Company> results = new ArrayList<Company>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
CompanyDAO dao = WaoModelDAOHelper.getCompanyDAO(transaction);
@@ -324,7 +384,12 @@
results = dao.findAll();
}
- //transaction.closeContext();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getCompanies ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de récupérer la liste des sociétés", eee);
} finally {
@@ -334,10 +399,50 @@
}
@Override
+ public List<WaoUser> getUsersByCompany(Company company) throws WaoException {
+ TopiaContext transaction = null;
+ List<WaoUser> results = new ArrayList<WaoUser>();
+ try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
+ transaction = rootContext.beginTransaction();
+
+ WaoUserDAO dao = WaoModelDAOHelper.getWaoUserDAO(transaction);
+
+
+ TopiaQuery query = dao.createQuery().
+ add(WaoUser.COMPANY, company).
+ addOrder(WaoUser.FIRST_NAME, WaoUser.LAST_NAME);
+
+ results = dao.findAllByQuery(query);
+
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getUsersByCompany ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
+ } catch (Exception eee) {
+ WaoContext.serviceException(transaction, "Impossible de récupérer " +
+ "la liste des utilisateurs de la société " +
+ company.getName(), eee);
+ } finally {
+ WaoContext.closeTransaction(transaction);
+ }
+ return results;
+ }
+
+ @Override
public List<WaoUser> getObservers(boolean activeOnly) throws WaoException {
TopiaContext transaction = null;
List<WaoUser> results = new ArrayList<WaoUser>();
try {
+ long startTime = 0;
+ if (log.isDebugEnabled()) {
+ startTime = System.currentTimeMillis();
+ }
transaction = rootContext.beginTransaction();
WaoUserDAO dao = WaoModelDAOHelper.getWaoUserDAO(transaction);
@@ -351,7 +456,12 @@
results = dao.findAllByQuery(query);
- //transaction.closeContext();
+ if (log.isDebugEnabled()) {
+ long stopTime = System.currentTimeMillis();
+ log.debug("W:[ getObservers ] Time = " +
+ DurationFormatUtils.formatDurationHMS(
+ stopTime - startTime));
+ }
} catch (Exception eee) {
WaoContext.serviceException(transaction, "Impossible de récupérer la liste des observateurs", eee);
} finally {
Modified: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml
===================================================================
--- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/CompanyImpl.hbm.xml 2010-03-31 19:25:21 UTC (rev 400)
@@ -13,7 +13,7 @@
<property name="email" type="text" access="field" column="email" node="email"/>
<property name="city" type="text" access="field" column="city" node="city"/>
<property name="postalCode" type="int" access="field" column="postalCode" node="postalCode"/>
- <bag name="waoUser" inverse="true" order-by="firstName,lastName" lazy="false" cascade="all,delete-orphan" node="waoUser" embed-xml="false">
+ <bag name="waoUser" inverse="true" lazy="true" cascade="all,delete-orphan" node="waoUser" embed-xml="false">
<key column="company"/>
<one-to-many class="fr.ifremer.wao.entity.WaoUserImpl" node="topiaId" embed-xml="false"/>
</bag>
Modified: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml
===================================================================
--- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowImpl.hbm.xml 2010-03-31 19:25:21 UTC (rev 400)
@@ -14,16 +14,16 @@
<property name="periodBegin" type="java.util.Date" access="field" column="periodBegin" node="periodBegin"/>
<property name="periodEnd" type="java.util.Date" access="field" column="periodEnd" node="periodEnd"/>
<many-to-one name="profession" class="fr.ifremer.wao.entity.ProfessionImpl" column="profession" lazy="false" node="profession/@topiaId" embed-xml="false"/>
- <bag name="sampleMonth" inverse="true" order-by="periodDate" lazy="false" cascade="all,delete-orphan" node="sampleMonth" embed-xml="false">
+ <bag name="sampleMonth" inverse="true" order-by="periodDate" lazy="true" cascade="all,delete-orphan" node="sampleMonth" embed-xml="false">
<key column="sampleRow"/>
<one-to-many class="fr.ifremer.wao.entity.SampleMonthImpl" node="topiaId" embed-xml="false"/>
</bag>
<many-to-one name="company" class="fr.ifremer.wao.entity.CompanyImpl" column="company" lazy="false" node="company/@topiaId" embed-xml="false"/>
- <bag name="sampleRowLog" inverse="true" order-by="topiaCreateDate desc" lazy="false" cascade="all,delete-orphan" node="sampleRowLog" embed-xml="false">
+ <bag name="sampleRowLog" inverse="true" order-by="topiaCreateDate desc" lazy="true" cascade="all,delete-orphan" node="sampleRowLog" embed-xml="false">
<key column="sampleRow"/>
<one-to-many class="fr.ifremer.wao.entity.SampleRowLogImpl" node="topiaId" embed-xml="false"/>
</bag>
- <bag name="elligibleBoat" inverse="true" order-by="companyActive" lazy="false" cascade="all,delete-orphan" node="elligibleBoat" embed-xml="false">
+ <bag name="elligibleBoat" inverse="true" order-by="companyActive" lazy="true" cascade="all,delete-orphan" node="elligibleBoat" embed-xml="false">
<key column="sampleRow"/>
<one-to-many class="fr.ifremer.wao.entity.ElligibleBoatImpl" node="topiaId" embed-xml="false"/>
</bag>
Modified: trunk/wao-business/src/main/xmi/wao.properties
===================================================================
--- trunk/wao-business/src/main/xmi/wao.properties 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/main/xmi/wao.properties 2010-03-31 19:25:21 UTC (rev 400)
@@ -1,19 +1,19 @@
model.tagvalue.copyright=/* *##%\n Copyright (C) 2009 Wao\n *##%*/
model.tagvalue.java.lang.String=text
-fr.ifremer.wao.entity.Company.attribute.waoUser.tagvalue.lazy=false
-fr.ifremer.wao.entity.Company.attribute.waoUser.tagvalue.orderBy=firstName,lastName
+#fr.ifremer.wao.entity.Company.attribute.waoUser.tagvalue.lazy=false
+#fr.ifremer.wao.entity.Company.attribute.waoUser.tagvalue.orderBy=firstName,lastName
-fr.ifremer.wao.entity.SampleRow.attribute.sampleMonth.tagvalue.lazy=false
+#fr.ifremer.wao.entity.SampleRow.attribute.sampleMonth.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.sampleMonth.tagvalue.orderBy=periodDate
fr.ifremer.wao.entity.SampleRow.attribute.fishingZone.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.fishingZone.tagvalue.orderBy=facadeName,sectorName,districtCode
fr.ifremer.wao.entity.SampleRow.attribute.profession.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.company.tagvalue.lazy=false
-#fr.ifremer.wao.entity.SampleRow.attribute.pogram.tagvalue.lazy=false
-fr.ifremer.wao.entity.SampleRow.attribute.elligibleBoat.tagvalue.lazy=false
+#fr.ifremer.wao.entity.SampleRow.attribute.elligibleBoat.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.elligibleBoat.tagvalue.orderBy=companyActive
-fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagvalue.lazy=false
+#fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagvalue.orderBy=topiaCreateDate desc
+
fr.ifremer.wao.entity.SampleRowLog.attribute.author.tagvalue.lazy=false
fr.ifremer.wao.entity.FishingZone.attribute.sampleRow.tagvalue.orderBy=code
@@ -24,10 +24,4 @@
fr.ifremer.wao.entity.ElligibleBoat.attribute.boat.tagvalue.lazy=false
fr.ifremer.wao.entity.Contact.attribute.sampleRow.tagvalue.lazy=false
-fr.ifremer.wao.entity.Contact.attribute.boat.tagvalue.lazy=false
-
-#fr.ifremer.wao.entity.Boat.attribute.elligibleBoat.tagvalue.lazy=false
-#fr.ifremer.wao.entity.ElligibleBoat.attribute.sampleRow.tagvalue.lazy=false
-#fr.ifremer.wao.entity.ElligibleBoat.attribute.company.tagvalue.lazy=false
-#fr.ifremer.wao.entity.SampleRow.attribute.program.tagvalue.lazy=false
-#fr.ifremer.wao.entity.SampleRow.attribute.company.tagvalue.lazy=false
\ No newline at end of file
+fr.ifremer.wao.entity.Contact.attribute.boat.tagvalue.lazy=false
\ No newline at end of file
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/WaoGlobalTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/WaoGlobalTest.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/WaoGlobalTest.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -93,7 +93,7 @@
Company company = companies.get(0);
assertEquals("ADMIN", company.getName());
- List<WaoUser> users = company.getWaoUser();
+ List<WaoUser> users = serviceUser.getUsersByCompany(company);
assertEquals(1, users.size());
WaoUser user = users.get(0);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/BoatImplTest.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -132,6 +132,8 @@
SampleRow row = rowDAO.findByCode("2010_0001");
row.getCompany();
row.getProfession();
+ row.sizeElligibleBoat();
+ row.sizeSampleMonth();
transaction.closeContext();
row.setCompany(company);
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/entity/SampleRowImplTest.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -97,6 +97,8 @@
transaction.commitTransaction();
SampleRow myRow = dao.findByCode("2010_1");
+ myRow.sizeElligibleBoat();
+ myRow.sizeSampleMonth();
transaction.closeContext();
return myRow;
}
@@ -105,6 +107,8 @@
TopiaContext transaction = WaoContext.getTopiaRootContext().beginTransaction();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
SampleRow resultRow = dao.findByCode("2010_1");
+ resultRow.sizeElligibleBoat();
+ resultRow.sizeSampleMonth();
transaction.closeContext();
return resultRow;
}
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceBoatImplTest.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -226,8 +226,12 @@
SampleRowDAO rowDAO = WaoModelDAOHelper.getSampleRowDAO(transaction);
SampleRow row1 = rowDAO.findByCode("2009_0003");
row1.getProfession();
+ row1.sizeElligibleBoat();
+ row1.sizeSampleMonth();
SampleRow row2 = rowDAO.findByCode("2010_0004");
row2.getProfession();
+ row2.sizeElligibleBoat();
+ row2.sizeSampleMonth();
transaction.commitTransaction();
Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceSamplingImplTest.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -433,6 +433,8 @@
SampleRow row = rowDAO.findByCode("2010_0001");
row.getProfession();
row.getCompany();
+ row.sizeSampleMonth();
+ row.sizeElligibleBoat();
transaction.closeContext();
input = getClass().getResourceAsStream("/import/navires.csv");
Modified: trunk/wao-ui/pom.xml
===================================================================
--- trunk/wao-ui/pom.xml 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-ui/pom.xml 2010-03-31 19:25:21 UTC (rev 400)
@@ -10,7 +10,7 @@
<parent>
<groupId>fr.ifremer</groupId>
<artifactId>wao</artifactId>
- <version>1.0.4-SNAPSHOT</version>
+ <version>1.1-SNAPSHOT</version>
</parent>
<groupId>fr.ifremer.wao</groupId>
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-31 10:10:28 UTC (rev 399)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-31 19:25:21 UTC (rev 400)
@@ -215,7 +215,7 @@
@Log
public GenericSelectModel<WaoUser> getUsersSelectModel() throws WaoException {
if (usersSelectModel == null) {
- List<WaoUser> users = getCompany().getWaoUser();
+ List<WaoUser> users = serviceUser.getUsersByCompany(getCompany());
if (log.isDebugEnabled()) {
log.debug("Nb users : " + users.size());
}
1
0
[Suiviobsmer-commits] r399 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/base java/fr/ifremer/wao/ui/components java/fr/ifremer/wao/ui/pages resources/fr/ifremer/wao/ui/components webapp
by fdesbois@users.labs.libre-entreprise.org 31 Mar '10
by fdesbois@users.labs.libre-entreprise.org 31 Mar '10
31 Mar '10
Author: fdesbois
Date: 2010-03-31 10:10:28 +0000 (Wed, 31 Mar 2010)
New Revision: 399
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/WaoPage.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/BoatActivityCalendar.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
trunk/wao-ui/src/main/webapp/Boats.tml
trunk/wao-ui/src/main/webapp/Index.tml
trunk/wao-ui/src/main/webapp/SamplingPlan.tml
Log:
Evo #1980 : readonly rights on UIs
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/WaoPage.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/WaoPage.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/base/WaoPage.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -34,6 +34,6 @@
*/
public interface WaoPage {
- boolean isOnlyForAdmin();
+ boolean canDisplay();
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -28,12 +28,14 @@
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceUser;
import fr.ifremer.wao.ui.base.WaoPage;
+import fr.ifremer.wao.ui.pages.Administration;
import fr.ifremer.wao.ui.pages.Index;
import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.PersistenceConstants;
import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.InjectContainer;
+import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.Persist;
@@ -199,11 +201,23 @@
}
public boolean canShowPage() {
- if (!currentUser.isAdmin()) {
- return !page.isOnlyForAdmin();
+ return page.canDisplay();
+ }
+
+ public String getAccessText() {
+ String text = currentUser.getUserRole().getLibelle();
+ if (currentUser.getReadOnly()) {
+ text += " lecture seule";
}
- return true;
+ return text;
}
+
+// @InjectPage
+// private Administration administration;
+//
+// public boolean canAccessAdministration() {
+// return administration.canDisplay();
+// }
public boolean displayBody() {
return canShowPage() && !fatal;
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -41,6 +41,7 @@
import org.apache.tapestry5.annotations.Log;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.services.PropertyAccess;
import org.apache.tapestry5.ioc.services.TypeCoercer;
@@ -61,9 +62,14 @@
@IncludeStylesheet("context:css/administration.css")
public class Administration implements WaoPage {
+ /**
+ * The access to the page is only for admin with no readOnly right.
+ *
+ * @return true if the Administration page can be displayed in Layout
+ */
@Override
- public boolean isOnlyForAdmin() {
- return true;
+ public boolean canDisplay() {
+ return currentUser.isAdmin() && !currentUser.getReadOnly();
}
@Inject
@@ -72,6 +78,9 @@
@InjectComponent
private Layout layout;
+ @SessionState
+ private WaoUser currentUser;
+
@Inject
private ServiceUser serviceUser;
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/BoatActivityCalendar.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/BoatActivityCalendar.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/BoatActivityCalendar.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -56,6 +56,16 @@
@IncludeStylesheet("context:css/boats.css")
public class BoatActivityCalendar implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
+ @Override
+ public boolean canDisplay() {
+ return true;
+ }
+
@Inject
private Logger log;
@@ -86,11 +96,6 @@
}
- @Override
- public boolean isOnlyForAdmin() {
- return false;
- }
-
public void setBoat(Boat boat) {
this.boat = boat;
}
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 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -90,9 +90,14 @@
@IncludeStylesheet("context:css/boats.css")
public class Boats extends AbstractFilteredPage implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
@@ -178,19 +183,6 @@
@Property
private UploadedFile boatsCsvFile;
- @Log
- void onSuccessFromImportBoatsForm() {
- //importBoatsForm.clearErrors();
- try {
- int[] result = serviceBoat.importBoatCsv(boatsCsvFile.getStream());
- // Suppress persitant list of boats
- boats = null;
- layout.addInfo(result[0] + " navires importés dont " + result[1] + " nouveaux");
- } catch (WaoException eee) {
- layout.addError(eee.getMessage());
- }
- }
-
/** Csv file for activityCalendar import, can be a Gzip file */
@Property
private UploadedFile activityCalendarsCsvFile;
@@ -201,6 +193,26 @@
protected static final String GZIP_MIMETYPE = "application/x-gzip";
+ public boolean canImportReferentials() {
+ return user.isAdmin() && !user.getReadOnly();
+ }
+
+ @Log
+ void onSuccessFromImportBoatsForm() {
+ if (canImportReferentials()) {
+ try {
+ int[] result = serviceBoat.importBoatCsv(
+ boatsCsvFile.getStream());
+ // Suppress persitant list of boats
+ boats = null;
+ layout.addInfo(result[0] + " navires importés dont " +
+ result[1] + " nouveaux");
+ } catch (WaoException eee) {
+ layout.addError(eee.getMessage());
+ }
+ }
+ }
+
InputStream getActivityCalendarLogFile() throws FileNotFoundException {
if (activityCalendarLogFile == null) {
if (log.isInfoEnabled()) {
@@ -248,19 +260,24 @@
}
@Log
- void onSuccessFromImportActivityCalendarsForm() throws WaoException, IOException {
- InputStream input = activityCalendarsCsvFile.getStream();
- if (log.isDebugEnabled()) {
- log.debug("Content type : " + activityCalendarsCsvFile.getContentType());
- }
- if (activityCalendarsCsvFile.getContentType().equals(GZIP_MIMETYPE)) {
+ void onSuccessFromImportActivityCalendarsForm()
+ throws WaoException, IOException {
+ if (canImportReferentials()) {
+ InputStream input = activityCalendarsCsvFile.getStream();
if (log.isDebugEnabled()) {
- log.debug("Gzip file");
+ log.debug("Content type : " +
+ activityCalendarsCsvFile.getContentType());
}
- input = new GZIPInputStream(input);
+ if (activityCalendarsCsvFile.getContentType().
+ equals(GZIP_MIMETYPE)) {
+ if (log.isDebugEnabled()) {
+ log.debug("Gzip file");
+ }
+ input = new GZIPInputStream(input);
+ }
+ serviceBoat.importActivityCalendarCsv(input);
+ companyBoatInfos = null;
}
- serviceBoat.importActivityCalendarCsv(input);
- companyBoatInfos = null;
}
public StreamResponse onActionFromShowActivityCalendarLogFile() {
@@ -509,7 +526,7 @@
}
public boolean canCreateNewContactFromList() throws WaoException {
- if (!user.isAdmin() && isSampleRowExists()) {
+ if (!user.isAdmin() && !user.getReadOnly() && isSampleRowExists()) {
return boat.canCreateContact(user.getCompany());
}
return false;
@@ -714,7 +731,8 @@
}
public boolean canCreateNewContactFromElligibleBoat() throws WaoException {
- if (!user.isAdmin() && !isElligibleBoatCompanyActiveFalse()) {
+ if (!user.isAdmin() && !user.getReadOnly() &&
+ !isElligibleBoatCompanyActiveFalse()) {
Boat currentBoat = getBoatInfos().getBoat();
return currentBoat.canCreateContact(user.getCompany());
}
@@ -728,6 +746,15 @@
/** /////////////////////// ACTIONS //////////////////////////////////// **/
+ /**
+ * Only user with no readOnly rights can edit BoatInfos.
+ *
+ * @return true if BoatInfos can be edited
+ */
+ public boolean canEditBoatInfos() {
+ return !user.getReadOnly();
+ }
+
void onSuccess() throws WaoException {
if (getBoatInfos() != null) {
boatSelectedImmatriculation = getBoatInfos().getBoat().getImmatriculation();
@@ -741,12 +768,14 @@
}
Block onActionFromEditBoatInfos() throws WaoException {
- boatInfosEditable = true;
- // WARNING :: Reset sampleRow select for edition mode, no limit for
- // showing sampleRows instead of filters
- getFilter().setNbMonthFinishedFromToday(null);
- resetSampleRowSelect();
- getFilter().setNbMonthFinishedFromToday(-1);
+ if (canEditBoatInfos()) {
+ boatInfosEditable = true;
+ // WARNING :: Reset sampleRow select for edition mode, no limit for
+ // showing sampleRows instead of filters
+ getFilter().setNbMonthFinishedFromToday(null);
+ resetSampleRowSelect();
+ getFilter().setNbMonthFinishedFromToday(-1);
+ }
return boatInfosZone.getBody();
}
@@ -784,7 +813,7 @@
}
Block onSuccessFromBoatInfosForm() throws WaoException {
- if (!boatInfosEditable) {
+ if (!boatInfosEditable && canEditBoatInfos()) {
// Save data
serviceBoat.createUpdateCompanyBoatInfos(companyBoatInfos);
}
@@ -807,13 +836,6 @@
sampleRow = getSampleRow();
// Get boat from list
boat = getBoats().get(boatImmatriculation);
- if (log.isDebugEnabled()) {
- log.debug("Create contact from BOAT list");
- log.debug("Create contact :: boat imma : " +
- boat.getImmatriculation());
- log.debug("Create contact :: sampleRow code : " +
- sampleRow.getCode());
- }
contacts.createNewContact(boat, sampleRow);
return contacts;
}
@@ -822,13 +844,6 @@
// Get sampleRow from elligibleBoat list
ElligibleBoat elligible = getCompanyBoatInfos().getElligibleBoat(sampleRowCode);
sampleRow = elligible.getSampleRow();
- if (log.isDebugEnabled()) {
- log.debug("Create contact from BOAT infos");
- log.debug("Create contact :: boat imma : " +
- getBoatSelected());
- log.debug("Create contact :: sampleRow code : " +
- sampleRow.getCode());
- }
contacts.createNewContact(getBoatSelected(), sampleRow);
return contacts;
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -87,9 +87,14 @@
@IncludeStylesheet("context:css/contacts.css")
public class Contacts extends AbstractFilteredPage implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
@@ -204,13 +209,15 @@
private UploadedFile contactsCsvFile;
/**
- * Only administrator and coordinator can import/export contacts.
+ * Only administrator and coordinator with no readOnly rights
+ * can import/export contacts.
*
* @return true if import/export of contacts can be done
*/
public boolean canImportExport() {
- return user.isAdmin() ||
- user.getUserRole().equals(UserRole.COORDINATOR);
+ return (user.isAdmin() ||
+ user.getUserRole().equals(UserRole.COORDINATOR)) &&
+ !user.getReadOnly();
}
@Log
@@ -382,7 +389,8 @@
private String oldComment;
public boolean hasActions() {
- return !user.isAdmin() && contact.getValidationCompany() == null;
+ return !user.isAdmin() && contact.getValidationCompany() == null
+ && !user.getReadOnly();
}
/**
@@ -392,8 +400,9 @@
* @return true if the validation actions can be displayed
*/
public boolean hasValidationActions() {
- return user.isAdmin() ||
- user.getUserRole().equals(UserRole.COORDINATOR);
+ return (user.isAdmin() ||
+ user.getUserRole().equals(UserRole.COORDINATOR)) &&
+ !user.getReadOnly();
}
public boolean canValidate() {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -42,6 +42,15 @@
* par : $Author$
*/
public class ExceptionReport implements ExceptionReporter, WaoPage {
+/**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
+ @Override
+ public boolean canDisplay() {
+ return true;
+ }
@InjectComponent
private Layout layout;
@@ -75,10 +84,5 @@
}
return getWaoException(eee.getCause());
}
-
- @Override
- public boolean isOnlyForAdmin() {
- return false;
- }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Index.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -55,10 +55,15 @@
*/
@IncludeStylesheet("context:css/news.css")
public class Index implements WaoPage {
-
+
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
@@ -116,6 +121,10 @@
return newsList;
}
+ public boolean canEditNews() {
+ return user.isAdmin() && !user.getReadOnly();
+ }
+
public boolean isEditionMode() {
return isCreateMode() || news.getTopiaId().equals(editedId);
}
@@ -160,10 +169,12 @@
}
void onSuccessFromNewsForm() throws WaoException {
- serviceNews.saveNews(news, false);
- //this.editedId = null;
- if (log.isDebugEnabled()) {
- log.debug(news.getContent());
+ if (canEditNews()) {
+ serviceNews.saveNews(news, false);
+ //this.editedId = null;
+ if (log.isDebugEnabled()) {
+ log.debug(news.getContent());
+ }
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -32,7 +32,6 @@
import fr.ifremer.wao.entity.SampleMonth;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.SampleRowLog;
-import fr.ifremer.wao.entity.SampleRowLogImpl;
import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceBoat;
import fr.ifremer.wao.service.ServiceReferential;
@@ -82,9 +81,14 @@
@IncludeStylesheet("context:css/sampling.css")
public class SampleRowForm implements WaoPage {
+ /**
+ * Only admin with no readOnly rights can display SampleRowForm.
+ *
+ * @return true if the user can display the page
+ */
@Override
- public boolean isOnlyForAdmin() {
- return true;
+ public boolean canDisplay() {
+ return user.isAdmin() && !user.getReadOnly();
}
@Inject
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -57,9 +57,14 @@
@IncludeStylesheet("context:css/sampling.css")
public class SampleRowHistoric implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
@@ -145,7 +150,8 @@
}
public boolean canAddComment() {
- return user.getUserRole().equals(UserRole.COORDINATOR);
+ return user.getUserRole().equals(UserRole.COORDINATOR) &&
+ !user.getReadOnly();
}
public void onSuccessFromAddComment() throws WaoException {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -68,9 +68,14 @@
@IncludeStylesheet("context:css/sampling.css")
public class SamplingPlan implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
@@ -110,17 +115,25 @@
@Property
private UploadedFile samplingPlanCsvFile;
+ public boolean canImportSamplingPlan() {
+ return user.isAdmin() && !user.getReadOnly();
+ }
+
@Log
void onSuccessFromImportSamplingPlan() throws WaoException {
- try {
- ImportResults result = serviceSampling.importSamplingPlanCsv(samplingPlanCsvFile.getStream());
- layout.addInfo(result.getNbRowsImported() + " lignes du plan importés, " +
- result.getNbRowsRefused() + " refusés.");
- for (String error : result.getErrors()) {
- layout.addInfo(error);
+ if (canImportSamplingPlan()) {
+ try {
+ ImportResults result = serviceSampling.importSamplingPlanCsv(
+ samplingPlanCsvFile.getStream());
+ layout.addInfo(result.getNbRowsImported() +
+ " lignes du plan importés, " +
+ result.getNbRowsRefused() + " refusés.");
+ for (String error : result.getErrors()) {
+ layout.addInfo(error);
+ }
+ } catch (WaoBusinessException eee) {
+ layout.addError(eee.getMessage());
}
- } catch (WaoBusinessException eee) {
- layout.addError(eee.getMessage());
}
}
@@ -372,6 +385,15 @@
/** ------------------------- ACTIONS ----------------------------------- **/
/**
+ * Can edit the sampleRow. Only for admin with no readOnly rights.
+ *
+ * @return true if the sampleRow can be edited.
+ */
+ public boolean canEditSampleRow() {
+ return user.isAdmin() && !user.getReadOnly();
+ }
+
+ /**
* Used to filter period using dates from the program selected in table.
* @param rowIndex index of the row in the table
* @throws WaoException for a data problem
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -76,9 +76,14 @@
@IncludeStylesheet("context:css/synthesis.css")
public class Synthesis extends AbstractFilteredPage implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java 2010-03-31 10:10:28 UTC (rev 399)
@@ -50,9 +50,14 @@
@IncludeStylesheet("context:css/userProfile.css")
public class UserProfile implements WaoPage {
+ /**
+ * No restriction to display this page.
+ *
+ * @return true
+ */
@Override
- public boolean isOnlyForAdmin() {
- return false;
+ public boolean canDisplay() {
+ return true;
}
@Inject
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-03-31 10:10:28 UTC (rev 399)
@@ -33,6 +33,7 @@
</div>
<div id="user-infos" class="fleft">
Vous êtes <strong>${currentUser.fullName}</strong> de la société <strong>${currentUser.company.name}</strong>
+ (${accessText})
</div>
<div id="user-actions" class="fright">
<a t:type="pagelink" t:page="index" title="Page d'accueil">
Modified: trunk/wao-ui/src/main/webapp/Boats.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Boats.tml 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/webapp/Boats.tml 2010-03-31 10:10:28 UTC (rev 399)
@@ -2,7 +2,7 @@
<t:layout t:pageTitle="Navires" t:contentId="so-boats"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
- <t:if t:test="user.admin">
+ <t:if t:test="canImportReferentials()">
<div class="so-import">
<fieldset>
<legend>Import des navires</legend>
@@ -195,11 +195,13 @@
<h2>Informations sur ${boatInfos.boat.name}</h2>
</div>
<!-- ACTIONS -->
- <div class="fright">
- <a t:type="actionlink" t:id="editBoatInfos" t:zone="so-boats-boat-infos">
- <img src="${asset:context:}/img/edit-32px.png" title="Editer les informations"/>
- </a>
- </div>
+ <t:if t:test="canEditBoatInfos()">
+ <div class="fright">
+ <a t:type="actionlink" t:id="editBoatInfos" t:zone="so-boats-boat-infos">
+ <img src="${asset:context:}/img/edit-32px.png" title="Editer les informations"/>
+ </a>
+ </div>
+ </t:if>
</div>
</t:unless>
@@ -299,13 +301,15 @@
<h2>Informations sur ${boatInfos.boat.name}</h2>
</div>
<!-- En-tête - actions -->
- <div class="fright">
- <input t:type="submit" t:id="saveBoatInfos" class="ico save" value="Save"
- title="Enregistrer les modifications" />
- <a t:type="actionlink" t:id="cancelEditBoatInfos" t:zone="so-boats-boat-infos">
- <img src="${asset:context:}/img/undo.png" title="Annuler les modifications"/>
- </a>
- </div>
+ <t:if t:test="canEditBoatInfos()">
+ <div class="fright">
+ <input t:type="submit" t:id="saveBoatInfos" class="ico save" value="Save"
+ title="Enregistrer les modifications" />
+ <a t:type="actionlink" t:id="cancelEditBoatInfos" t:zone="so-boats-boat-infos">
+ <img src="${asset:context:}/img/undo.png" title="Annuler les modifications"/>
+ </a>
+ </div>
+ </t:if>
</div>
<!-- Corps - contact -->
Modified: trunk/wao-ui/src/main/webapp/Index.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Index.tml 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/webapp/Index.tml 2010-03-31 10:10:28 UTC (rev 399)
@@ -2,7 +2,7 @@
<t:layout t:pageTitle="News" t:contentId="so-news" xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
<form t:type="form" t:id="newsForm">
- <t:if t:test="user.admin">
+ <t:if t:test="canEditNews()">
<p class="aright">
<a t:type="actionlink" t:id="addNews">
<img src="${asset:context:}/img/add-32px.png" alt="Ajouter" title="Ajouter un nouvel article"/>
@@ -27,7 +27,7 @@
</p:else>
</t:if>
</h2>
- <t:if t:test="user.admin">
+ <t:if t:test="canEditNews()">
<p class="aright">
<t:if t:test="editionMode">
<input t:type="submitContext" t:context="rowIndex" t:id="saveNews" class="ico22px save22px" value="Save"
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-03-30 08:24:27 UTC (rev 398)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-03-31 10:10:28 UTC (rev 399)
@@ -2,17 +2,17 @@
<t:layout t:pageTitle="Plan d'Echantillonnage" t:contentId="so-sampling"
xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd" xmlns:p="tapestry:parameter">
<div class="${mainClass}">
- <t:if t:test="user.admin">
+ <t:if t:test="canImportSamplingPlan()">
<div class="so-import">
- <fieldset>
- <legend>Import d'un nouveau plan d'échantillonnage</legend>
- <form t:type="form" t:id="importSamplingPlan">
+ <form t:type="form" t:id="importSamplingPlan" action="post">
+ <fieldset>
+ <legend>Import d'un nouveau plan d'échantillonnage</legend>
<t:errors />
<t:label for="samplingPlanCsvFile" /> :
<input t:type="upload" t:id="samplingPlanCsvFile" t:validate="required" />
<input t:type="submit" class="ico import" value="OK" title="Importer un plan d'échantillonnage (format CSV avec encodage UTF-8)" />
- </form>
- </fieldset>
+ </fieldset>
+ </form>
</div>
</t:if>
<div class="clearfix mbottom10">
@@ -24,20 +24,14 @@
title="Exporter le plan d'échantillonnage du ${dateFormat.format(period.fromDate)} au ${dateFormat.format(period.thruDate)}" />
</a>
</h1>
- <form t:type="form" t:id="periodForm">
+ <form t:type="form" t:id="periodForm" action="post">
<t:label t:for="periodBegin" /> : <input t:type="datefield" class="width70" t:id="periodBegin" t:format="MM/yyyy" />
<t:label t:for="periodEnd" /> : <input t:type="datefield" class="width70" t:id="periodEnd" t:format="MM/yyyy" />
<input t:type="submit" class="ico search" value="Search" t:title="Affichage des lignes du plan couvertes par la période sélectionnée" />
</form>
</div>
- <t:if t:test="user.admin">
+ <t:if t:test="canEditSampleRow()">
<div class="actions fright">
-<!-- <span>
- <a t:type="pagelink" t:page="samplingHistoric">
- <img src="${asset:context:}/img/clock.png" alt="Historique"
- title="Voir l'historique des plans d'échantillonnage"/>
- </a>
- </span>-->
<span>
<a t:type="pagelink" t:page="sampleRowForm">
<img src="${asset:context:}/img/add-32px.png" alt="Ajouter" title="Ajouter une nouvelle ligne"/>
@@ -173,7 +167,7 @@
<a t:type="pagelink" t:page="sampleRowHistoric" t:context="row.code">
<img src="${asset:context:}/img/clock-22px.png" alt="Historique" title="Voir historique de la ligne"/>
</a>
- <t:if t:test="user.admin">
+ <t:if t:test="canEditSampleRow()">
<a t:type="pagelink" t:page="sampleRowForm" t:context="row.topiaId">
<img src="${asset:context:}/img/edit.png" alt="Modifier" title="Modifier la ligne"/>
</a>
1
0
[Suiviobsmer-commits] r398 - trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by fdesbois@users.labs.libre-entreprise.org 30 Mar '10
by fdesbois@users.labs.libre-entreprise.org 30 Mar '10
30 Mar '10
Author: fdesbois
Date: 2010-03-30 08:24:27 +0000 (Tue, 30 Mar 2010)
New Revision: 398
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
Log:
Regression on cancel contactEdit (due to contactState refactor)
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-29 16:19:14 UTC (rev 397)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-30 08:24:27 UTC (rev 398)
@@ -294,16 +294,6 @@
return contacts;
}
-// public Map<String, Contact> getContacts() throws WaoException {
-// if (contacts == null) {
-// if (log.isInfoEnabled()) {
-// log.info("BUSINESS REQUEST [getContactsByFilter]");
-// }
-// contacts = serviceContact.getContactsByFilter(getContactFilter());
-// }
-// return contacts;
-// }
-
public BeanModel<Contact> getContactModel() {
if (contactModel == null) {
contactModel = user.isAdmin() ?
@@ -562,8 +552,8 @@
contactsForm.clearErrors();
// Validation for saving contact depends on contactState (only edition
// form)
- ContactState contactState = contactEdited.getContactState();
- if (!edited && contactState != null) {
+ if (!edited && contactEdited != null) {
+ ContactState contactState = contactEdited.getContactState();
if (log.isInfoEnabled()) {
log.info("For state : " + contactState);
}
@@ -576,31 +566,39 @@
if (begin != null && !row.isValid(begin)) {
contactsForm.recordError(beginDate,
- "La date de début de la marée doit correspondre à un mois valide (non vide) de la ligne " + row.getCode());
+ "La date de début de la marée doit correspondre à un " +
+ "mois valide (non vide) de la ligne " + row.getCode());
}
if (begin != null && end != null && end.before(begin)) {
- contactsForm.recordError(endDate, "La date de fin de la marée ne peut pas être antérieure à celle de début");
+ contactsForm.recordError(endDate, "La date de fin de la marée" +
+ " ne peut pas être antérieure à celle de début");
}
Date current = WaoContext.getCurrentDate();
if (end != null && end.after(current)) {
- contactsForm.recordError(endDate, "La date de fin de la marée ne peut pas être postérieure à la date du jour");
+ contactsForm.recordError(endDate, "La date de fin de la marée" +
+ " ne peut pas être postérieure à la date du jour");
}
if (end != null && input != null && end.after(input)) {
- contactsForm.recordError(inputDate, "La date de saisie des données ne peut pas être antérieure à la date de fin de la marée");
+ contactsForm.recordError(inputDate, "La date de saisie des" +
+ " données ne peut pas être antérieure à la date de" +
+ " fin de la marée");
}
if (input != null && input.after(current)) {
- contactsForm.recordError(inputDate, "La date de saisie des données ne peut pas être postérieure à la date du jour");
+ contactsForm.recordError(inputDate, "La date de saisie des" +
+ " données ne peut pas être postérieure à la date" +
+ " du jour");
}
// Non abouti, Refus ou Refus Définitif
if (contactState.isUnfinishedState()) {
String newComment = contactEdited.getComment();
- if (StringUtils.isNotEmpty(newComment) && !newComment.equals(oldComment)) {
+ if (StringUtils.isNotEmpty(newComment) &&
+ !newComment.equals(oldComment)) {
// RAZ des champs
contactEdited.setTideBeginDate(null);
contactEdited.setTideEndDate(null);
@@ -609,18 +607,26 @@
contactEdited.setMammalsObservation(false);
contactEdited.setDataInputDate(null);
} else {
- contactsForm.recordError(comment, "Vous devez ajouter un commentaire pour l'état '" + contactState + "'");
+ contactsForm.recordError(comment, "Vous devez ajouter" +
+ " un commentaire pour l'état" +
+ " '" + contactState + "'");
}
// Embarquement Réalisé
} else if (contactState.equals(ContactState.BOARDING_DONE)) {
if (begin == null) {
- contactsForm.recordError(beginDate, "La date de début de marée est obligatoire pour l'état '" + contactState + "'");
+ contactsForm.recordError(beginDate, "La date de début de" +
+ " marée est obligatoire pour l'état" +
+ " '" + contactState + "'");
}
if (end == null) {
- contactsForm.recordError(endDate, "La date de fin de marée est obligatoire pour l'état '" + contactState + "'");
+ contactsForm.recordError(endDate, "La date de fin de" +
+ " marée est obligatoire pour l'état" +
+ " '" + contactState + "'");
}
if (contactEdited.getNbObservants() == 0) {
- contactsForm.recordError(nbObservants, "Il ne peut y avoir aucun observateur pour l'état '" + contactState + "'");
+ contactsForm.recordError(nbObservants, "Il ne peut y" +
+ " avoir aucun observateur pour l'état" +
+ " '" + contactState + "'");
}
}
}
1
0
[Suiviobsmer-commits] r397 - in trunk/wao-business/src: main/java/fr/ifremer/wao/io test/resources
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
29 Mar '10
Author: fdesbois
Date: 2010-03-29 16:19:14 +0000 (Mon, 29 Mar 2010)
New Revision: 397
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java
trunk/wao-business/src/test/resources/log4j.properties
Log:
Change log level
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java 2010-03-29 16:17:48 UTC (rev 396)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java 2010-03-29 16:19:14 UTC (rev 397)
@@ -206,8 +206,8 @@
throws IOException, ParseException {
String str = read(reader, header);
- if (logger.isDebugEnabled()) {
- logger.debug("Read date " + header.name() + " : " + str);
+ if (logger.isTraceEnabled()) {
+ logger.trace("Read date " + header.name() + " : " + str);
}
return parseDate(str, header.datePattern());
}
@@ -258,8 +258,8 @@
// Check if the year is correct
int year = calendar.get(Calendar.YEAR);
- if (logger.isDebugEnabled()) {
- logger.debug("Read date year : " + year);
+ if (logger.isTraceEnabled()) {
+ logger.trace("Read date year : " + year);
}
// If year < to the current millenium, the year is incorrect, must
// add the millenium to the year
Modified: trunk/wao-business/src/test/resources/log4j.properties
===================================================================
--- trunk/wao-business/src/test/resources/log4j.properties 2010-03-29 16:17:48 UTC (rev 396)
+++ trunk/wao-business/src/test/resources/log4j.properties 2010-03-29 16:19:14 UTC (rev 397)
@@ -8,6 +8,6 @@
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%p] %c{2} %m%n
-log4j.logger.fr.ifremer.wao=DEBUG
+log4j.logger.fr.ifremer.wao=INFO
log4j.logger.org.nuiton.util=INFO
log4j.logger.org.nuiton.util.beans.BinderProvider=ERROR
1
0
[Suiviobsmer-commits] r396 - in trunk: . wao-business/src/main/java/fr/ifremer/wao wao-business/src/main/java/fr/ifremer/wao/io wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/test/java/fr/ifremer/wao wao-business/src/test/java/fr/ifremer/wao/io wao-business/src/test/resources wao-business/src/test/resources/import
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
29 Mar '10
Author: fdesbois
Date: 2010-03-29 16:17:48 +0000 (Mon, 29 Mar 2010)
New Revision: 396
Added:
trunk/wao-business/src/test/java/fr/ifremer/wao/io/
trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java
trunk/wao-business/src/test/resources/import/dates.csv
Modified:
trunk/README.txt
trunk/changelog.txt
trunk/pom.xml
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java
trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ActivityCalendarImport.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/test/resources/log4j.properties
Log:
Evo #2233 : Improve parsing dates from Csv import
Modified: trunk/README.txt
===================================================================
--- trunk/README.txt 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/README.txt 2010-03-29 16:17:48 UTC (rev 396)
@@ -19,5 +19,5 @@
Configuration au lancement
--------------------------
--Dconfig.file=/path/to/Wao.properties
+-Dconfig.path=/path/to/properties/file (file named Wao.properties)
-Dwao.log.home=/path/to/log/folder
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/changelog.txt 2010-03-29 16:17:48 UTC (rev 396)
@@ -9,6 +9,8 @@
Evolutions
++++++++++
+- [fdesbois] Evo #2233 : Gérer les formats de dates par défaut d'OpenOffice pour
+ l'import CSV (JJ/MM/AA)
- [fdesbois] Evo #2229 : Gestion du chemin vers les logs de l'application
- [fdesbois] Evo #2226 : Amélioration gestion interne des enumérations
(ContactState)
@@ -19,9 +21,9 @@
* commons-lang 2.4 -> 2.5
* commons-beanutils 1.8.0 -> 1.8.2
* junit 4.7 -> 4.8.1
- * topia 2.3.0-beta-8 -> 2.3
+ * topia 2.3.0-beta-8 -> 2.3.1
* eugene 2.0.0-beta-4 -> 2.0
- * nuiton-utils 1.1.5 -> 1.2
+ * nuiton-utils 1.1.5 -> 1.2.1
* h2 1.2.128 -> 1.2.132
* postgresql 8.3-603.jdbc4 -> 8.4-701.jdbc4
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/pom.xml 2010-03-29 16:17:48 UTC (rev 396)
@@ -215,7 +215,7 @@
<labs.id>154</labs.id>
<!-- libraries version -->
- <nuitonutils.version>1.2</nuitonutils.version>
+ <nuitonutils.version>1.2.1-SNAPSHOT</nuitonutils.version>
<topia.version>2.3.1-SNAPSHOT</topia.version>
<eugene.version>2.0</eugene.version>
<tapestry.version>5.1.0.5</tapestry.version>
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContext.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -25,6 +25,7 @@
import fr.ifremer.wao.entity.ActivityCalendar;
import java.io.IOException;
+import java.nio.charset.Charset;
import java.util.Date;
import java.util.Properties;
import org.apache.commons.lang.RandomStringUtils;
@@ -207,6 +208,10 @@
return "";
}
+ public static Charset getCsvCharset() {
+ return Charset.forName("UTF-8");
+ }
+
public static String prepareSampleRowCode(String code) {
// Replace single number after year by a double one : 2010_111 -> 2010_0111
code = code.replaceFirst("_(\\d{3})$", "_0$1");
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/ImportHelper.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -28,7 +28,6 @@
import fr.ifremer.wao.io.WaoCsvHeader.DatedHeader;
import fr.ifremer.wao.io.WaoCsvHeader.IOHeader;
import fr.ifremer.wao.io.WaoCsvHeader.SAMPLING;
-import fr.ifremer.wao.io.WaoCsvHeader.SamplingHeader;
import java.io.IOException;
import java.text.DateFormat;
import java.text.ParseException;
@@ -37,11 +36,11 @@
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.Locale;
-import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.time.DurationFormatUtils;
import org.nuiton.util.PeriodDates;
import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
/**
* ImportHelper
@@ -56,8 +55,17 @@
*/
public class ImportHelper {
+ private static final Logger logger =
+ LoggerFactory.getLogger(ImportHelper.class);
+
protected CsvReader reader;
+ // 2000 -> 2099
+ public static final int CURRENT_MILLENIUM = 2000;
+
+ public static final String DEFAULT_PATTERN = "dd/MM/yyyy";
+ public static final String MONTH_PATTERN = "MM/yyyy";
+
public ImportHelper(CsvReader reader) {
this.reader = reader;
}
@@ -196,17 +204,70 @@
*/
public static Date readDate(CsvReader reader, DatedHeader header)
throws IOException, ParseException {
- DateFormat dateFormat = new SimpleDateFormat(header.datePattern());
+
String str = read(reader, header);
- if (StringUtils.isEmpty(str)) {
+ if (logger.isDebugEnabled()) {
+ logger.debug("Read date " + header.name() + " : " + str);
+ }
+ return parseDate(str, header.datePattern());
+ }
+
+ /**
+ * Parse a date from a Csv file. Depends on pattern wanted. The default
+ * pattern from OpenOffice or Excel is considered for parsing (JJ/MM/AA).
+ *
+ * @param value of the reading date
+ * @param pattern for parsing
+ * @return the parsed date
+ * @throws ParseException
+ */
+ public static Date parseDate(String value, String pattern)
+ throws ParseException {
+
+ if (StringUtils.isEmpty(value)) {
return null;
}
- // Parsing problem with Pattern dd/MM/yyyy which is valid for dd/MM/yy date
- // The length is tested to avoid accepting wrong dates
- if (str.length() != header.datePattern().length()) {
- throw new ParseException("Date error : " + str, str.length());
+
+ DateFormat dateFormat = null;
+ Date result = null;
+ Calendar calendar = Calendar.getInstance();
+
+ // Case of MONTH_PATTERN : MM/yyyy
+ if (pattern.equals(MONTH_PATTERN)) {
+ dateFormat = new SimpleDateFormat(DEFAULT_PATTERN);
+ try {
+ // Try to parse with default_pattern (ok for default OpenOffice
+ // or Excel date format)
+ result = dateFormat.parse(value);
+ calendar.setTime(result);
+ // In this case, we must suppress the day from the date
+ // Put it to 1
+ calendar.set(Calendar.DAY_OF_MONTH, 1);
+ } catch (ParseException eee) {
+ // If the date can't be parse, it must be ok with header pattern
+ logger.debug("Date parse error : " + eee.getMessage());
+ dateFormat = new SimpleDateFormat(pattern);
+ result = dateFormat.parse(value);
+ calendar.setTime(result);
+ }
+ } else {
+ dateFormat = new SimpleDateFormat(pattern);
+ result = dateFormat.parse(value);
+ calendar.setTime(result);
}
- return dateFormat.parse(str);
+
+ // Check if the year is correct
+ int year = calendar.get(Calendar.YEAR);
+ if (logger.isDebugEnabled()) {
+ logger.debug("Read date year : " + year);
+ }
+ // If year < to the current millenium, the year is incorrect, must
+ // add the millenium to the year
+ // It's because of century problem : /10 must be /2010
+ if (year < CURRENT_MILLENIUM) {
+ calendar.add(Calendar.YEAR, CURRENT_MILLENIUM);
+ }
+ return calendar.getTime();
}
public static long logTimeAndMemory(Logger log, long tic1, String msg) {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ActivityCalendarImport.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ActivityCalendarImport.java 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ActivityCalendarImport.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -142,7 +142,7 @@
try {
transaction = WaoContext.getTopiaRootContext().beginTransaction();
- CsvReader reader = new CsvReader(input, Charset.forName("UTF-8"));
+ CsvReader reader = new CsvReader(input, WaoContext.getCsvCharset());
long startTime = System.currentTimeMillis();
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 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceBoatImpl.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -383,7 +383,7 @@
try {
transaction = rootContext.beginTransaction();
- CsvReader reader = new CsvReader(input, Charset.forName("UTF-8"));
+ CsvReader reader = new CsvReader(input, WaoContext.getCsvCharset());
reader.readHeaders();
long startTime = System.currentTimeMillis();
@@ -499,7 +499,7 @@
file.deleteOnExit();
FileOutputStream output = new FileOutputStream(file);
- writer = new CsvWriter(output, ',', Charset.forName("UTF-8"));
+ writer = new CsvWriter(output, ',', WaoContext.getCsvCharset());
ExportHelper<BOAT> export = new ExportHelper<BOAT>(writer, BOAT.getTotalHeaders()) {
@Override
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 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -209,7 +209,7 @@
}
FileOutputStream output = new FileOutputStream(file);
- writer = new CsvWriter(output, ',', Charset.forName("UTF-8"));
+ writer = new CsvWriter(output, ',', WaoContext.getCsvCharset());
ExportHelper<ContactHeader> export = new ExportHelper<ContactHeader>(writer, CONTACT.getTotalHeaders()) {
@@ -337,7 +337,7 @@
try {
transaction = rootContext.beginTransaction();
- reader = new CsvReader(input, Charset.forName("UTF-8"));
+ reader = new CsvReader(input, WaoContext.getCsvCharset());
reader.readHeaders();
ContactDAO dao = WaoModelDAOHelper.getContactDAO(transaction);
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 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -182,7 +182,7 @@
try {
transaction = rootContext.beginTransaction();
- CsvReader reader = new CsvReader(input, Charset.forName("UTF-8"));
+ CsvReader reader = new CsvReader(input, WaoContext.getCsvCharset());
reader.readHeaders();
FishingZoneDAO dao = WaoModelDAOHelper.getFishingZoneDAO(transaction);
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 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -595,7 +595,7 @@
file.deleteOnExit();
FileOutputStream output = new FileOutputStream(file);
- writer = new CsvWriter(output, ',', Charset.forName("UTF-8"));
+ writer = new CsvWriter(output, ',', WaoContext.getCsvCharset());
// Get min and max dates to have the biggest period
// Date min = (Date)query.executeToObject("MIN(S." + SampleRow.PERIOD_BEGIN + ")");
@@ -727,7 +727,7 @@
try {
transaction = rootContext.beginTransaction();
- CsvReader reader = new CsvReader(input, Charset.forName("UTF-8"));
+ CsvReader reader = new CsvReader(input, WaoContext.getCsvCharset());
reader.readHeaders();
SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
@@ -749,7 +749,8 @@
continue;
}
- String districts = reader.get(FISHING_ZONE.PECHE_DIVISION.name());
+ String districts = ImportHelper.read(reader,
+ FISHING_ZONE.PECHE_DIVISION);
row = dao.findByCode(code);
// Refuse existing SampleRow
@@ -965,11 +966,11 @@
" _ lastMonthId = " + lastMonthColumnId);
}
- DateFormat dateFormat = SAMPLING.getDateFormat();
-
for (int i = firstMonthColumnId; i < lastMonthColumnId; i++) {
- Date monthDate = dateFormat.parse(reader.getHeader(i));
+ Date monthDate = ImportHelper.parseDate(reader.getHeader(i),
+ SAMPLING.defaultDatePattern());
+
Integer monthValue = StringUtils.isEmpty(reader.get(i)) ?
null : Integer.parseInt(reader.get(i));
Added: trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java
===================================================================
--- trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java (rev 0)
+++ trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java 2010-03-29 16:17:48 UTC (rev 396)
@@ -0,0 +1,201 @@
+
+package fr.ifremer.wao.io;
+
+import com.csvreader.CsvReader;
+import fr.ifremer.wao.io.WaoCsvHeader.DatedHeader;
+import java.io.InputStream;
+import java.nio.charset.Charset;
+import java.util.Date;
+import org.junit.After;
+import org.junit.AfterClass;
+import org.junit.Assert;
+import org.junit.Before;
+import org.junit.BeforeClass;
+import org.junit.Test;
+import org.nuiton.util.DateUtils;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+/**
+ *
+ * @author fdesbois
+ */
+public class ImportHelperTest {
+
+ private static final Logger logger =
+ LoggerFactory.getLogger(ImportHelperTest.class);
+
+ public ImportHelperTest() {
+ }
+
+ @BeforeClass
+ public static void setUpClass() throws Exception {
+ }
+
+ @AfterClass
+ public static void tearDownClass() throws Exception {
+ }
+
+ @Before
+ public void setUp() {
+ }
+
+ @After
+ public void tearDown() {
+ }
+
+ /**
+ * Test of parseContactValidation method, of class ImportHelper.
+ */
+ //@Test
+ public void testParseContactValidation() throws Exception {
+ System.out.println("parseContactValidation");
+ }
+
+ /**
+ * Test of parseContactMammals method, of class ImportHelper.
+ */
+ //@Test
+ public void testParseContactMammals() throws Exception {
+ System.out.println("parseContactMammals");
+ }
+
+ /**
+ * Test of parseContactCreateDate method, of class ImportHelper.
+ */
+ //@Test
+ public void testParseContactCreateDate() throws Exception {
+ System.out.println("parseContactCreateDate");
+ }
+
+ /**
+ * Test of readSampleRowCode method, of class ImportHelper.
+ */
+ //@Test
+ public void testReadSampleRowCode() throws Exception {
+ System.out.println("readSampleRowCode");
+ }
+
+ /**
+ * Test of read method, of class ImportHelper.
+ */
+ //@Test
+ public void testRead() throws Exception {
+ System.out.println("read");
+ }
+
+ /**
+ * Test of readInt method, of class ImportHelper.
+ */
+ //@Test
+ public void testReadInt() throws Exception {
+ System.out.println("readInt");
+ }
+
+ /**
+ * Test of readInteger method, of class ImportHelper.
+ */
+ //@Test
+ public void testReadInteger() throws Exception {
+ System.out.println("readInteger");
+ }
+
+ /**
+ * Test of readPeriod method, of class ImportHelper.
+ */
+ //@Test
+ public void testReadPeriod() throws Exception {
+ System.out.println("readPeriod");
+ }
+
+ /**
+ * Test of readDate method, of class ImportHelper.
+ */
+ @Test
+ public void testReadDate() throws Exception {
+ logger.info("readDate");
+
+ InputStream stream =
+ getClass().getResourceAsStream("/import/dates.csv");
+ CsvReader reader = new CsvReader(stream, Charset.forName("UTF-8"));
+ reader.readHeaders();
+
+ reader.readRecord();
+
+ // TEST1 : Date like JJ/MM/AAAA
+ // normal pattern : dd/MM/yyyy
+ DatedHeader header1 = new DatedHeader() {
+
+ @Override
+ public String datePattern() {
+ return "dd/MM/yyyy";
+ }
+
+ @Override
+ public String name() {
+ return "DATE_1";
+ }
+ };
+
+ Date res = ImportHelper.readDate(reader, header1);
+ Date ref = DateUtils.createDate(10, 2, 2010);
+ Assert.assertEquals(ref, res);
+
+ // TEST2 : Date like JJ/MM/AA
+ // same pattern as header1 : dd/MM/yyyy
+ DatedHeader header2 = new DatedHeader() {
+
+ @Override
+ public String datePattern() {
+ return "dd/MM/yyyy";
+ }
+
+ @Override
+ public String name() {
+ return "DATE_2";
+ }
+ };
+
+ res = ImportHelper.readDate(reader, header2);
+ Assert.assertEquals(ref, res);
+
+ // TEST3: date like MM/AAAA
+ // pattern without day : MM/yyyy
+ DatedHeader header3 = new DatedHeader() {
+
+ @Override
+ public String datePattern() {
+ return "MM/yyyy";
+ }
+
+ @Override
+ public String name() {
+ return "DATE_3";
+ }
+ };
+
+ res = ImportHelper.readDate(reader, header3);
+ Date ref2 = DateUtils.createDate(1, 2, 2010);
+ Assert.assertEquals(ref2, res);
+
+ // TEST4: date like JJ/MM/AA
+ // same pattern as header3 : MM/yyyy
+ DatedHeader header4 = new DatedHeader() {
+
+ @Override
+ public String datePattern() {
+ return "MM/yyyy";
+ }
+
+ @Override
+ public String name() {
+ return "DATE_4";
+ }
+ };
+
+ res = ImportHelper.readDate(reader, header4);
+ Assert.assertEquals(ref2, res);
+
+ }
+
+}
\ No newline at end of file
Property changes on: trunk/wao-business/src/test/java/fr/ifremer/wao/io/ImportHelperTest.java
___________________________________________________________________
Added: svn:keywords
+ "Author Date Id Revision HeadURL"
Added: trunk/wao-business/src/test/resources/import/dates.csv
===================================================================
--- trunk/wao-business/src/test/resources/import/dates.csv (rev 0)
+++ trunk/wao-business/src/test/resources/import/dates.csv 2010-03-29 16:17:48 UTC (rev 396)
@@ -0,0 +1,2 @@
+DATE_1,DATE_2,DATE_3,DATE_4
+10/02/2010,10/02/10,02/2010,10/02/10
\ No newline at end of file
Modified: trunk/wao-business/src/test/resources/log4j.properties
===================================================================
--- trunk/wao-business/src/test/resources/log4j.properties 2010-03-29 12:59:43 UTC (rev 395)
+++ trunk/wao-business/src/test/resources/log4j.properties 2010-03-29 16:17:48 UTC (rev 396)
@@ -8,6 +8,6 @@
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d [%p] %c{2} %m%n
-log4j.logger.fr.ifremer.wao=INFO
+log4j.logger.fr.ifremer.wao=DEBUG
log4j.logger.org.nuiton.util=INFO
log4j.logger.org.nuiton.util.beans.BinderProvider=ERROR
1
0
[Suiviobsmer-commits] r395 - in trunk/wao-ui/src/main: java/fr/ifremer/wao/ui/pages webapp
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
by fdesbois@users.labs.libre-entreprise.org 29 Mar '10
29 Mar '10
Author: fdesbois
Date: 2010-03-29 12:59:43 +0000 (Mon, 29 Mar 2010)
New Revision: 395
Modified:
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
trunk/wao-ui/src/main/webapp/Contacts.tml
Log:
Evo #2063 : Only administrator and coordinator can import/export contacts
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-27 20:00:39 UTC (rev 394)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-29 12:59:43 UTC (rev 395)
@@ -203,38 +203,54 @@
@Property
private UploadedFile contactsCsvFile;
+ /**
+ * Only administrator and coordinator can import/export contacts.
+ *
+ * @return true if import/export of contacts can be done
+ */
+ public boolean canImportExport() {
+ return user.isAdmin() ||
+ user.getUserRole().equals(UserRole.COORDINATOR);
+ }
+
@Log
void onSuccessFromImportContacts() throws WaoException {
- //importBoatsForm.clearErrors();
- try {
- ImportResults result = serviceContact.importContactCsv(user, contactsCsvFile.getStream());
- // Suppress persitant list of contacts
- contacts = null;
- layout.addInfo(result.getNbRowsImported() + " contacts importés, " +
- result.getNbRowsRefused() + " refusés.");
- for (String error : result.getErrors()) {
- layout.addInfo(error);
+ if (canImportExport()) {
+ try {
+ ImportResults result = serviceContact.importContactCsv(user,
+ contactsCsvFile.getStream());
+ // Suppress persitant list of contacts
+ contacts = null;
+ layout.addInfo(result.getNbRowsImported() + " contacts " +
+ "importés, " + result.getNbRowsRefused() +
+ " refusés.");
+ for (String error : result.getErrors()) {
+ layout.addInfo(error);
+ }
+ } catch (WaoBusinessException eee) {
+ layout.addError(eee.getMessage());
}
- } catch (WaoBusinessException eee) {
- layout.addError(eee.getMessage());
}
- //return importBoatsForm.getHasErrors() ? importBoatsForm : this;
}
StreamResponse onActionFromExportShowContacts() {
- return new ExportStreamResponse("wao-contacts") {
+ if (canImportExport()) {
+ return new ExportStreamResponse("wao-contacts") {
- @Override
- public InputStream getStream() throws IOException {
- InputStream result = null;
- try {
- result = serviceContact.exportContactCsv(getContactFilter());
- } catch (WaoException eee) {
- throw new IOException(eee);
+ @Override
+ public InputStream getStream() throws IOException {
+ InputStream result = null;
+ try {
+ result = serviceContact.exportContactCsv(
+ getContactFilter());
+ } catch (WaoException eee) {
+ throw new IOException(eee);
+ }
+ return result;
}
- return result;
- }
- };
+ };
+ }
+ return null;
}
/**************************** CONTACT LIST ********************************/
Modified: trunk/wao-ui/src/main/webapp/Contacts.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/Contacts.tml 2010-03-27 20:00:39 UTC (rev 394)
+++ trunk/wao-ui/src/main/webapp/Contacts.tml 2010-03-29 12:59:43 UTC (rev 395)
@@ -14,9 +14,11 @@
<a t:type="actionlink" t:id="showFilters" t:zone="so-contacts-filters">
recherche avancée
</a>
- <a t:type="actionlink" t:id="showImportExport" t:zone="so-contacts-importexport">
- import/export
- </a>
+ <t:if t:test="canImportExport()">
+ <a t:type="actionlink" t:id="showImportExport" t:zone="so-contacts-importexport">
+ import/export
+ </a>
+ </t:if>
</div>
<!-- FILTRES -->
<div t:type="zone" class="so-filters" t:id="filtersZone" t:visible="prop:filtersVisible" id="so-contacts-filters">
1
0
Author: tchemit
Date: 2010-03-27 20:00:39 +0000 (Sat, 27 Mar 2010)
New Revision: 394
Modified:
trunk/pom.xml
Log:
Utilisation de mavenpom4labs 2.0.7
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2010-03-26 18:26:03 UTC (rev 393)
+++ trunk/pom.xml 2010-03-27 20:00:39 UTC (rev 394)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4labs</artifactId>
- <version>2.0.6</version>
+ <version>2.0.7</version>
</parent>
<groupId>fr.ifremer</groupId>
1
0
[Suiviobsmer-commits] r393 - 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/service wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity wao-business/src/main/xmi wao-ui/src/main/java/fr/ifremer/wao/ui/components wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/resources/fr/ifremer/wao/ui/components wao-ui/src/main/webapp wao-ui/src/main/webapp/css
by fdesbois@users.labs.libre-entreprise.org 26 Mar '10
by fdesbois@users.labs.libre-entreprise.org 26 Mar '10
26 Mar '10
Author: fdesbois
Date: 2010-03-26 18:26:03 +0000 (Fri, 26 Mar 2010)
New Revision: 393
Modified:
trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java
trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java
trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml
trunk/wao-business/src/main/xmi/wao.properties
trunk/wao-business/src/main/xmi/wao.zargo
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FeedBack.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java
trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
trunk/wao-ui/src/main/webapp/SampleRowForm.tml
trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml
trunk/wao-ui/src/main/webapp/SamplingPlan.tml
trunk/wao-ui/src/main/webapp/css/sampling.css
Log:
- Evo #1960 : Manage comment (sampleRowLog) for coordinator on sampleRow (use sampleRowHistoric page)
- Migration -> change admin column by author from sampleRowLog
- Improve FeedBack and Layout for fatal errors using afterRender
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/PgMigrationCallback.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -42,4 +42,10 @@
queries.add("ALTER TABLE Contact RENAME state1 TO state;");
}
+ @Override
+ protected void changeSampleRowLogAdminColumn_1_1(List<String> queries) {
+ // Evo #1960 : change column name admin to author for sampleRowLog
+ queries.add("ALTER TABLE SampleRowLog RENAME admin TO author;");
+ }
+
}
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -47,9 +47,11 @@
List<String> queries = new ArrayList<String>();
- createUserRoleColumn_1_1(queries);
+// createUserRoleColumn_1_1(queries);
+//
+// changeContactStateColumn_1_1(queries);
- changeContactStateColumn_1_1(queries);
+ changeSampleRowLogAdminColumn_1_1(queries);
String[] strings = queries.toArray(new String[queries.size()]);
@@ -60,6 +62,9 @@
protected abstract void changeContactStateColumn_1_1(List<String> queries);
+ protected abstract void changeSampleRowLogAdminColumn_1_1(
+ List<String> queries);
+
@Override
public boolean askUser(Version dbVersion,
Version applicationVersion,
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 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -23,6 +23,7 @@
import fr.ifremer.wao.WaoContext;
import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.WaoModelDAOHelper;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Calendar;
@@ -31,6 +32,7 @@
import java.util.Iterator;
import java.util.List;
import org.apache.commons.lang.BooleanUtils;
+import org.nuiton.topia.TopiaContext;
import org.nuiton.util.DateUtils;
import org.nuiton.util.PeriodDates;
import org.slf4j.Logger;
@@ -269,4 +271,52 @@
return month != null;
}
+ @Override
+ public SampleRowLog getNewSampleRowLog(WaoUser user) {
+ SampleRowLog rowLog = new SampleRowLogImpl();
+ rowLog.setSampleRow(this);
+ rowLog.setAuthor(user);
+ return rowLog;
+ }
+
+ /**
+ * Save a sampleRowLog to the sampleRow. This log is used to comment the
+ * row. For a comment added by a coordinator, a mail will be sent to the
+ * admin.
+ *
+ * @param rowLog the sampleRowLog to save
+ * @throws WaoException
+ */
+ @Override
+ public void saveSampleRowLog(SampleRowLog rowLog) throws WaoException {
+ TopiaContext transaction = null;
+ try {
+ if (log.isInfoEnabled()) {
+ WaoUser author = rowLog.getAuthor();
+ log.info("W:[ saveSampleRowLog ] : " +
+ "authorName = " + author.getFullName() +
+ " _ authorRole = " + author.getUserRole());
+ }
+
+ transaction = WaoContext.getTopiaRootContext().beginTransaction();
+
+ SampleRowLogDAO logDAO =
+ WaoModelDAOHelper.getSampleRowLogDAO(transaction);
+
+ logDAO.create(rowLog);
+
+ transaction.commitTransaction();
+
+ // Send mail to admin if author is a coordinator :
+ // WaoContext.PROP_EMAIL_FROM
+
+ } catch (Exception eee) {
+ WaoContext.serviceException(transaction,
+ "Impossible d'enregistrer le commentaire écrit par "
+ + rowLog.getAuthor().getFullName(), eee);
+ } finally {
+ WaoContext.closeTransaction(transaction);
+ }
+ }
+
}
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 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -412,7 +412,8 @@
//transaction.closeContext();
} catch (Exception eee) {
WaoContext.serviceException(transaction,
- "Impossible de charger la ligne d'échantillon ayant pour identifiant : " + sampleRowId,
+ "Impossible de charger la ligne d'échantillon ayant pour" +
+ " identifiant : " + sampleRowId,
eee);
} finally {
WaoContext.closeTransaction(transaction);
@@ -421,6 +422,46 @@
}
@Override
+ public SampleRow getSampleRowByCode(WaoUser user, String sampleRowCode)
+ throws WaoException {
+ TopiaContext transaction = null;
+ SampleRow result = null;
+ try {
+ if (log.isInfoEnabled()) {
+ log.info("W:[ getSampleRowByCode ] : " +
+ "sampleRowCode = " + sampleRowCode);
+ }
+ transaction = rootContext.beginTransaction();
+
+ SampleRowDAO dao = WaoModelDAOHelper.getSampleRowDAO(transaction);
+
+ TopiaQuery query = dao.createQuery().
+ add(SampleRow.CODE, sampleRowCode);
+
+ if (!user.isAdmin()) {
+ query.add(SampleRow.COMPANY, user.getCompany());
+ }
+
+ result = dao.findByQuery(query);
+
+ if (result == null) {
+ throw new WaoBusinessException(Type.NOT_EXISTS,
+ ServiceSampling.class, "La ligne du plan avec " +
+ "pour code " + sampleRowCode + " est introuvable !");
+ }
+
+ } catch (Exception eee) {
+ WaoContext.serviceException(transaction,
+ "Impossible de charger la ligne " +
+ "d'échantillon ayant pour code : " + sampleRowCode,
+ eee);
+ } finally {
+ WaoContext.closeTransaction(transaction);
+ }
+ return result;
+ }
+
+ @Override
public void deleteSampleRow(SampleRow sampleRow) throws WaoException {
TopiaContext transaction = null;
try {
Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java
===================================================================
--- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceUserImpl.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -37,9 +37,9 @@
import fr.ifremer.wao.entity.WaoUserDAO;
import java.util.ArrayList;
import java.util.List;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.topia.TopiaContext;
import org.nuiton.topia.framework.TopiaQuery;
-import org.nuiton.topia.framework.TopiaQuery.Op;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -229,26 +229,44 @@
try {
transaction = rootContext.beginTransaction();
- String userType = user.isAdmin() ? "administrateur" : "observateur";
- String msgBegin = "L'" + userType + " '" + user.getLogin() + "' ne peut pas être supprimé";
- String msgEnd = "Vous pouvez cependant le désactiver pour qu'il ne puisse plus se connecter.";
+ String userType = StringUtils.lowerCase(
+ user.getUserRole().getLibelle());
+ String msgBegin = "L'" + userType + " '" + user.getLogin() + "'" +
+ " ne peut pas être supprimé";
+ String msgEnd = "Vous pouvez cependant le désactiver pour qu'il" +
+ " ne puisse plus se connecter.";
- if (user.isAdmin()) {
- SampleRowLogDAO logDAO = WaoModelDAOHelper.getSampleRowLogDAO(transaction);
- List<SampleRowLog> results = logDAO.findAllByAdmin(user);
+ boolean isCoordinator =
+ user.getUserRole().equals(UserRole.COORDINATOR);
+
+ if (user.isAdmin() || isCoordinator) {
+ SampleRowLogDAO logDAO =
+ WaoModelDAOHelper.getSampleRowLogDAO(transaction);
+ List<SampleRowLog> results = logDAO.findAllByAuthor(user);
if (!results.isEmpty()) {
- throw new WaoBusinessException(Type.ALREADY_EXISTS, this.getClass(),
- msgBegin + " car il a participé à la modification du plan d'échantillonnage. " + msgEnd);
+ String msg = "";
+ if (isCoordinator) {
+ msg = " car il a ajouté des commentaires sur le plan " +
+ "d'échantillonnage.";
+ } else {
+ msg = " car il a participé" +
+ " à la modification du plan d'échantillonnage. ";
+ }
+ throw new WaoBusinessException(Type.ALREADY_EXISTS,
+ this.getClass(), msgBegin + msg + msgEnd);
}
} else {
- ContactDAO contactDAO = WaoModelDAOHelper.getContactDAO(transaction);
+ ContactDAO contactDAO =
+ WaoModelDAOHelper.getContactDAO(transaction);
List<Contact> results = contactDAO.findAllByObserver(user);
if (!results.isEmpty()) {
- throw new WaoBusinessException(Type.ALREADY_EXISTS, this.getClass(),
- msgBegin + " car il est lié à plusieurs contacts existants. " + msgEnd);
+ throw new WaoBusinessException(Type.ALREADY_EXISTS,
+ this.getClass(),
+ msgBegin + " car il est lié à plusieurs contacts" +
+ " existants. " + msgEnd);
}
}
@@ -260,7 +278,8 @@
transaction.commitTransaction();
//transaction.closeContext();
} catch (Exception eee) {
- WaoContext.serviceException(transaction, "Impossible de créer ou de mettre à jour l'utilisateur", eee);
+ WaoContext.serviceException(transaction, "Impossible de créer ou" +
+ " de mettre à jour l'utilisateur", eee);
} finally {
WaoContext.closeTransaction(transaction);
}
Modified: trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml
===================================================================
--- trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/resources/oldmappings/WaoModel/1.1/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml 2010-03-26 18:26:03 UTC (rev 393)
@@ -8,6 +8,6 @@
<property name="logText" type="text" access="field" column="logText" node="logText"/>
<property name="comment" type="text" access="field" column="comment" node="comment"/>
<many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" node="sampleRow/@topiaId" embed-xml="false"/>
- <many-to-one name="admin" class="fr.ifremer.wao.entity.WaoUserImpl" column="admin" lazy="false" node="admin/@topiaId" embed-xml="false"/>
+ <many-to-one name="author" class="fr.ifremer.wao.entity.WaoUserImpl" column="author" lazy="false" node="author/@topiaId" embed-xml="false"/>
</class>
</hibernate-mapping>
Modified: trunk/wao-business/src/main/xmi/wao.properties
===================================================================
--- trunk/wao-business/src/main/xmi/wao.properties 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-business/src/main/xmi/wao.properties 2010-03-26 18:26:03 UTC (rev 393)
@@ -14,7 +14,7 @@
fr.ifremer.wao.entity.SampleRow.attribute.elligibleBoat.tagvalue.orderBy=companyActive
fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagvalue.lazy=false
fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagvalue.orderBy=topiaCreateDate desc
-fr.ifremer.wao.entity.SampleRowLog.attribute.admin.tagvalue.lazy=false
+fr.ifremer.wao.entity.SampleRowLog.attribute.author.tagvalue.lazy=false
fr.ifremer.wao.entity.FishingZone.attribute.sampleRow.tagvalue.orderBy=code
Modified: trunk/wao-business/src/main/xmi/wao.zargo
===================================================================
(Binary files differ)
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FeedBack.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FeedBack.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/FeedBack.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -22,8 +22,11 @@
import java.util.ArrayList;
import java.util.List;
+import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.MarkupWriter;
+import org.apache.tapestry5.annotations.Log;
+import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.ioc.annotations.Inject;
/**
@@ -49,6 +52,9 @@
*/
public class FeedBack {
+ @Parameter(defaultPrefix = BindingConstants.LITERAL, value= "true")
+ private boolean autoClear;
+
/** Messages d'erreur */
private List<String> errorMessages;
@@ -60,6 +66,8 @@
@Inject
private ComponentResources resources;
+ private boolean reload;
+
public FeedBack() {
errorMessages = new ArrayList<String>();
infoMessages = new ArrayList<String>();
@@ -78,7 +86,9 @@
}
writer.end();
}
- errorMessages.clear();
+ if (autoClear) {
+ errorMessages.clear();
+ }
// Rendu des messages d'info et vidage de la collection
if (!infoMessages.isEmpty()) {
@@ -124,4 +134,19 @@
public boolean hasErrors() {
return errors;
}
+
+ @Log
+ public void reload() {
+ reload = true;
+ }
+
+ public boolean hasBeeanReloaded() {
+ return reload;
+ }
+
+ @Log
+ public void clearErrors() {
+ errorMessages.clear();
+ reload = false;
+ }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -41,6 +41,7 @@
import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.services.Request;
+import org.slf4j.Logger;
/**
* Layout
@@ -89,12 +90,37 @@
@Inject
private Request request;
+ @Inject
+ private Logger logger;
+
+ private boolean fatal = false;
+
void setupRender() {
if(isCurrentUserExists() && !canShowPage()) {
- contentFeedback.addError("Vous n'êtes pas autorisé à accéder à cette page !");
+ contentFeedback.addError("Vous n'êtes pas autorisé à accéder" +
+ " à cette page !");
}
}
+ boolean afterRender() {
+ // Check if fatal errors has been added to the layout
+ // Reload the page if feedBack hasn't been reloaded yet to display
+ // errors
+ if (fatal && contentFeedback.hasErrors() &&
+ !contentFeedback.hasBeeanReloaded()) {
+ if (logger.isInfoEnabled()) {
+ logger.info("[ FATAL ] Reload the page to display" +
+ " errors");
+ }
+ contentFeedback.reload();
+ return false;
+ }
+ // Clear errors after page render
+ contentFeedback.clearErrors();
+ fatal = false;
+ return true;
+ }
+
/**
* Test if the current user in session is a valid user.
* Test topia id existence because WaoUser can be empty when session is lost
@@ -103,7 +129,6 @@
* @see fr.ifremer.wao.ui.services.AppModule#
* contributeApplicationStateManager(MappedConfiguration)
*/
- @Log
public boolean isCurrentUserExists() {
return StringUtils.isNotEmpty(currentUser.getTopiaId());
}
@@ -180,6 +205,38 @@
return true;
}
+ public boolean displayBody() {
+ return canShowPage() && !fatal;
+ }
+
+ /**
+ * Add an info message to the layout.
+ *
+ * @param message of the info
+ */
+ public void addInfo(String message) {
+ contentFeedback.addInfo(message);
+ }
+
+ /**
+ * Add an error to the layout : display the body any way.
+ *
+ * @param message of the error
+ */
+ public void addError(String message) {
+ contentFeedback.addError(message);
+ }
+
+ /**
+ * Add a fatal error to the layout : don't display the page body.
+ *
+ * @param message of the error
+ */
+ public void addFatal(String message) {
+ contentFeedback.addError(message);
+ fatal = true;
+ }
+
@Log
Object onSuccessFromConnexionForm() throws WaoException {
try {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Administration.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -146,9 +146,9 @@
void onSuccessFromImportFishingZones() {
try {
int result = serviceReferential.importFishingZoneCsv(fishingZoneCsvFile.getStream());
- layout.getFeedBack().addInfo(result + " zones de pêche importées");
+ layout.addInfo(result + " zones de pêche importées");
} catch (WaoException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
@@ -254,9 +254,9 @@
serviceUser.deleteUser(user);
user = null;
userId = null;
- layout.getFeedBack().addInfo("Utilisateur supprimé avec succès !");
+ layout.addInfo("Utilisateur supprimé avec succès !");
} catch (WaoBusinessException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
}
@@ -276,7 +276,7 @@
serviceUser.createUpdateUser(user, generatePassword);
userId = user.getId();
} catch (WaoBusinessException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
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 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -185,9 +185,9 @@
int[] result = serviceBoat.importBoatCsv(boatsCsvFile.getStream());
// Suppress persitant list of boats
boats = null;
- layout.getFeedBack().addInfo(result[0] + " navires importés dont " + result[1] + " nouveaux");
+ layout.addInfo(result[0] + " navires importés dont " + result[1] + " nouveaux");
} catch (WaoException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Contacts.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -210,13 +210,13 @@
ImportResults result = serviceContact.importContactCsv(user, contactsCsvFile.getStream());
// Suppress persitant list of contacts
contacts = null;
- layout.getFeedBack().addInfo(result.getNbRowsImported() + " contacts importés, " +
+ layout.addInfo(result.getNbRowsImported() + " contacts importés, " +
result.getNbRowsRefused() + " refusés.");
for (String error : result.getErrors()) {
- layout.getFeedBack().addInfo(error);
+ layout.addInfo(error);
}
} catch (WaoBusinessException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
//return importBoatsForm.getHasErrors() ? importBoatsForm : this;
}
@@ -622,7 +622,7 @@
oldComment = null;
contactEdited = null;
} catch (WaoException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
return this;
@@ -647,8 +647,7 @@
serviceContact.saveContact(contact, Boolean.FALSE);
contactSelectedId = contact.getTopiaId();
} else {
- layout.getFeedBack().
- addError("Un contact en cours existe déjà pour ce navire");
+ layout.addError("Un contact en cours existe déjà pour ce navire");
}
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ExceptionReport.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -56,13 +56,14 @@
public void reportException(Throwable eee) {
this.exception = getWaoException(eee);
if (exception != null) {
- layout.getFeedBack().addError(exception.getMessage());
+ layout.addError(exception.getMessage());
this.exception = exception.getCause();
} else {
this.exception = eee;
log.error("Unexpected exception", eee);
}
- layout.getFeedBack().addError("Erreur : " + this.exception.getClass().getSimpleName() + " : " + this.exception.getMessage());
+ layout.addError("Erreur : " + this.exception.getClass().getSimpleName()
+ + " : " + this.exception.getMessage());
}
protected Throwable getWaoException(Throwable eee) {
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -509,7 +509,8 @@
sampleRow = serviceSampling.getSampleRow(sampleRowId);
propertyChange = new WaoPropertyChangeListener();
for (SampleMonth month : sampleRow.getSampleMonth()) {
- month.addPropertyChangeListener(SampleMonth.EXPECTED_TIDES_VALUE, propertyChange);
+ month.addPropertyChangeListener(
+ SampleMonth.EXPECTED_TIDES_VALUE, propertyChange);
}
} else {
sampleRow = serviceSampling.getNewSampleRow();
@@ -520,9 +521,7 @@
public SampleRowLog getSampleRowLog() throws WaoException {
if (sampleRowLog == null) {
- sampleRowLog = new SampleRowLogImpl();
- sampleRowLog.setSampleRow(getSampleRow());
- sampleRowLog.setAdmin(user);
+ sampleRowLog = getSampleRow().getNewSampleRowLog(user);
}
return sampleRowLog;
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -21,17 +21,25 @@
package fr.ifremer.wao.ui.pages;
+import fr.ifremer.wao.WaoBusinessException;
import fr.ifremer.wao.WaoException;
+import fr.ifremer.wao.bean.UserRole;
import fr.ifremer.wao.entity.SampleRow;
import fr.ifremer.wao.entity.SampleRowLog;
+import fr.ifremer.wao.entity.WaoUser;
import fr.ifremer.wao.service.ServiceSampling;
import fr.ifremer.wao.ui.base.WaoPage;
+import fr.ifremer.wao.ui.components.FeedBack;
+import fr.ifremer.wao.ui.components.Layout;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Locale;
+import org.apache.commons.lang.StringUtils;
import org.apache.tapestry5.annotations.IncludeStylesheet;
+import org.apache.tapestry5.annotations.InjectComponent;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property;
+import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.slf4j.Logger;
@@ -51,16 +59,22 @@
@Override
public boolean isOnlyForAdmin() {
- return true;
+ return false;
}
@Inject
private Logger log;
+ @SessionState
+ private WaoUser user;
+
+ @InjectComponent
+ private Layout layout;
+
@Inject
private ServiceSampling serviceSampling;
- private String sampleRowId;
+ private String sampleRowCode;
@Persist
private SampleRow sampleRow;
@@ -68,25 +82,43 @@
@Property
private SampleRowLog sampleRowLog;
+ private SampleRowLog newLog;
+
+ @InjectComponent
+ private FeedBack addCommentInfo;
+
void onActivate(String id) {
- sampleRowId = id;
+ sampleRowCode = id;
}
String onPassivate() {
- return sampleRowId;
+ return sampleRowCode;
}
void setupRender() throws WaoException {
- sampleRow = null;
- getSampleRow();
+ if (StringUtils.isEmpty(sampleRowCode)) {
+ layout.addFatal("L'historique ne peut pas être affiché : " +
+ "Aucun code de ligne n'est spécifié dans l'url. ");
+ } else {
+
+ try {
+ sampleRow = null;
+ getSampleRow();
+ } catch (WaoBusinessException eee) {
+ layout.addFatal("L'historique ne peut pas être affiché : "
+ + eee.getMessage());
+ }
+
+ if (canAddComment()) {
+ addCommentInfo.addInfo("L'ajout d'un commentaire enverra" +
+ " un email aux administrateurs du programme Obsmer");
+ }
+ }
}
public SampleRow getSampleRow() throws WaoException {
if (sampleRow == null) {
- if (log.isInfoEnabled()) {
- log.info("BUSINESS REQUEST [getSampleRow]");
- }
- sampleRow = serviceSampling.getSampleRow(sampleRowId);
+ sampleRow = serviceSampling.getSampleRowByCode(user, sampleRowCode);
}
return sampleRow;
}
@@ -104,5 +136,22 @@
}
return content;
}
+
+ public SampleRowLog getNewLog() throws WaoException {
+ if (newLog == null) {
+ newLog = getSampleRow().getNewSampleRowLog(user);
+ }
+ return newLog;
+ }
+
+ public boolean canAddComment() {
+ return user.getUserRole().equals(UserRole.COORDINATOR);
+ }
+
+ public void onSuccessFromAddComment() throws WaoException {
+ if (canAddComment()) {
+ sampleRow.saveSampleRowLog(newLog);
+ }
+ }
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -114,13 +114,13 @@
void onSuccessFromImportSamplingPlan() throws WaoException {
try {
ImportResults result = serviceSampling.importSamplingPlanCsv(samplingPlanCsvFile.getStream());
- layout.getFeedBack().addInfo(result.getNbRowsImported() + " lignes du plan importés, " +
+ layout.addInfo(result.getNbRowsImported() + " lignes du plan importés, " +
result.getNbRowsRefused() + " refusés.");
for (String error : result.getErrors()) {
- layout.getFeedBack().addInfo(error);
+ layout.addInfo(error);
}
} catch (WaoBusinessException eee) {
- layout.getFeedBack().addError(eee.getMessage());
+ layout.addError(eee.getMessage());
}
}
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java 2010-03-26 18:26:03 UTC (rev 393)
@@ -96,7 +96,7 @@
userEditable.setPasswordChanged(true);
}
serviceUser.createUpdateUser(userEditable, false);
- layout.getFeedBack().addInfo("Modifications enregistrées avec succès !");
+ layout.addInfo("Modifications enregistrées avec succès !");
} catch (WaoBusinessException eee) {
userForm.recordError(eee.getMessage());
// if (log.isErrorEnabled()) {
Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml
===================================================================
--- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/Layout.tml 2010-03-26 18:26:03 UTC (rev 393)
@@ -72,8 +72,8 @@
</ul>
<div id="${contentId}">
- <t:feedback t:id="contentFeedback" />
- <t:if t:test="canShowPage()">
+ <t:feedback t:id="contentFeedback" t:autoClear="false"/>
+ <t:if t:test="displayBody()">
<t:body />
</t:if>
</div>
Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2010-03-26 18:26:03 UTC (rev 393)
@@ -171,7 +171,7 @@
</fieldset>
<fieldset class="clearfix">
<t:errors t:banner="message:errors-banner"/>
- <p><label>Enregistrement fait par : </label>${sampleRowLog.admin.fullName}</p>
+ <p><label>Enregistrement fait par : </label>${sampleRowLog.author.fullName}</p>
<t:unless t:test="createMode">
<p><label>Commentaire sur la modification* :</label></p>
<p><input t:type="textarea" t:id="updateComment" cols="50" rows="5" value="sampleRowLog.comment"/></p>
Modified: trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml 2010-03-26 18:26:03 UTC (rev 393)
@@ -4,14 +4,35 @@
<h1>Historique de la ligne ${sampleRow.code}</h1>
<p class="aright">créée le <t:output t:format="dateFormat" t:value="sampleRow.topiaCreateDate"/></p>
<hr />
+ <t:if t:test="canAddComment()">
+ <form t:type="form" t:id="addComment" class="comment-form" action="post">
+ <fieldset>
+ <legend>Ajouter un commentaire</legend>
+ <t:feedback t:id="addCommentInfo" />
+ <p>Auteur : ${newLog.author.fullName}</p>
+ <p><label t:type="label" for="newComment">Commentaire</label> :</p>
+ <p>
+ <textarea t:type="textarea" t:id="newComment" t:value="newLog.comment" cols="90" rows="3" t:validate="required">
+ ${newLog.comment}
+ </textarea>
+ </p>
+ <p class="aright"><input type="submit" t:type="submit" class="ico save" value="Save" title="Ajouter un nouveau commentaire" /></p>
+ </fieldset>
+ </form>
+ </t:if>
<div class="so-samplerow-log" t:type="loop" t:source="sampleRow.sampleRowLog" t:value="sampleRowLog">
- <p class="head">
- Modification du
+ <p class="head-${sampleRowLog.author.userRole.name()}">
+ <t:if t:test="sampleRowLog.author.admin">
+ Modification du
+ <p:else>Commentaire ajouté le</p:else>
+ </t:if>
<strong><t:output t:format="dateFormat" t:value="sampleRowLog.topiaCreateDate"/></strong>
- par <strong>${sampleRowLog.admin.fullName}</strong>
+ par <strong>${sampleRowLog.author.fullName}</strong>
</p>
- <p class="content"><t:outputraw value="content"/></p>
- <p>Commentaire : </p>
+ <t:if t:test="sampleRowLog.logText">
+ <p class="content"><t:outputraw value="content"/></p>
+ <p>Commentaire : </p>
+ </t:if>
<p class="comment">
${sampleRowLog.comment}
</p>
Modified: trunk/wao-ui/src/main/webapp/SamplingPlan.tml
===================================================================
--- trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/webapp/SamplingPlan.tml 2010-03-26 18:26:03 UTC (rev 393)
@@ -170,13 +170,13 @@
<img src="${asset:context:}/img/boat-unavailable-22px.png" alt="Navire impossible" title="Accès aux navires impossible, ligne terminée"/>
</p:else>
</t:if>
+ <a t:type="pagelink" t:page="sampleRowHistoric" t:context="row.code">
+ <img src="${asset:context:}/img/clock-22px.png" alt="Historique" title="Voir historique de la ligne"/>
+ </a>
<t:if t:test="user.admin">
<a t:type="pagelink" t:page="sampleRowForm" t:context="row.topiaId">
<img src="${asset:context:}/img/edit.png" alt="Modifier" title="Modifier la ligne"/>
</a>
- <a t:type="pagelink" t:page="sampleRowHistoric" t:context="row.topiaId">
- <img src="${asset:context:}/img/clock-22px.png" alt="Historique" title="Voir historique de la ligne"/>
- </a>
<t:unless t:test="row.hasSampleMonthRealTideTime()">
<a t:type="actionlink" t:id="deleteSampleRow" t:context="rowIndex" title="Supprimer la ligne d'échantillon"
t:mixins="confirm" t:message="Etes-vous sûr de vouloir supprimer définitivement la ligne ${row.code} du plan d\'échantillonnage ?">
Modified: trunk/wao-ui/src/main/webapp/css/sampling.css
===================================================================
--- trunk/wao-ui/src/main/webapp/css/sampling.css 2010-03-25 18:18:36 UTC (rev 392)
+++ trunk/wao-ui/src/main/webapp/css/sampling.css 2010-03-26 18:26:03 UTC (rev 393)
@@ -242,7 +242,19 @@
text-align: center;
}
-div#so-samplerow-historic div.so-samplerow-log p.head {
+div#so-samplerow-historic form.comment-form fieldset {
+ width: 50%;
+ margin-left: auto;
+ margin-right: auto;
+ padding: 10px;
+ margin-bottom: 10px;
+}
+
+div#so-samplerow-historic div.so-samplerow-log p.head-COORDINATOR {
+ color: #19A28D;
+}
+
+div#so-samplerow-historic div.so-samplerow-log p.head-ADMIN {
color: #007CC2;
}
1
0
[Suiviobsmer-commits] r392 - in trunk: . wao-business/src/main/filters wao-ui/src/main/resources
by fdesbois@users.labs.libre-entreprise.org 25 Mar '10
by fdesbois@users.labs.libre-entreprise.org 25 Mar '10
25 Mar '10
Author: fdesbois
Date: 2010-03-25 18:18:36 +0000 (Thu, 25 Mar 2010)
New Revision: 392
Modified:
trunk/README.txt
trunk/changelog.txt
trunk/wao-business/src/main/filters/Wao.properties
trunk/wao-ui/src/main/resources/log4j.properties
Log:
Evo #2229 : Add environment variable to change log home : use -Dwao.log.home=/path/to/log when starting server
Modified: trunk/README.txt
===================================================================
--- trunk/README.txt 2010-03-25 16:48:56 UTC (rev 391)
+++ trunk/README.txt 2010-03-25 18:18:36 UTC (rev 392)
@@ -15,3 +15,9 @@
--------------------------
Encodage UTF-8 obligatoire. Préconisation d'OpenOffice pour la sauvegarde des fichiers.
+
+Configuration au lancement
+--------------------------
+
+-Dconfig.file=/path/to/Wao.properties
+-Dwao.log.home=/path/to/log/folder
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-03-25 16:48:56 UTC (rev 391)
+++ trunk/changelog.txt 2010-03-25 18:18:36 UTC (rev 392)
@@ -9,6 +9,7 @@
Evolutions
++++++++++
+- [fdesbois] Evo #2229 : Gestion du chemin vers les logs de l'application
- [fdesbois] Evo #2226 : Amélioration gestion interne des enumérations
(ContactState)
- [fdesbois] Evo #2063 : Créer un profil "coordinateur" pour les sociétés
Modified: trunk/wao-business/src/main/filters/Wao.properties
===================================================================
--- trunk/wao-business/src/main/filters/Wao.properties 2010-03-25 16:48:56 UTC (rev 391)
+++ trunk/wao-business/src/main/filters/Wao.properties 2010-03-25 18:18:36 UTC (rev 392)
@@ -8,9 +8,11 @@
## Database location in user home
hibernate.connection.url=jdbc:h2:file:~/.local/wao/h2data
-## Logs for activityCalendar in user home
-wao.log.activityCalendar.access=${user.home}/.local/wao/log/activity-access.log
-wao.log.activityCalendar.import=${user.home}/.local/wao/log/activity.log
+## Logs for activityCalendar in wao.log.home
+## wao.log.home must be defined when starting server
+## ex : -Dwao.log.home=/home/user/.local/wao
+wao.log.activityCalendar.access=${wao.log.home}/activity-access.log
+wao.log.activityCalendar.import=${wao.log.home}/activity.log
## Config for sending Email
wao.email.host=smtp
@@ -21,4 +23,4 @@
wao.server.path=localhost:8080/wao
## Version (not necessary to override it)
-wao.version=1.0.3
\ No newline at end of file
+wao.version=1.1
\ No newline at end of file
Modified: trunk/wao-ui/src/main/resources/log4j.properties
===================================================================
--- trunk/wao-ui/src/main/resources/log4j.properties 2010-03-25 16:48:56 UTC (rev 391)
+++ trunk/wao-ui/src/main/resources/log4j.properties 2010-03-25 18:18:36 UTC (rev 392)
@@ -8,7 +8,9 @@
log4j.appender.console.Threshold=INFO
log4j.appender.globalfile=org.apache.log4j.RollingFileAppender
-log4j.appender.globalfile.File=/var/log/wao/wao.log
+# wao.log.home must be defined when starting server
+# ex : -Dwao.log.home=/home/user/.local/wao
+log4j.appender.globalfile.File=${wao.log.home}/wao.log
log4j.appender.globalfile.MaxFileSize=500KB
log4j.appender.globalfile.Append=true
log4j.appender.globalfile.MaxBackupIndex=10
1
0
[Suiviobsmer-commits] r391 - in trunk: . wao-ui/src/main/java/fr/ifremer/wao/ui/pages
by fdesbois@users.labs.libre-entreprise.org 25 Mar '10
by fdesbois@users.labs.libre-entreprise.org 25 Mar '10
25 Mar '10
Author: fdesbois
Date: 2010-03-25 16:48:56 +0000 (Thu, 25 Mar 2010)
New Revision: 391
Modified:
trunk/changelog.txt
trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java
Log:
Ano #2228 : NPE on reactivityIndicator if no data is retrieve from business
Modified: trunk/changelog.txt
===================================================================
--- trunk/changelog.txt 2010-03-25 13:34:12 UTC (rev 390)
+++ trunk/changelog.txt 2010-03-25 16:48:56 UTC (rev 391)
@@ -27,6 +27,9 @@
Anomalies
+++++++++
+- [fdesbois] Ano #2228 : Erreur d'affichage de la synthèse : réactivité de la
+ saisie dans Allegro
+
1.0.3 (patch)
-------------
Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java
===================================================================
--- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-25 13:34:12 UTC (rev 390)
+++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-03-25 16:48:56 UTC (rev 391)
@@ -420,7 +420,8 @@
if (allegroReactivity == null) {
Company company = !user.isAdmin() ? user.getCompany() : null;
allegroReactivity =
- serviceSynthesis.getContactDataInputDateReactivity(company, getPeriodForAllegroReactivity());
+ serviceSynthesis.getContactDataInputDateReactivity(company,
+ getPeriodForAllegroReactivity());
}
return allegroReactivity;
}
@@ -433,9 +434,13 @@
}
public Double getAllegroReactivityValue() throws WaoException {
- ContactAverageReactivity entry =
- (ContactAverageReactivity) CollectionUtils.get(getAllegroReactivity(), 0);
- return entry.getResult();
+ if (!getAllegroReactivity().isEmpty()) {
+ ContactAverageReactivity entry = (ContactAverageReactivity)
+ CollectionUtils.get(getAllegroReactivity(), 0);
+ return entry.getResult();
+ } else {
+ return 0.;
+ }
}
public String getAllegroReactivityStyle() throws WaoException {
1
0