Author: bleny Date: 2011-07-04 10:37:34 +0000 (Mon, 04 Jul 2011) New Revision: 1368 Log: minor fixes for ObsDeb Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/Fixtures.java trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/ObsMerFixtures.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts_fr.properties trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties trunk/wao-ui/src/main/webapp/Boats.tml trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/WaoContextImpl.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -53,7 +53,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.InputStream; import java.nio.charset.Charset; import java.util.Date; import java.util.Locale; Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -293,6 +293,27 @@ } } + if (success && contact.getObservationType() == ObservationType.FIELD_WORK_OBSERVATION + && contact.getContactState() == ContactState.OBSERVATION_NOT_DONE) { + success = false; + message = WaoUtils._( + "wao.business.contact.validation.wrongStateForObservationType", + contact.getContactState(), contact.getObservationType()); + } + + // the length of the observation on the work field must not be less + // than one minute. + if (success && contact.getObservationType() != ObservationType.PHONE_CALL + && contact.getContactState() == ContactState.OBSERVATION_DONE + && contact.getObservationBeginDate() != null + && contact.getObservationEndDate() != null + && DateUtil.getDifferenceInMinutes( + contact.getObservationBeginDate(), + contact.getObservationEndDate()) < 1) { + success = false; + message = WaoUtils._("wao.business.contact.validation.missingHoursOfBeginEndObservation"); + } + } else { // Validation for saving contact depends on contactState Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -1528,7 +1528,7 @@ Date toDate = context.getCurrentDate(); if (connectedUser.isObsDeb() && connectedUser.isObserver()) { // observer only need to see what he has to do in the next weeks - fromDate = DateUtils.addWeeks(fromDate, -1); // needed for phone sampling plan + fromDate = DateUtils.addMonths(fromDate, -1); // needed for phone sampling plan toDate = DateUtils.addMonths(toDate, 1); } else { // in the firsts months of a new year go from now to 6 months before Modified: trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-07-04 10:37:34 UTC (rev 1368) @@ -132,6 +132,7 @@ wao.business.contact.validation.commentMissingForState=You must give a comment for state '%s' wao.business.contact.validation.contactStateMotifMissing=You must precise a motif for the refusal wao.business.contact.validation.dataReliabilityMissingForValidation=You must provide data reliability before validating +wao.business.contact.validation.missingHoursOfBeginEndObservation=You must provide accurate time for the beginning and the end of observation wao.business.entity.UserProfile.description=%s on %s%s wao.business.mammalsCapture.mail.message=Hello,\n\nAn observer of the ObsMer program provided to WAO the following information\:\n\nTide\: %s\nProfession\: %s\n\nAccidental capture\:\n%s\n\nBest regards,\n\nObsmer program\nhttp\://www.ifremer.fr/wao wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information about an accidental capture Modified: trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties =================================================================== --- trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-07-04 10:37:34 UTC (rev 1368) @@ -133,6 +133,7 @@ wao.business.contact.validation.commentMissingForState=Il faut préciser un commentaire pour l'état '%s' wao.business.contact.validation.contactStateMotifMissing=Il faut préciser un motif de refus wao.business.contact.validation.dataReliabilityMissingForValidation=Il faut préciser la qualité de la donnée avant de valider +wao.business.contact.validation.missingHoursOfBeginEndObservation=Il faut préciser les heures exactes de début et de fin d'observation wao.business.entity.UserProfile.description=%s sur %s%s wao.business.mammalsCapture.mail.message=Bonjour,\n\nUn observateur du programme Obsmer a renseigné dans WAO l'information suivante \:\n\nMarée \: %s\nMétier \: %s\n\nCapture accidentelle \:\n%s\n\nCordialement,\n\nLe programme Obsmer\nhttp\://www.ifremer.fr/wao wao.business.mammalsCapture.mail.subject=Obsmer WAO\: Information sur capture accidentelle Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/ObsDebFieldWorkTest.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -45,8 +45,6 @@ import fr.ifremer.wao.io.ImportResults; import org.apache.commons.io.IOUtils; import org.apache.commons.lang.StringUtils; -import org.h2.util.New; -import org.hamcrest.BaseMatcher; import org.junit.Assert; import org.junit.Test; import org.nuiton.util.DateUtil; @@ -59,7 +57,6 @@ import java.util.Collection; import java.util.List; import java.util.Map; -import java.util.regex.Matcher; /** * Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/Fixtures.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/Fixtures.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/Fixtures.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -24,6 +24,15 @@ import java.util.HashMap; import java.util.Map; +/** + * Fixtures are little sets of data, this class help you to load those data + * in the database in order to help you initializing all needed date, allowing + * you to write test focused on the business (without copy-pasted 100 LoC at + * the beginning of each test method). + * + * This classes gathers fixtures that may be used while testing all programs, + * sub-classes may provide program-specific fixtures. + */ public abstract class Fixtures extends ExternalResource { protected WaoServices manager; Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/ObsMerFixtures.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/ObsMerFixtures.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/business/fixtures/ObsMerFixtures.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -30,6 +30,10 @@ import java.util.Arrays; import java.util.Date; +/** + * This class provides fixtures for the ObsMer program, data-set described + * here has been extracted from copy-pasted code found everywhere in tests. + */ public class ObsMerFixtures extends Fixtures { public ObsMerFixtures(WaoServices manager) { Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/Boats.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -29,6 +29,7 @@ import fr.ifremer.wao.bean.BoatFilter; import fr.ifremer.wao.bean.CompanyBoatInfos; import fr.ifremer.wao.bean.ConnectedUser; +import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SamplingFilter; import fr.ifremer.wao.bean.UserRole; import fr.ifremer.wao.entity.Boat; @@ -134,6 +135,16 @@ sampleRowContext = null; } + public String getSummaryForSampleRowContext() { + String summary = null; + if (sampleRowContext != null) { + if (sampleRowContext.getObsProgram() == ObsProgram.OBSDEB) { + summary = manager.getTooltipSampleRow(sampleRowContext); + } + } + return summary; + } + void setupRender() throws WaoException, WaoBusinessException { // XXX bleny 20110511 resetting on page load may solve an issue when Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/services/WaoManager.java 2011-07-04 10:37:34 UTC (rev 1368) @@ -29,6 +29,7 @@ import fr.ifremer.wao.WaoContext; import fr.ifremer.wao.WaoException; import fr.ifremer.wao.WaoProperty; +import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.bean.ContactState; import fr.ifremer.wao.bean.ObsProgram; import fr.ifremer.wao.bean.SamplingFilter; @@ -188,8 +189,19 @@ public String getTooltipSampleRow(SampleRow row) { StringBuilder result = new StringBuilder(); - if (row.getObsProgram() != ObsProgram.OBSDEB) { - DateFormat dateFormat = new SimpleDateFormat("MM/yyyy"); + DateFormat dateFormat; + if (row.getObsProgram() == ObsProgram.OBSDEB) { + if (row.isFieldWorkObservation()) { + dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + result.append(row.getObservationUnit().getDescription()); + } else { + dateFormat = new SimpleDateFormat("'semaine' w (yyyy)"); + result.append(row.getBoat().getName()); + } + result.append("\n") + .append(dateFormat.format(row.getExpectedDate())); + } else { + dateFormat = new SimpleDateFormat("MM/yyyy"); Profession profession = row.getProfession(); result.append("<strong>Métier : </strong>"). append(row.getProfessionDescription()); Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts_fr.properties =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts_fr.properties 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/pages/Contacts_fr.properties 2011-07-04 10:37:34 UTC (rev 1368) @@ -25,7 +25,7 @@ # Grid labels company-label: Soci\u00e9t\u00e9 -sampleRow-label: M\u00e9tier +sampleRow-label: Ligne du plan boat-label: Navire observationType-label: Type state-label: Etat Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_en_GB.properties 2011-07-04 10:37:34 UTC (rev 1368) @@ -49,6 +49,7 @@ wao.ui.action.showDetails=Show details wao.ui.action.showFilters=Show filters wao.ui.action.unvalidateContact=Unvalidate contact +wao.ui.action.viewBoatsForRow=View the boats for this sample row wao.ui.action.viewIndicatorsHistory=View indicators historic wao.ui.boatList=List of %s boats wao.ui.boatinfo.title=Infos about %s Modified: trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties =================================================================== --- trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/resources/i18n/wao-ui_fr_FR.properties 2011-07-04 10:37:34 UTC (rev 1368) @@ -49,6 +49,7 @@ wao.ui.action.showDetails=Voir les détails wao.ui.action.showFilters=Afficher les filtres wao.ui.action.unvalidateContact=Invalider le contact +wao.ui.action.viewBoatsForRow=Voir les navires présentis pour cette ligne wao.ui.action.viewIndicatorsHistory=Voir l'historique des modifications des indicateurs wao.ui.boatList=Liste de %s navires wao.ui.boatinfo.title=Informations sur %s Modified: trunk/wao-ui/src/main/webapp/Boats.tml =================================================================== --- trunk/wao-ui/src/main/webapp/Boats.tml 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/webapp/Boats.tml 2011-07-04 10:37:34 UTC (rev 1368) @@ -50,7 +50,11 @@ <t:if test="sampleRowContext"> <div style="text-align: center;"> - ${format:wao.ui.boats.selecting=sampleRowContext.code} (<a t:type="actionlink" t:id="cancelSelection">${message:wao.ui.action.cancel}</a>) + ${format:wao.ui.boats.selecting=sampleRowContext.code} + <t:if test="summaryForSampleRowContext"> + (${summaryForSampleRowContext}) + </t:if> + (<a t:type="actionlink" t:id="cancelSelection">${message:wao.ui.action.cancel}</a>) </div> </t:if> Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-07-04 10:37:10 UTC (rev 1367) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-07-04 10:37:34 UTC (rev 1368) @@ -205,7 +205,7 @@ <img src="${asset:context:}/img/delete2.png" alt="${message:wao.ui.action.deleteSampleRow}" /> </a> </t:if> - <a t:type="pagelink" t:page="boats" t:context="contextForBoats"> + <a t:type="pagelink" t:page="boats" t:context="contextForBoats" title="${message:wao.ui.action.viewBoatsForRow}"> <img src="${asset:context:}/img/boat.png" alt="${message:wao.ui.entity.Boats}" /> </a> </p:actionsCell>