[Suiviobsmer-commits] r508 - 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/i18n wao-business/src/main/resources/oldmappings/Wao/1.3/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/java/fr/ifremer/wao/ui/services wao-ui/src/main/webapp wao-ui/src/test/java/test/fr/
Author: fdesbois Date: 2010-06-11 15:45:32 +0000 (Fri, 11 Jun 2010) New Revision: 508 Log: Evo #2325 : - Add migration for SampleRowLog (need fromAdmin boolean) - Refactor creation of sampleRowLog (moved from sampleRow entity to serviceSampling) - Clean imports for WaoUser in ui Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties trunk/wao-business/src/main/resources/oldmappings/Wao/1.3/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.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/Connexion.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/java/fr/ifremer/wao/ui/services/AppModule.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ServiceAuthentication.java trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2010-06-11 15:45:32 UTC (rev 508) @@ -106,7 +106,7 @@ } @Override - protected void updateWaoUserRoleColumns_1_3(List<String> queries) { + protected void updateWaoUserRoleColumns_1_3a(List<String> queries) { // Update COORDINATOR queries.add("UPDATE WaoUser SET role = 4 WHERE role = 2;"); // Update OBSERVER @@ -114,7 +114,8 @@ // Update ADMIN queries.add("UPDATE WaoUser SET role = 1 WHERE role = 0;"); - // Update ReadOnly with role value if set to TRUE + // Update ReadOnly with role value if set to TRUE, otherwise initialize + // it with 0 queries.add("ALTER TABLE WaoUser ADD roleReadOnly INTEGER;"); queries.add("UPDATE WaoUser SET roleReadOnly = role WHERE readOnly = TRUE;"); queries.add("UPDATE WaoUser SET roleReadOnly = 0 WHERE readOnly = FALSE;"); @@ -122,5 +123,18 @@ // Clean readOnly old field queries.add("ALTER TABLE WaoUser DROP COLUMN readOnly;"); } + + @Override + protected void createSampleRowLogFromAdminColumn_1_3b(List<String> queries) { + queries.add("ALTER TABLE SampleRowLog ADD fromAdmin BOOLEAN;"); + // EXISTS will return TRUE for admin author and false for others + queries.add("UPDATE SampleRowLog A SET fromAdmin = EXISTS (" + + "SELECT B FROM SampleRowLog B, WaoUser U " + + "WHERE B.topiaId = A.topiaId " + + "AND B.author = U.topiaId" + + // Admin role = 1 + "AND U.role = 1);" + ); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoMigrationCallBack.java 2010-06-11 15:45:32 UTC (rev 508) @@ -59,8 +59,10 @@ protected abstract void createSampleMonthEstimatedTidesColumn_1_2b( List<String> queries); - protected abstract void updateWaoUserRoleColumns_1_3(List<String> queries); + protected abstract void updateWaoUserRoleColumns_1_3a(List<String> queries); + protected abstract void createSampleRowLogFromAdminColumn_1_3b(List<String> queries); + @Override public boolean askUser(Version dbVersion, Version applicationVersion, @@ -122,8 +124,10 @@ List<String> queries = new ArrayList <String>(); - updateWaoUserRoleColumns_1_3(queries); + updateWaoUserRoleColumns_1_3a(queries); + createSampleRowLogFromAdminColumn_1_3b(queries); + String[] strings = queries.toArray(new String[queries.size()]); executeSQL(tx, showSql, showProgression, strings); } 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2010-06-11 15:45:32 UTC (rev 508) @@ -31,6 +31,7 @@ import fr.ifremer.wao.WaoException; import fr.ifremer.wao.WaoDAOHelper; import fr.ifremer.wao.WaoProperty; +import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; import java.io.Serializable; import java.text.DateFormat; @@ -315,76 +316,77 @@ SampleMonth month = getSampleMonth(begin); return month != null; } +// +// @Override +// public SampleRowLog getNewSampleRowLog(ConnectedUser user) { +// SampleRowLog rowLog = new SampleRowLogImpl(); +// rowLog.setSampleRow(this); +// rowLog.setAuthor(user.getUser()); +// rowLog.setFromAdmin(user.isAdmin()); +// 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, WaoBusinessException { +// TopiaContext transaction = null; +// try { +// WaoUser author = rowLog.getAuthor(); +// if (log.isInfoEnabled()) { +// log.info("W:[ saveSampleRowLog ] : " + +// "authorName = " + author.getFullName() + +// " _ authorRole = " + author.getUserRoles()); +// } +// +// transaction = WaoUtils.beginTransaction(); +// +// SampleRowLogDAO logDAO = +// WaoDAOHelper.getSampleRowLogDAO(transaction); +// +// logDAO.create(rowLog); +// +// transaction.commitTransaction(); +// +// // Send mail to admin if author is a coordinator : +// if (author.hasUserRole(UserRole.COORDINATOR)) { +// String sampleRowCode = rowLog.getSampleRow().getCode(); +// String to = WaoProperty.EMAIL_CONTACT.getValue(); +// String subject = "[WAO] Ajout d'un commentaire sur la ligne " + +// sampleRowCode; +// String msg = "Bonjour,\n\n" + +// "Un nouveau commentaire a été ajouté par " + +// author.getFullName() + " de la société " + +// author.getCompany().getName() + " :\n " + +// "\t" + rowLog.getComment() + "\n\n" + +// "Vous pouvez consulter l'historique de la ligne " + +// sampleRowCode + " sur la page :\n" + +// "http://" + WaoProperty.SERVER_PATH.getValue() + +// "/samplerowhistoric/" + sampleRowCode + "\n\n" + +// "Cordialement,\n\n" + +// "L'Equipe WAO"; +// WaoUtils.sendEmail(to, subject, msg); +// } +// +// } catch (EmailException eee) { +// throw new WaoBusinessException(Type.SMTP_NOT_FOUND, this.getClass(), +// "Aucun serveur smtp disponible, aucun email n'a été" + +// " envoyé à " + rowLog.getAuthor().getLogin(), +// eee); +// } catch (Exception eee) { +// WaoUtils.treateError(transaction, eee, +// I18n.n_("wao.error.sampleRow.saveSampleRowLog"), +// rowLog.getAuthor().getFullName()); +// } finally { +// WaoUtils.closeTransaction(transaction); +// } +// } - @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, WaoBusinessException { - TopiaContext transaction = null; - try { - WaoUser author = rowLog.getAuthor(); - if (log.isInfoEnabled()) { - log.info("W:[ saveSampleRowLog ] : " + - "authorName = " + author.getFullName() + - " _ authorRole = " + author.getUserRoles()); - } - - transaction = WaoUtils.beginTransaction(); - - SampleRowLogDAO logDAO = - WaoDAOHelper.getSampleRowLogDAO(transaction); - - logDAO.create(rowLog); - - transaction.commitTransaction(); - - // Send mail to admin if author is a coordinator : - if (author.hasUserRole(UserRole.COORDINATOR)) { - String sampleRowCode = rowLog.getSampleRow().getCode(); - String to = WaoProperty.EMAIL_CONTACT.getValue(); - String subject = "[WAO] Ajout d'un commentaire sur la ligne " + - sampleRowCode; - String msg = "Bonjour,\n\n" + - "Un nouveau commentaire a été ajouté par " + - author.getFullName() + " de la société " + - author.getCompany().getName() + " :\n " + - "\t" + rowLog.getComment() + "\n\n" + - "Vous pouvez consulter l'historique de la ligne " + - sampleRowCode + " sur la page :\n" + - "http://" + WaoProperty.SERVER_PATH.getValue() + - "/samplerowhistoric/" + sampleRowCode + "\n\n" + - "Cordialement,\n\n" + - "L'Equipe WAO"; - WaoUtils.sendEmail(to, subject, msg); - } - - } catch (EmailException eee) { - throw new WaoBusinessException(Type.SMTP_NOT_FOUND, this.getClass(), - "Aucun serveur smtp disponible, aucun email n'a été" + - " envoyé à " + rowLog.getAuthor().getLogin(), - eee); - } catch (Exception eee) { - WaoUtils.treateError(transaction, eee, - I18n.n_("wao.error.sampleRow.saveSampleRowLog"), - rowLog.getAuthor().getFullName()); - } finally { - WaoUtils.closeTransaction(transaction); - } - } - } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,6 +27,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Date; import java.util.List; import org.apache.commons.lang.StringUtils; import org.nuiton.util.PeriodDates; @@ -155,5 +156,10 @@ removedBoats); } } + + @Override + public Date getCreateDate() { + return getTopiaCreateDate(); + } } 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,25 +27,62 @@ import com.csvreader.CsvReader; import com.csvreader.CsvWriter; -import fr.ifremer.wao.*; +import fr.ifremer.wao.WaoBusinessException; +import fr.ifremer.wao.WaoBusinessException.Type; +import fr.ifremer.wao.WaoContext; +import fr.ifremer.wao.WaoDAOHelper; +import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.WaoProperty; +import fr.ifremer.wao.WaoQueryBuilder; import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.io.ImportHelper; -import fr.ifremer.wao.WaoBusinessException.Type; import fr.ifremer.wao.bean.FacadeRow; import fr.ifremer.wao.bean.FacadeRowImpl; import fr.ifremer.wao.bean.ImportResults; import fr.ifremer.wao.bean.ImportResultsImpl; import fr.ifremer.wao.bean.SamplingFilter; -import fr.ifremer.wao.entity.*; +import fr.ifremer.wao.bean.UserRole; +import fr.ifremer.wao.entity.Boat; +import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.CompanyDAO; +import fr.ifremer.wao.entity.ElligibleBoat; +import fr.ifremer.wao.entity.ElligibleBoatDAO; +import fr.ifremer.wao.entity.FishingZone; +import fr.ifremer.wao.entity.FishingZoneDAO; +import fr.ifremer.wao.entity.Profession; +import fr.ifremer.wao.entity.ProfessionDAO; +import fr.ifremer.wao.entity.ProfessionImpl; +import fr.ifremer.wao.entity.SampleMonth; +import fr.ifremer.wao.entity.SampleMonthDAO; +import fr.ifremer.wao.entity.SampleMonthImpl; +import fr.ifremer.wao.entity.SampleRow; +import fr.ifremer.wao.entity.SampleRowDAO; +import fr.ifremer.wao.entity.SampleRowImpl; +import fr.ifremer.wao.entity.SampleRowLog; +import fr.ifremer.wao.entity.SampleRowLogDAO; +import fr.ifremer.wao.entity.SampleRowLogImpl; +import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.io.ImportHelper; +import fr.ifremer.wao.io.SamplingExport; import fr.ifremer.wao.io.WaoCsvHeader.FISHING_ZONE; import fr.ifremer.wao.io.WaoCsvHeader.SAMPLING; -import fr.ifremer.wao.io.SamplingExport; +import org.apache.commons.lang.StringUtils; +import org.apache.commons.mail.EmailException; +import org.nuiton.topia.TopiaContext; +import org.nuiton.topia.TopiaException; +import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.framework.TopiaQuery.Op; +import org.nuiton.util.DateUtils; +import org.nuiton.util.PeriodDates; +import org.nuiton.util.beans.BinderBuilder; +import org.nuiton.util.beans.BinderProvider; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; import java.io.InputStream; -import java.lang.reflect.Array; import java.text.DateFormat; import java.text.NumberFormat; import java.text.ParseException; @@ -58,17 +95,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import org.apache.commons.lang.StringUtils; -import org.nuiton.topia.TopiaContext; -import org.nuiton.topia.TopiaException; -import org.nuiton.topia.framework.TopiaQuery; -import org.nuiton.topia.framework.TopiaQuery.Op; -import org.nuiton.util.DateUtils; -import org.nuiton.util.PeriodDates; -import org.nuiton.util.beans.BinderBuilder; -import org.nuiton.util.beans.BinderProvider; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; /** * ServiceSamplingImpl @@ -243,7 +269,10 @@ if (log.isDebugEnabled()) { log.debug("update row : " + row); } + // Not useful, sampleRowLog is instantiate using getNewSampleRowLog(SampleRow, ConnectedUser); rowLog.setSampleRow(row); + rowLog.setFromAdmin(true); + rowDAO.update(row); if (log.isDebugEnabled()) { @@ -560,7 +589,64 @@ return newProfession; } + @Override + public SampleRowLog executeGetNewSampleRowLog(SampleRow row, + ConnectedUser user) { + SampleRowLog rowLog = new SampleRowLogImpl(); + rowLog.setSampleRow(row); + rowLog.setAuthor(user.getUser()); + rowLog.setFromAdmin(user.isAdmin()); + 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 transaction + * @param rowLog the sampleRowLog to save + * @throws WaoBusinessException SMTP error when sending email to admin + */ + @Override + public void executeCreateSampleRowLog(TopiaContext transaction, SampleRowLog rowLog) + throws WaoBusinessException, TopiaException { + + WaoDAOHelper.getSampleRowLogDAO(transaction).create(rowLog); + + transaction.commitTransaction(); + + try { + WaoUser author = rowLog.getAuthor(); + // Send mail to admin if author is a coordinator : + if (author.hasUserRole(UserRole.COORDINATOR)) { + String sampleRowCode = rowLog.getSampleRow().getCode(); + String to = WaoProperty.EMAIL_CONTACT.getValue(); + String subject = "[WAO] Ajout d'un commentaire sur la ligne " + + sampleRowCode; + String msg = "Bonjour,\n\n" + + "Un nouveau commentaire a été ajouté par " + + author.getFullName() + " de la société " + + author.getCompany().getName() + " :\n " + + "\t" + rowLog.getComment() + "\n\n" + + "Vous pouvez consulter l'historique de la ligne " + + sampleRowCode + " sur la page :\n" + + "http://" + WaoProperty.SERVER_PATH.getValue() + + "/samplerowhistoric/" + sampleRowCode + "\n\n" + + "Cordialement,\n\n" + + "L'Equipe WAO"; + context.sendEmail(to, subject, msg); + } + + } catch (EmailException eee) { + throw new WaoBusinessException(Type.SMTP_NOT_FOUND, this.getClass(), + "Aucun serveur smtp disponible, aucun email n'a été" + + " envoyé à " + rowLog.getAuthor().getLogin(), + eee); + } + } + + /** * Prepare the Binder for Profession copy. This method is called in * service constructor. The copy from two Profession will be available * anywhere using BinderProvider.get(Profession.class).copy(source, dest); Modified: trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/resources/i18n/wao-business-en_GB.properties 2010-06-11 15:45:32 UTC (rev 508) @@ -39,6 +39,7 @@ wao.error.serviceReferential.getProfessions= wao.error.serviceReferential.getSectors= wao.error.serviceReferential.importFishingZoneCsv= +wao.error.serviceSampling.createSampleRowLog= wao.error.serviceSampling.createUpdateSampleRow= wao.error.serviceSampling.deleteSampleRow= wao.error.serviceSampling.exportSamplingPlanCsv= @@ -46,6 +47,7 @@ wao.error.serviceSampling.getNewSampleMonth= wao.error.serviceSampling.getNewSampleRow= wao.error.serviceSampling.getNewSampleRowCode= +wao.error.serviceSampling.getNewSampleRowLog= wao.error.serviceSampling.getPrograms= wao.error.serviceSampling.getSampleRow= wao.error.serviceSampling.getSampleRowByCode= Modified: trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/resources/i18n/wao-business-fr_FR.properties 2010-06-11 15:45:32 UTC (rev 508) @@ -38,6 +38,7 @@ wao.error.serviceReferential.getProfessions=Impossible de charger la liste des m\u00E9tiers wao.error.serviceReferential.getSectors=Impossible de charger la liste des zones de p\u00EAche wao.error.serviceReferential.importFishingZoneCsv=Probl\u00E8me d'import du fichier CSV. V\u00E9rifiez l'en-t\u00EAte du fichier \: [ PECHE_DIVISION,PECHE_ZONE,PECHE_FACADE ]. Voir documentation pour plus de d\u00E9tails. +wao.error.serviceSampling.createSampleRowLog= wao.error.serviceSampling.createUpdateSampleRow=Impossible de sauvegarder la ligne d'\u00E9chantillon wao.error.serviceSampling.deleteSampleRow=Impossible de supprimer la ligne d'\u00E9chantillon \: %1$s wao.error.serviceSampling.exportSamplingPlanCsv=Impossible d'exporter le plan d'\u00E9chantillonnage sur la p\u00E9riode du %1$s au %2$s @@ -45,6 +46,7 @@ wao.error.serviceSampling.getNewSampleMonth= wao.error.serviceSampling.getNewSampleRow= wao.error.serviceSampling.getNewSampleRowCode=Impossible de r\u00E9cup\u00E9rer un nouveau code pour une ligne d'\u00E9chantillonnage +wao.error.serviceSampling.getNewSampleRowLog= wao.error.serviceSampling.getPrograms=Impossible de charger la liste des programmes wao.error.serviceSampling.getSampleRow=Impossible de charger la ligne d'\u00E9chantillon ayant pour identifiant \: %1$s wao.error.serviceSampling.getSampleRowByCode=Impossible de charger la ligne d'\u00E9chantillon ayant pour code %1$s Modified: trunk/wao-business/src/main/resources/oldmappings/Wao/1.3/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml =================================================================== --- trunk/wao-business/src/main/resources/oldmappings/Wao/1.3/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-business/src/main/resources/oldmappings/Wao/1.3/fr/ifremer/wao/entity/SampleRowLogImpl.hbm.xml 2010-06-11 15:45:32 UTC (rev 508) @@ -7,6 +7,7 @@ <property name="topiaCreateDate" type="timestamp" node="@topiaCreateDate"/> <property name="logText" type="text" access="field" column="logText" node="logText"/> <property name="comment" type="text" access="field" column="comment" node="comment"/> + <property name="fromAdmin" type="boolean" access="field" column="fromAdmin" node="fromAdmin"/> <many-to-one name="sampleRow" class="fr.ifremer.wao.entity.SampleRowImpl" column="sampleRow" node="sampleRow/@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> Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/Layout.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,7 +27,6 @@ import fr.ifremer.wao.WaoProperty; import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.ui.pages.Index; import fr.ifremer.wao.ui.services.ServiceAuthentication; import fr.ifremer.wao.ui.services.WaoManager; @@ -103,7 +102,7 @@ /** * Test if the current user in session is a valid user. - * Test topia id existence because WaoUser can be empty when session is lost + * Test topia id existence because ConnectedUser can be empty when session is lost * * @return true if the current user is a valide user (not empty). * @see fr.ifremer.wao.ui.services.AppModule# 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/BoatActivityCalendar.java 2010-06-11 15:45:32 UTC (rev 508) @@ -26,7 +26,6 @@ package fr.ifremer.wao.ui.pages; import fr.ifremer.wao.WaoBusinessException; -import fr.ifremer.wao.WaoException; import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.ActivityCalendar; @@ -34,22 +33,21 @@ import fr.ifremer.wao.entity.ActivityProfession; import fr.ifremer.wao.entity.ActivityZone; import fr.ifremer.wao.entity.Boat; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceBoat; import fr.ifremer.wao.ui.components.Layout; import fr.ifremer.wao.ui.data.RequiresAuthentication; -import java.util.Collections; -import java.util.List; 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.nuiton.util.DateUtils; import org.slf4j.Logger; +import java.util.Collections; +import java.util.List; + /** * ActivityCalendarPage * 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,13 +27,17 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.bean.*; +import fr.ifremer.wao.bean.BoatFilter; +import fr.ifremer.wao.bean.BoatFilterImpl; +import fr.ifremer.wao.bean.CompanyBoatInfos; +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatInfos; import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.Contact; import fr.ifremer.wao.entity.ElligibleBoat; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.entity.Profession; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.service.ServiceBoat; @@ -41,21 +45,14 @@ import fr.ifremer.wao.service.ServiceSampling; import fr.ifremer.wao.service.ServiceUser; import fr.ifremer.wao.ui.base.AbstractFilteredPage; -import fr.ifremer.wao.ui.data.*; -import fr.ifremer.wao.ui.data.GenericSelectModel; import fr.ifremer.wao.ui.components.FeedBack; import fr.ifremer.wao.ui.components.Layout; +import fr.ifremer.wao.ui.data.BoatDataSource; +import fr.ifremer.wao.ui.data.BusinessUtils; +import fr.ifremer.wao.ui.data.ExportStreamResponse; +import fr.ifremer.wao.ui.data.GenericSelectModel; +import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.services.WaoManager; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.io.InputStream; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.Calendar; -import java.util.Date; -import java.util.GregorianCalendar; -import java.util.List; -import java.util.zip.GZIPInputStream; import org.apache.commons.lang.BooleanUtils; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.Block; @@ -79,6 +76,17 @@ import org.apache.tapestry5.upload.services.UploadedFile; import org.slf4j.Logger; +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Calendar; +import java.util.Date; +import java.util.GregorianCalendar; +import java.util.List; +import java.util.zip.GZIPInputStream; + /** * Boats * Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Connexion.java 2010-06-11 15:45:32 UTC (rev 508) @@ -6,13 +6,10 @@ import fr.ifremer.wao.WaoException; import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceUser; import fr.ifremer.wao.ui.components.FeedBack; import fr.ifremer.wao.ui.services.ServiceAuthentication; -import org.apache.tapestry5.EventContext; import org.apache.tapestry5.Link; -import org.apache.tapestry5.OptionModel; import org.apache.tapestry5.PersistenceConstants; import org.apache.tapestry5.RenderSupport; import org.apache.tapestry5.SelectModel; @@ -21,18 +18,14 @@ 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.internal.OptionModelImpl; import org.apache.tapestry5.internal.SelectModelImpl; -import org.apache.tapestry5.internal.services.PartialMarkupDocumentLinker; import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.json.JSONArray; import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.services.PageRenderLinkSource; -import org.apache.tapestry5.services.Request; import org.slf4j.Logger; -import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -118,7 +111,7 @@ } /** - * ON_CHANGE :: Callback method for blur event on Login textfield component. + * ON_CHANGE :: Callback method for change event on Login textfield component. * Login will be checked to refresh the userRole select using {@link * JSONObject} that contains data for select options to display in javascript. * 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,6 +27,7 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Company; @@ -36,7 +37,6 @@ import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowLog; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceBoat; import fr.ifremer.wao.service.ServiceReferential; import fr.ifremer.wao.service.ServiceSampling; @@ -45,11 +45,6 @@ import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.data.WaoPropertyChangeListener; import fr.ifremer.wao.ui.services.WaoManager; -import java.text.DateFormat; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; import org.apache.commons.lang.StringUtils; import org.apache.tapestry5.ComponentResources; import org.apache.tapestry5.EventContext; @@ -72,6 +67,12 @@ import org.nuiton.util.PeriodDates; import org.slf4j.Logger; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; + /** * SampleRowForm * @@ -100,7 +101,7 @@ @SessionState @Property - private WaoUser user; + private ConnectedUser user; @Inject private PropertyAccess propertyAccess; @@ -513,7 +514,7 @@ public SampleRowLog getSampleRowLog() throws WaoException { if (sampleRowLog == null) { - sampleRowLog = getSampleRow().getNewSampleRowLog(user); + sampleRowLog = serviceSampling.getNewSampleRowLog(getSampleRow(), 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowHistoric.java 2010-06-11 15:45:32 UTC (rev 508) @@ -31,14 +31,10 @@ 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.components.FeedBack; import fr.ifremer.wao.ui.components.Layout; import fr.ifremer.wao.ui.data.RequiresAuthentication; -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; @@ -48,6 +44,10 @@ import org.apache.tapestry5.ioc.annotations.Inject; import org.slf4j.Logger; +import java.text.DateFormat; +import java.text.SimpleDateFormat; +import java.util.Locale; + /** * SampleRowHistoric * @@ -136,23 +136,17 @@ public String getLogStyle() { String styleClass = "head-"; - if (sampleRowLog.getAuthor().hasUserRole(UserRole.ADMIN)) { + if (sampleRowLog.getFromAdmin()) { styleClass += "admin"; - } else if (sampleRowLog.getAuthor().hasUserRole(UserRole.COORDINATOR)) { + } else { styleClass += "company"; } return styleClass; } - public boolean isAdminAuthor() { - // Note : maybe problematic way if admin role is removed from user - // Maybe need add admin field in sampleRowLog - return sampleRowLog.getAuthor().hasUserRole(UserRole.ADMIN); - } - public SampleRowLog getNewLog() throws WaoBusinessException { if (newLog == null) { - newLog = getSampleRow().getNewSampleRowLog(user.getUser()); + newLog = serviceSampling.getNewSampleRowLog(getSampleRow(), user); } return newLog; } @@ -165,7 +159,7 @@ public void onSuccessFromAddComment() throws WaoException { if (canAddComment()) { try { - sampleRow.saveSampleRowLog(newLog); + serviceSampling.createSampleRowLog(newLog); } catch (WaoBusinessException eee) { layout.addInfo(eee.getMessage()); } 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SamplingPlan.java 2010-06-11 15:45:32 UTC (rev 508) @@ -27,24 +27,20 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.bean.*; +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.FacadeRow; +import fr.ifremer.wao.bean.ImportResults; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.SamplingFilterImpl; import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceReferential; import fr.ifremer.wao.service.ServiceSampling; import fr.ifremer.wao.ui.base.AbstractFilteredPage; import fr.ifremer.wao.ui.components.Layout; import fr.ifremer.wao.ui.data.ExportStreamResponse; import fr.ifremer.wao.ui.data.RequiresAuthentication; -import java.io.IOException; -import java.io.InputStream; -import java.text.DateFormat; -import java.text.NumberFormat; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.List; import org.apache.tapestry5.StreamResponse; import org.apache.tapestry5.annotations.IncludeStylesheet; import org.apache.tapestry5.annotations.InjectComponent; @@ -61,6 +57,14 @@ import org.nuiton.util.StringUtil.ToString; import org.slf4j.Logger; +import java.io.IOException; +import java.io.InputStream; +import java.text.DateFormat; +import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; + /** * SampingPlan * 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Synthesis.java 2010-06-11 15:45:32 UTC (rev 508) @@ -26,9 +26,15 @@ package fr.ifremer.wao.ui.pages; import fr.ifremer.wao.WaoException; -import fr.ifremer.wao.bean.*; +import fr.ifremer.wao.bean.BoardingResult; +import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.ContactAverageReactivity; +import fr.ifremer.wao.bean.ContactState; +import fr.ifremer.wao.bean.ContactStateStatistics; +import fr.ifremer.wao.bean.SamplingFilter; +import fr.ifremer.wao.bean.SamplingFilterImpl; +import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceSynthesis; import fr.ifremer.wao.ui.base.AbstractFilteredPage; import fr.ifremer.wao.ui.data.BusinessUtils; @@ -36,15 +42,6 @@ import fr.ifremer.wao.ui.data.ChartUtils.ChartType; import fr.ifremer.wao.ui.data.RequiresAuthentication; import fr.ifremer.wao.ui.data.SynthesisId; -import java.text.DateFormat; -import java.text.NumberFormat; -import java.text.SimpleDateFormat; -import java.util.Collection; -import java.util.Date; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.SortedMap; import org.apache.commons.collections.CollectionUtils; import org.apache.tapestry5.Block; import org.apache.tapestry5.ComponentResources; @@ -61,6 +58,16 @@ import org.nuiton.util.PeriodDates; import org.slf4j.Logger; +import java.text.DateFormat; +import java.text.NumberFormat; +import java.text.SimpleDateFormat; +import java.util.Collection; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.SortedMap; + /** * Synthesis * 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-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/UserProfile.java 2010-06-11 15:45:32 UTC (rev 508) @@ -28,6 +28,7 @@ import fr.ifremer.wao.WaoBusinessException; import fr.ifremer.wao.WaoBusinessException.Type; import fr.ifremer.wao.WaoException; +import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceUser; import fr.ifremer.wao.ui.components.Layout; @@ -58,7 +59,7 @@ private Layout layout; @SessionState - private WaoUser user; + private ConnectedUser user; private WaoUser userEditable; @@ -73,7 +74,7 @@ public WaoUser getUserEditable() { if (userEditable == null) { - userEditable = user; + userEditable = user.getUser(); } return userEditable; } Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/AppModule.java 2010-06-11 15:45:32 UTC (rev 508) @@ -232,7 +232,7 @@ // } /** - * Used to instanciate SessionState WaoUser when session expires. + * Used to instanciate SessionState ConnectedUser when session expires. * * @param configuration to add the ApplicationStateCreator. * @param serviceAuthentication used to instantiate the new user Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ServiceAuthentication.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ServiceAuthentication.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/ServiceAuthentication.java 2010-06-11 15:45:32 UTC (rev 508) @@ -2,7 +2,6 @@ package fr.ifremer.wao.ui.services; import fr.ifremer.wao.bean.ConnectedUser; -import fr.ifremer.wao.entity.WaoUser; /** * ServiceAuthentication Modified: trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/main/webapp/SampleRowHistoric.tml 2010-06-11 15:45:32 UTC (rev 508) @@ -51,11 +51,11 @@ </t:if> <div class="so-samplerow-log" t:type="loop" t:source="sampleRow.sampleRowLog" t:value="sampleRowLog"> <p class="${logStyle}"> - <t:if t:test="adminAuthor"> + <t:if t:test="sampleRowLog.fromAdmin"> Modification du <p:else>Commentaire ajouté le</p:else> </t:if> - <strong><t:output t:format="dateFormat" t:value="sampleRowLog.topiaCreateDate"/></strong> + <strong><t:output t:format="dateFormat" t:value="sampleRowLog.createDate"/></strong> par <strong>${sampleRowLog.author.fullName}</strong> </p> <t:if t:test="sampleRowLog.logText"> Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/AbstractApplicationTest.java 2010-06-11 15:45:32 UTC (rev 508) @@ -29,7 +29,6 @@ import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Company; -import fr.ifremer.wao.entity.WaoUser; import test.fr.ifremer.wao.ui.demo.DemoModule; import fr.ifremer.wao.ui.services.AppModule; import org.apache.tapestry5.ioc.annotations.Inject; Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/demo/pages/LayoutDemo.java 2010-06-11 15:45:32 UTC (rev 508) @@ -25,7 +25,7 @@ package test.fr.ifremer.wao.ui.demo.pages; -import fr.ifremer.wao.entity.WaoUser; +import fr.ifremer.wao.bean.ConnectedUser; import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.ioc.annotations.Inject; import org.slf4j.Logger; @@ -43,7 +43,7 @@ private Logger logger; @SessionState - private WaoUser user; + private ConnectedUser user; void setupRender() { if (logger.isDebugEnabled()) { Modified: trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java =================================================================== --- trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-06-11 14:51:13 UTC (rev 507) +++ trunk/wao-ui/src/test/java/test/fr/ifremer/wao/ui/pages/ConnectionTest.java 2010-06-11 15:45:32 UTC (rev 508) @@ -31,7 +31,6 @@ import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.News; -import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.service.ServiceNews; import fr.ifremer.wao.service.ServiceUser; import java.util.ArrayList;
participants (1)
-
fdesbois@users.labs.libre-entreprise.org