Author: bleny Date: 2011-06-01 15:38:03 +0000 (Wed, 01 Jun 2011) New Revision: 1310 Log: minor fixes for ObsDeb Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.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-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java trunk/wao-ui/src/main/webapp/SampleRowForm.tml Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/PostgresMigrationCallback.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -868,6 +868,15 @@ "topiaCreateDate TIMESTAMP WITHOUT TIME ZONE NOT NULL," + "code CHARACTER VARYING(255)," + "name TEXT);"); + queries.add("CREATE TABLE ObsDebCode_Regions (" + + "obsDebCode character varying(255) NOT NULL," + + "regions character varying(255) NOT NULL," + + "CONSTRAINT obsDebCode_fkey FOREIGN KEY (obsDebCode) " + + "REFERENCES ObsDebCode (topiaid) MATCH SIMPLE " + + "ON UPDATE NO ACTION ON DELETE NO ACTION," + + "CONSTRAINT regions_fkey FOREIGN KEY (regions) " + + "REFERENCES TerrestrialLocation (topiaid) MATCH SIMPLE " + + "ON UPDATE NO ACTION ON DELETE NO ACTION);"); } @Override @@ -951,7 +960,7 @@ + " ADD regionIfremer CHARACTER VARYING(255);"); queries.add("ALTER TABLE TerrestrialDivision" + " ADD CONSTRAINT regionIfremer_fkey" - + " FOREIGN KEY (regionIfremer_fkey) " + + " FOREIGN KEY (regionIfremer) " + " REFERENCES TerrestrialLocation(topiaId);"); // // migrate from old column to new column 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-01 13:16:32 UTC (rev 1309) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceReferentialImpl.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -745,7 +745,18 @@ ObsDebCodeDAO obsDebCodeDAO = WaoDAOHelper.getObsDebCodeDAO(transaction); // import terrestrial locations if base is empty - if (terrestrialLocationDAO.count() == 0) { + boolean importTerrestrialLocations = + terrestrialLocationDAO.count() == 0; + + // when switching to version 3.0, referential is imported but regions + // are missing so we must force re-import to create regions + if ( ! importTerrestrialLocations) { + List<TerrestrialLocation> regions = terrestrialLocationDAO. + findAllByLocationTypeOrdinal(LocationType.REGION.ordinal()); + importTerrestrialLocations = regions.size() == 0; + } + + if (importTerrestrialLocations) { try { input = getClass().getResourceAsStream("/terrestrialLocations.csv"); executeImportTerrestrialLocations(transaction, input); 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-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -1550,6 +1550,25 @@ if (ObsProgram.OBSDEB == sampleRow.getObsProgram()) { + if (sampleRow.getObservationType() == null) { + throw new NullPointerException(); + } + + // check that all observers belong to the company affected to + // the sample row + if (sampleRow.getObservers() != null && sampleRow.getCompany() != null) { + for (WaoUser observer : sampleRow.getObservers()) { + if ( ! observer.getCompany().equals(sampleRow.getCompany())) { + validationResult.setSuccess(false); + String message = WaoUtils. + _("wao.validation.sampleRow.observerNotInCompany", + observer.getFullName(), + sampleRow.getCompany().getName()); + validationResult.setMessage(message); + } + } + } + if (sampleRow.getObservers() != null && sampleRow.getExpectedDate() != null) { // let's find a conflict, is there another sample-row Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/components/SamplingFilterComponent.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -71,9 +71,6 @@ @Persist private SamplingFilterValues possibleValuesForFilter; - @Persist - private boolean initFlag; - @Override protected boolean isAvailableDataForFiltersOnly() { return false; @@ -98,19 +95,7 @@ @Override public void resetFilter() { - // Don't reset period in filters - PeriodDates period = null; - if (initFlag) { - SamplingFilter filter = getFilter(); - period = (filter == null ? null : filter.getPeriod()); - } else { - initFlag = true; - } setFilter(serviceSampling.newSamplingFilter(getUser())); - - if (period != null) { - getFilter().setPeriod(period); - } } @Override Modified: trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java =================================================================== --- trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java 2011-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/RoadMap.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -33,6 +33,8 @@ StreamResponse onActivate(Object... activationContext) throws IOException { + // FIXME 20110601 the method is called when action link is created, leading to an exception raise, code may be moved to another method + String tokenId = TapestryUtil.getFirstString(activationContext); ConnectedUser connectedUser = serviceUser.getConnectedUserByToken(tokenId); 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 2011-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/SampleRowForm.java 2011-06-01 15:38:03 UTC (rev 1310) @@ -694,7 +694,10 @@ ValidationResult validationResult = serviceSampling.validateSampleRow(getSampleRow()); - if (StringUtils.isBlank(getSampleRowLog().getComment())) { + boolean commentLogIsExpected = ! isCreateMode(); + boolean commentLogIsEmpty = + StringUtils.isBlank(getSampleRowLog().getComment()); + if (commentLogIsExpected && commentLogIsEmpty) { sampleRowForm.recordError(messages.get(n_("wao.ui.form.SampleRow.error.missingLogComment"))); } Modified: trunk/wao-ui/src/main/webapp/SampleRowForm.tml =================================================================== --- trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-06-01 13:16:32 UTC (rev 1309) +++ trunk/wao-ui/src/main/webapp/SampleRowForm.tml 2011-06-01 15:38:03 UTC (rev 1310) @@ -56,10 +56,8 @@ t:selectedValue="sampleRow.company" /> </div> </t:if> - <div class="acenter"> + <div class="t-beaneditor-row"> <label for="observers">${message:wao.ui.field.SampleRow.observers}</label> - </div> - <div class="acenter"> <t:topiaEntitySelector t:id="observers" t:multiple="true" t:clazzName="WaoUser" @@ -73,8 +71,9 @@ <input t:type="datefield" t:id="expectedDate" t:format="${expectedDateFormat}" - class="date" - value="sampleRow.expectedDate" /> + t:class="date" + t:value="sampleRow.expectedDate" + t:validate="required" /> </div> <t:if test="sampleRow.phoneCall"> <label for="boat">${message:wao.ui.field.SampleRow.boat}</label> @@ -85,10 +84,8 @@ t:selectedValue="sampleRow.boat" /> </t:if> <t:if test="sampleRow.fieldWorkObservation"> - <div class="acenter"> + <div class="t-beaneditor-row"> <label for="observationUnit">${message:wao.ui.field.SampleRow.observationUnit}</label> - </div> - <div class="acenter"> <t:topiaEntitySelector t:id="observationUnit" t:clazzName="TerrestrialDivision" t:labelPropertyName="description"