[Suiviobsmer-commits] r1331 - in trunk: wao-business/src/main/java/fr/ifremer/wao/bean wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-business/src/main/xmi wao-business/src/test/java/fr/ifremer/wao/service 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
Author: bleny Date: 2011-06-09 14:27:08 +0000 (Thu, 09 Jun 2011) New Revision: 1331 Log: order of field in contact form ; hide boatGroup from boat filter when not obsdeb ; fix import of terrestrial divisions Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.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/resources/i18n/wao-business_en_GB.properties trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties trunk/wao-business/src/main/xmi/wao.zargo trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml trunk/wao-ui/src/main/webapp/ContactForm.tml trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/bean/ConnectedUserImpl.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -93,9 +93,7 @@ Boolean indicatorsAreActivated = Boolean.parseBoolean(WaoProperty.SHOW_INDICATORS.getValue()); if (BooleanUtils.isTrue(indicatorsAreActivated)) { - test = ObsProgram.OBSMER.equals(getProfile().getObsProgram()) - && isAdmin() || isCoordinator(); - + test = isObsMer() && (isAdmin() || isCoordinator()); } return test; 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-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -177,6 +177,7 @@ sampleRow.getObservationUnit().getRegionIfremer(); } contact.getTerrestrialLocation(); + contact.getObsDebCode(); } } @@ -1508,4 +1509,14 @@ } return terrestrialLocations; } + + @Override + protected boolean executeIsBoatSampled(TopiaContext transaction, Boat boat, SampleRow sampleRow) throws Exception { + ContactDAO contactDAO = WaoDAOHelper.getContactDAO(transaction); + Contact contact = contactDAO.findByProperties( + Contact.PROPERTY_BOAT, boat, + Contact.PROPERTY_SAMPLE_ROW, sampleRow); + boolean boatSampled = contact != null; + return boatSampled; + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -52,6 +52,7 @@ import fr.ifremer.wao.entity.TargetSpeciesDCFDAO; import fr.ifremer.wao.entity.TerrestrialDivision; import fr.ifremer.wao.entity.TerrestrialDivisionDAO; +import fr.ifremer.wao.entity.TerrestrialDivisionImpl; import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocationDAO; import fr.ifremer.wao.entity.TerrestrialLocationDAOImpl; @@ -70,6 +71,7 @@ import org.nuiton.topia.TopiaContext; import org.nuiton.topia.TopiaException; import org.nuiton.topia.framework.TopiaQuery; +import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; import org.slf4j.Logger; @@ -552,53 +554,44 @@ Import<TerrestrialDivision> terrestrialDivisionImport = new Import<TerrestrialDivision>(importModel, input); TerrestrialDivisionDAO dao = WaoDAOHelper.getTerrestrialDivisionDAO(transaction); -// // a binder, needed for update -// Binder<TerrestrialDivision, TerrestrialDivision> terrestrialDivisionBinder = -// BinderFactory.newBinder(TerrestrialDivision.class); -// -// try { -// Iterator<TerrestrialDivision> terrestrialDivisionIterator = terrestrialDivisionImport.startImport(); -// -// // for each line of the CSV -// while (terrestrialDivisionIterator.hasNext()) { -// TerrestrialDivision terrestrialDivision = terrestrialDivisionIterator.next(); -// -// TerrestrialDivision existingTerrestrialDivision = dao.findByCode(terrestrialDivision.getCode()); -// if (existingTerrestrialDivision == null) { -// // add as new -// dao.create(terrestrialDivision); -// } else { -// // update the old one -// terrestrialDivisionBinder.copyExcluding(terrestrialDivision, existingTerrestrialDivision, -// TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION); -// dao.update(existingTerrestrialDivision); -// } -// } -// } catch (Exception e) { -// transaction.rollbackTransaction(); -// throw e; -// } finally { -// terrestrialDivisionImport.stopImport(); -// } - - try { Iterator<TerrestrialDivision> terrestrialDivisionIterator = terrestrialDivisionImport.startImport(); - Binder<TerrestrialDivision, TerrestrialDivision> observationUnitBinder = BinderFactory.newBinder(TerrestrialDivision.class); + Binder<TerrestrialDivision, TerrestrialDivision> terrestrialDivisionBinder = BinderFactory.newBinder(TerrestrialDivision.class); while (terrestrialDivisionIterator.hasNext()) { TerrestrialDivision terrestrialDivision = terrestrialDivisionIterator.next(); - WaoUtils.createOrUpdate(TerrestrialDivision.class, terrestrialDivision, dao, TerrestrialDivision.PROPERTY_CODE); - // now add an observation unit - TerrestrialDivision observationUnit = dao.newInstance(); - observationUnitBinder.copyExcluding(terrestrialDivision, observationUnit, - TerrestrialDivision.TOPIA_ID, TerrestrialDivision.TOPIA_VERSION, TerrestrialDivision.TOPIA_CREATE_DATE, - TerrestrialDivision.PROPERTY_CODE, TerrestrialDivision.PROPERTY_PORT); - WaoUtils.createOrUpdate(TerrestrialDivision.class, - observationUnit, dao, TerrestrialDivision.PROPERTY_CODE, - TerrestrialDivision.PROPERTY_REGION_IFREMER, - TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE); + TerrestrialDivision existingTerrestrialDivision = dao.findByCode(terrestrialDivision.getCode()); + if (existingTerrestrialDivision == null) { + // add as new + dao.create(terrestrialDivision); + } else { + // update the old one + terrestrialDivisionBinder.copyExcluding(terrestrialDivision, existingTerrestrialDivision, + TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION); + dao.update(existingTerrestrialDivision); + } + + TerrestrialDivision observationUnit = new TerrestrialDivisionImpl(); + terrestrialDivisionBinder.copyExcluding( + terrestrialDivision, observationUnit, + TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, + TopiaEntity.TOPIA_VERSION, + TerrestrialDivision.PROPERTY_CODE, + TerrestrialDivision.PROPERTY_PORT); + + TerrestrialDivision existingObservationUnit = dao.findByProperties( + TerrestrialDivision.PROPERTY_CODE, observationUnit.getCode(), + TerrestrialDivision.PROPERTY_PORT, observationUnit.getPort(), + TerrestrialDivision.PROPERTY_REGION_IFREMER, observationUnit.getRegionIfremer(), + TerrestrialDivision.PROPERTY_OBSERVATION_UNIT_CODE, observationUnit.getObservationUnitCode()); + + if (existingObservationUnit == null) { + dao.create(observationUnit); + } else { + terrestrialDivisionBinder.copyExcluding(observationUnit, existingObservationUnit, TopiaEntity.TOPIA_ID, TopiaEntity.TOPIA_CREATE_DATE, TopiaEntity.TOPIA_VERSION); + dao.update(existingObservationUnit); + } } transaction.commitTransaction(); 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-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-06-09 14:27:08 UTC (rev 1331) @@ -180,6 +180,7 @@ wao.error.serviceContact.getPossibleValuesForFilter= wao.error.serviceContact.getSubstitutesForBoat= wao.error.serviceContact.importContactCsv= +wao.error.serviceContact.isBoatSampled= wao.error.serviceContact.newContact= wao.error.serviceContact.newContactFilter= wao.error.serviceContact.saveComment= 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-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-06-09 14:27:08 UTC (rev 1331) @@ -180,6 +180,7 @@ wao.error.serviceContact.getPossibleValuesForFilter= wao.error.serviceContact.getSubstitutesForBoat= wao.error.serviceContact.importContactCsv=Impossible d'importer les contacts +wao.error.serviceContact.isBoatSampled= wao.error.serviceContact.newContact= wao.error.serviceContact.newContactFilter= wao.error.serviceContact.saveComment= Modified: trunk/wao-business/src/main/xmi/wao.zargo =================================================================== (Binary files differ) Modified: trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java =================================================================== --- trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-business/src/test/java/fr/ifremer/wao/service/ServiceReferentialTest.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -128,6 +128,10 @@ int nbTerrestrialDivisions = service.getAllObservationUnits().size(); input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv"); service.importTerrestrialDivisions(input); + input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv"); + service.importTerrestrialDivisions(input); + input = getClass().getResourceAsStream("/import/purifiedTerrestrialDivisions.csv"); + service.importTerrestrialDivisions(input); assertEquals("importing the same file two times should not create extra lines", nbTerrestrialDivisions, service.getAllObservationUnits().size()); } finally { Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/BoatFilterComponent.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -26,11 +26,14 @@ import fr.ifremer.wao.WaoException; import fr.ifremer.wao.bean.BoatFilter; import fr.ifremer.wao.bean.BoatFilterValues; +import fr.ifremer.wao.bean.ConnectedUser; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.service.ServiceBoat; import org.apache.tapestry5.annotations.InjectComponent; import org.apache.tapestry5.annotations.Parameter; 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 java.util.List; @@ -40,6 +43,10 @@ */ public class BoatFilterComponent extends FilterComponent<BoatFilter> { + @SessionState + @Property + private ConnectedUser connectedUser; + @InjectComponent private FeedBack filterFeedback; Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-06-09 14:27:08 UTC (rev 1331) @@ -273,6 +273,10 @@ return serviceContact.getSubstitutesForBoat(sampleRow.getBoat()); } + public boolean isBoatSampled() { + return serviceContact.isBoatSampled(sampleRow.getBoat(), sampleRow); + } + protected String[] getContextForBoatOrSubstitute(Boat boat) { WaoActivationContext contextForBoat = WaoActivationContext.newEmptyContext(); Modified: trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml =================================================================== --- trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-ui/src/main/resources/fr/ifremer/wao/ui/components/BoatFilterComponent.tml 2011-06-09 14:27:08 UTC (rev 1331) @@ -110,12 +110,14 @@ t:values="possibleValuesForFilter.fleetsAsList" t:selectedValue="filter.fleet" /> - <label for="boatGroup" style="margin-left: 15px;">${message:wao.ui.field.Boat.boatGroup} :</label> - <t:topiaEntitySelector t:id="boatGroup" - t:clazzName="BoatGroup" - t:labelPropertyName="description" - t:values="possibleValuesForFilter.boatGroupsAsList" - t:selectedValue="filter.boatGroup" /> + <t:if test="connectedUser.obsDeb"> + <label for="boatGroup" style="margin-left: 15px;">${message:wao.ui.field.Boat.boatGroup} :</label> + <t:topiaEntitySelector t:id="boatGroup" + t:clazzName="BoatGroup" + t:labelPropertyName="description" + t:values="possibleValuesForFilter.boatGroupsAsList" + t:selectedValue="filter.boatGroup" /> + </t:if> </div> <div class="aright" style="white-space: nowrap;"> <input t:type="submit" class="ico22px refresh" t:id="refresh" Modified: trunk/wao-ui/src/main/webapp/ContactForm.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-ui/src/main/webapp/ContactForm.tml 2011-06-09 14:27:08 UTC (rev 1331) @@ -129,6 +129,20 @@ <t:block id="viewObservationReport"> <div> + <label>${message:wao.ui.field.Contact.beginDate}</label> + <t:output value="contact.observationBeginDate" format="dateTimeFormat" /> + </div> + <div> + <label>${message:wao.ui.field.Contact.endDate}</label> + <t:output value="contact.observationEndDate" format="dateTimeFormat" /> + </div> + <div> + <label>${message:wao.ui.field.Contact.observationType}</label> + <t:if test="contact.observationType"> + ${contact.observationType} + </t:if> + </div> + <div> <label>${message:wao.ui.field.Contact.contactState}</label> ${getLabelForEnum(contact.contactState)} </div> @@ -138,14 +152,6 @@ <t:output value="contact.landingDate" format="dateTimeFormat" /> </div> </t:if> - <div> - <label>${message:wao.ui.field.Contact.beginDate}</label> - <t:output value="contact.observationBeginDate" format="dateTimeFormat" /> - </div> - <div> - <label>${message:wao.ui.field.Contact.endDate}</label> - <t:output value="contact.observationEndDate" format="dateTimeFormat" /> - </div> <t:if test="connectedUser.obsMer"> <div> <label> @@ -185,7 +191,7 @@ </t:if> <t:if test="connectedUser.obsDeb"> <div> - <label for="port">${message:wao.ui.field.SampleRow.terrestrialLocation}</label> + <label for="port">${message:wao.ui.entity.TerrestrialLocation}</label> <t:if test="contact.terrestrialLocation"> ${contact.terrestrialLocation.name} </t:if> @@ -227,6 +233,14 @@ </t:block> <t:block id="editObservationReport"> + <div> + <label for="beginDate">${message:wao.ui.field.Contact.beginDate}</label> + <input t:id="beginDate" value="contact.observationBeginDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> + </div> + <div> + <label for="endDate">${message:wao.ui.field.Contact.endDate}</label> + <input t:id="endDate" value="contact.observationEndDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> + </div> <t:if test="connectedUser.obsdeb"> <t:if test="observationTypeSelectModel"> <div> @@ -253,14 +267,6 @@ <input t:id="landingDate" value="contact.landingDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> </div> </t:if> - <div> - <label for="beginDate">${message:wao.ui.field.Contact.beginDate}</label> - <input t:id="beginDate" value="contact.observationBeginDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> - </div> - <div> - <label for="endDate">${message:wao.ui.field.Contact.endDate}</label> - <input t:id="endDate" value="contact.observationEndDate" datePattern="${dateTimeFormatPattern}" timePicker="true" timePickerAdjacent="true" use24hrs="true" /> - </div> <t:if test="connectedUser.obsMer"> <div> <label for="mammalsObservation"> @@ -313,7 +319,7 @@ <t:if test="connectedUser.obsDeb"> <div> <label for="port"> - ${message:wao.ui.field.Contact.terrestrialLocation} + ${message:wao.ui.entity.TerrestrialLocation} </label> <t:topiaEntitySelector t:id="port" t:clazzName="TerrestrialLocation" Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-09 13:15:38 UTC (rev 1330) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-06-09 14:27:08 UTC (rev 1331) @@ -146,12 +146,17 @@ </p:boatHeader> <p:boatCell> <span t:type="ck/Tooltip" title="Infos" t:value="prop:boatDescription" t:effect="appear"> - <a t:type="pagelink" - t:page="boats" - t:context="contextForBoat" - title="${message:wao.ui.action.showDetails}" > - ${sampleRow.boat.name} - </a> + <t:if t:test="boatSampled"> + <del>${sampleRow.boat.name}</del> + <p:else> + <a t:type="pagelink" + t:page="boats" + t:context="contextForBoat" + title="${message:wao.ui.action.showDetails}" > + ${sampleRow.boat.name} + </a> + </p:else> + </t:if> </span> </p:boatCell>
participants (1)
-
bleny@users.labs.libre-entreprise.org