[Suiviobsmer-commits] r1291 - in trunk: wao-business/src/main/java/fr/ifremer/wao/entity wao-business/src/main/java/fr/ifremer/wao/io/csv2 wao-business/src/main/java/fr/ifremer/wao/io/csv2/models wao-business/src/main/java/fr/ifremer/wao/service wao-business/src/main/resources/i18n wao-ui/src/main/java/fr/ifremer/wao/ui/pages wao-ui/src/main/webapp
Author: bleny Date: 2011-05-23 16:28:33 +0000 (Mon, 23 May 2011) New Revision: 1291 Log: fix sampling plan import ; fix delete contact and sample row Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.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-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 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 2011-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -488,4 +488,15 @@ public boolean isFieldWorkObservation() { return ObservationType.FIELD_WORK_OBSERVATION.equals(getObservationType()); } + + @Override + public String toString() { + StringBuffer stringBuffer = new StringBuffer(); + stringBuffer.append(getCode()).append(" (").append(getObsProgram()); + if (getObservationType() != null) { + stringBuffer.append(", ").append(getObservationType().toString()); + } + stringBuffer.append(")"); + return stringBuffer.toString(); + } } Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java 2011-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Common.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -161,13 +161,27 @@ } } - public static final ValueParserFormatter<Boolean> BOOLEAN = new ValueParserFormatter<Boolean>() { + public static class BooleanParserFormatter implements + ValueParserFormatter<Boolean> { + protected Boolean defaultValue; + protected Boolean nullAllowed; + + public BooleanParserFormatter(Boolean defaultValue, + boolean nullAllowed) { + this.defaultValue = defaultValue; + this.nullAllowed = nullAllowed; + } + @Override public String format(Boolean bool) { String value; if (bool == null) { - value = "?"; + if (nullAllowed) { + value = "?"; + } else { + throw new IllegalArgumentException(); + } } else if (bool) { value = "Y"; } else { @@ -179,7 +193,9 @@ @Override public Boolean parse(String value) throws ParseException { Boolean result; - if (StringUtils.isBlank(value) || "?".equals(value)) { + if (StringUtils.isBlank(value)) { + result = defaultValue; + } else if ("?".equals(value)) { result = null; } else if ("Y".equals(value)) { result = true; @@ -188,10 +204,17 @@ } else { result = Boolean.parseBoolean(value); } + + if (result == null && ! nullAllowed) { + throw new IllegalArgumentException(); + } return result; } - }; + } + public static final ValueParserFormatter<Boolean> BOOLEAN = + new BooleanParserFormatter(null, true); + public static final ValueParserFormatter<Date> DAY = new DateValue("dd/MM/yyyy"); public static final ValueParserFormatter<Date> DAY_TIME = new DateValue("dd/MM/yyyy HH:mm"); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/Import.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -223,7 +223,14 @@ try { field.setValue(element, parsedValue); } catch (Exception e) { - throw new RuntimeException(WaoUtils._("csv.import.error.unableToSetValue", parsedValue, element.toString(), lineNumber), e); + String message = WaoUtils._("csv.import.error.unableToSetValue", + parsedValue, + element.toString(), + lineNumber, field.getHeaderName()); + if (log.isErrorEnabled()) { + log.error(message); + } + throw new RuntimeException(message, e); } time = timeLog.log(time, "setValue"); Modified: trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java =================================================================== --- trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/io/csv2/models/SamplingPlanImportExportModel.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -207,22 +207,51 @@ protected void buildModel() { modelBuilder = new ModelBuilder<SampleRow>(); - modelBuilder.newColumnForImportExport("PLAN_CODE", SampleRow.PROPERTY_CODE); + modelBuilder.newColumnForImportExport( + "PLAN_CODE", + SampleRow.PROPERTY_CODE); if (connectedUser.isAdmin()) { - modelBuilder.newColumnForImportExport("SOCIETE", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(allCompanies)); + modelBuilder.newColumnForImportExport( + "SOCIETE", + SampleRow.PROPERTY_COMPANY, + new CompanyParserFormatter(allCompanies)); } - modelBuilder.newColumnForImportExport("OBSERVATEUR_COD", SampleRow.PROPERTY_GROUP_NAME); - modelBuilder.newColumnForImportExport("OBSERVATEURS", SampleRow.PROPERTY_OBSERVERS, new UsersParserFormatter(allWaoUsers)); + modelBuilder.newColumnForImportExport( + "OBSERVATEUR_COD", + SampleRow.PROPERTY_GROUP_NAME); + modelBuilder.newColumnForImportExport( + "OBSERVATEURS", + SampleRow.PROPERTY_OBSERVERS, + new UsersParserFormatter(allWaoUsers)); if (observationType == ObservationType.FIELD_WORK_OBSERVATION) { - modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.DAY); - ObservationUnitParserFormatter observationUnitParser = new ObservationUnitParserFormatter(observationUnits); - ValueGetterSetter<SampleRow, String> regionCodeGetterSetter = new RegionCodeSetter(observationUnitParser); - modelBuilder.newColumnForImportExport("REGION_IFREMER_COD", regionCodeGetterSetter); - modelBuilder.newColumnForImportExport(OBSERVATION_UNIT_HEADER_NAME, SampleRow.PROPERTY_OBSERVATION_UNIT, observationUnitParser); - modelBuilder.newColumnForImportExport("LIGNE_SANS_CONTACTS", SampleRow.PROPERTY_BLANK_ROW, Common.BOOLEAN); + modelBuilder.newColumnForImportExport( + "OBSERVATION_DATE", + SampleRow.PROPERTY_EXPECTED_DATE, + Common.DAY); + ObservationUnitParserFormatter observationUnitParser = + new ObservationUnitParserFormatter(observationUnits); + ValueGetterSetter<SampleRow, String> regionCodeGetterSetter = + new RegionCodeSetter(observationUnitParser); + modelBuilder.newColumnForImportExport( + "REGION_IFREMER_COD", + regionCodeGetterSetter); + modelBuilder.newColumnForImportExport( + OBSERVATION_UNIT_HEADER_NAME, + SampleRow.PROPERTY_OBSERVATION_UNIT, + observationUnitParser); + modelBuilder.newColumnForImportExport( + "LIGNE_SANS_CONTACTS", + SampleRow.PROPERTY_BLANK_ROW, + new Common.BooleanParserFormatter(false, false)); } else if (observationType == ObservationType.PHONE_CALL) { - modelBuilder.newColumnForImportExport("OBSERVATION_DATE", SampleRow.PROPERTY_EXPECTED_DATE, Common.WEEK); - modelBuilder.newColumnForImportExport(BOAT_HEADER_NAME, SampleRow.PROPERTY_BOAT, new BoatParserFormatter(allActiveBoats)); + modelBuilder.newColumnForImportExport( + "OBSERVATION_DATE", + SampleRow.PROPERTY_EXPECTED_DATE, + Common.WEEK); + modelBuilder.newColumnForImportExport( + BOAT_HEADER_NAME, + SampleRow.PROPERTY_BOAT, + new BoatParserFormatter(allActiveBoats)); } if (log.isDebugEnabled()) { log.debug("model built : " + modelBuilder.getColumnsForImport()); 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-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceContactImpl.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -970,7 +970,9 @@ if (delete) { // Need to decrement estimated value if contactFound has // OBSERVATION_DONE state and may be real value (normally not allowed) - updateSampleMonthTidesValue(transaction, contactFound, null, true); + if (contactFound.getObsProgram() != ObsProgram.OBSDEB) { + updateSampleMonthTidesValue(transaction, contactFound, null, true); + } // Execute delete dao.delete(contactFound); 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-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/java/fr/ifremer/wao/service/ServiceSamplingImpl.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -581,6 +581,7 @@ TopiaContext transaction, SamplingFilter filter) throws TopiaException { + String orderByClause = filter.getOrderBy(); if (filter.getObsProgram() == ObsProgram.OBSDEB) { // in ObsDeb, ordering is done by date of action filter.setOrderBy(SampleRow.PROPERTY_EXPECTED_DATE); @@ -634,6 +635,8 @@ + " returns " + rows.size() + " lines."); } + filter.setOrderBy(orderByClause); + return rows; } 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-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/resources/i18n/wao-business_en_GB.properties 2011-05-23 16:28:33 UTC (rev 1291) @@ -48,7 +48,7 @@ csv.import.error.unableToParseValue=Unable to parse value '%s' (column '%s', line %s) csv.import.error.unableToReadField=Unable to read value of column '%s' at line %s csv.import.error.unableToReadLine=Unable to read line %s -csv.import.error.unableToSetValue=Unable to set value '%s' (entity '%s', line %s) +csv.import.error.unableToSetValue=Unable to set value '%s' (entity '%s', line %s, column '%s') csv.import.error.unrecognizedHeaders=Fields %s are not recognized. Accepted fields are %s. csv.import.logComment=Edited through import fr.ifremer.wao.entity.FishingGearDCF.=Not specified 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-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-business/src/main/resources/i18n/wao-business_fr_FR.properties 2011-05-23 16:28:33 UTC (rev 1291) @@ -48,7 +48,7 @@ csv.import.error.unableToParseValue=Erreur lors de l'interprétation de la valeur '%s' (colonne '%s', ligne %s) csv.import.error.unableToReadField=Impossible de lire la colonne '%s' à la ligne %s csv.import.error.unableToReadLine=Impossible de lire la ligne %s -csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s) +csv.import.error.unableToSetValue=Impossible d'enregistrer la valeur '%s' (entité '%s', ligne %s, column '%s') csv.import.error.unrecognizedHeaders=Les champs %s ne sont pas reconnus. Les champs possibles sont %s. csv.import.logComment=Modification depuis import fr.ifremer.wao.entity.FishingGearDCF.=Non spécifié 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-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-ui/src/main/java/fr/ifremer/wao/ui/pages/ObsDebSamplingPlan.java 2011-05-23 16:28:33 UTC (rev 1291) @@ -185,6 +185,7 @@ } protected void setObservationType(ObservationType observationType) { + samplingFilter.resetFilter(); samplingFilter.getFilter().setExpectedObservationType(observationType); } @@ -262,7 +263,10 @@ @Log public void onActionFromDeleteSampleRow(String sampleRowId) throws WaoBusinessException { - SampleRow sampleRow = getSampleRows().get(sampleRowId); + SampleRow sampleRow = serviceSampling.getSampleRow(sampleRowId); + if (sampleRow == null) { + throw new IllegalStateException(); + } serviceSampling.deleteSampleRow(sampleRow); } Modified: trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml =================================================================== --- trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-23 13:20:25 UTC (rev 1290) +++ trunk/wao-ui/src/main/webapp/ObsDebSamplingPlan.tml 2011-05-23 16:28:33 UTC (rev 1291) @@ -60,11 +60,13 @@ </li> </t:unless> <t:unless test="connectedUser.admin"> - <li> - <a t:type="pagelink" t:page="roadMap" t:context="connectedUser.token"> - ${message:wao.ui.misc.iCalendarExport} - </a> - </li> + <t:if t:test="showFieldWorkSamplingPlan()"> + <li> + <a t:type="pagelink" t:page="roadMap" t:context="connectedUser.token"> + ${message:wao.ui.misc.iCalendarExport} + </a> + </li> + </t:if> </t:unless> </ul>
participants (1)
-
bleny@users.labs.libre-entreprise.org