Author: bleny Date: 2014-08-06 14:33:12 +0200 (Wed, 06 Aug 2014) New Revision: 2199 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2199 Log: add validation rule to prevent sample rows without efforts Added: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/NoEffortDefinedException.java Modified: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_en_GB.properties branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties branches/wao-4.0.x/wao-web/src/main/java/fr/ifremer/wao/web/action/EditSampleRowAction.java branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_en_GB.properties branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties Added: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/NoEffortDefinedException.java =================================================================== --- branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/NoEffortDefinedException.java (rev 0) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/NoEffortDefinedException.java 2014-08-06 12:33:12 UTC (rev 2199) @@ -0,0 +1,10 @@ +package fr.ifremer.wao.services.service; + +import fr.ifremer.wao.entity.SampleRow; + +public class NoEffortDefinedException extends SampleRowValidationException { + + public NoEffortDefinedException(SampleRow sampleRow) { + super(sampleRow); + } +} Modified: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java =================================================================== --- branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java 2014-08-06 12:33:12 UTC (rev 2199) @@ -600,6 +600,9 @@ } catch (MissingDcf5CodesException e) { String message = I18n.l(getLocale(), "wao.import.sampleRow.failure.missingDcf5Codes", lineNumber); throw new ImportErrorException(message); + } catch (NoEffortDefinedException e) { + String message = I18n.l(getLocale(), "wao.import.sampleRow.failure.noEffortDefined", lineNumber); + throw new ImportErrorException(message); } save0(updateSampleRowCommand); @@ -705,7 +708,8 @@ MissingProfessionSpeciesException, SampleMonthWithIllegalExpectedTidesValueException, MissingDcf5CodesException, - SampleRowCodeMustBeUniqueException { + SampleRowCodeMustBeUniqueException, + NoEffortDefinedException { SampleRow sampleRow = updateSampleRowCommand.getSampleRow(); @@ -747,6 +751,10 @@ throw new MissingProfessionSpeciesException(sampleRow); } + if (sampleRow.isSampleMonthEmpty()) { + throw new NoEffortDefinedException(sampleRow); + } + for (SampleMonth sampleMonth : sampleRow.getSampleMonth()) { if (sampleMonth.getExpectedTidesValue() < 0) { throw new SampleMonthWithIllegalExpectedTidesValueException(sampleRow, sampleMonth); Modified: branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_en_GB.properties =================================================================== --- branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_en_GB.properties 2014-08-06 12:33:12 UTC (rev 2199) @@ -92,6 +92,7 @@ wao.import.sampleRow.failure.missingProfessionSpecies=Line %s\: For this sampling strategy, you must provide the species wao.import.sampleRow.failure.missingProgramName=Line %s\: You must precise the program name wao.import.sampleRow.failure.missingSampleRowCode=Line %s\: You must precise a code for the sample row +wao.import.sampleRow.failure.noEffortDefined=Line %s\: You must precise effort wao.import.sampleRow.failure.sampleMonthWithIllegalExpectedTidesValue=Line %s\: Effort must be positive for month %s wao.import.sampleRow.failure.unknownFishingGearDcfCode=Unknown fishing gear code\: %s wao.import.sampleRow.failure.unknownTargetSpeciesDcfCode=Unknown target species code\: %s Modified: branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties =================================================================== --- branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-services/src/main/resources/i18n/wao-services_fr_FR.properties 2014-08-06 12:33:12 UTC (rev 2199) @@ -89,6 +89,7 @@ wao.import.sampleRow.failure.missingProfessionSpecies=Ligne %s \: Il faut préciser les espèces cibles pour cette stratégie d'échantillonage wao.import.sampleRow.failure.missingProgramName=Ligne %s \: Il faut préciser le programme wao.import.sampleRow.failure.missingSampleRowCode=Ligne %s \: Il faut préciser un code pour a ligne du plan +wao.import.sampleRow.failure.noEffortDefined=Ligne %s \: Il faut préciser un effort sur au moins un mois wao.import.sampleRow.failure.sampleMonthWithIllegalExpectedTidesValue=Ligne %s \: l'effort d'observation doit être positif pour le mois %s wao.import.sampleRow.failure.unknownFishingGearDcfCode=Le code engin %s est inconnu du référentiel wao.import.sampleRow.failure.unknownTargetSpeciesDcfCode=Le code espèce cible %s est inconnu du référentiel Modified: branches/wao-4.0.x/wao-web/src/main/java/fr/ifremer/wao/web/action/EditSampleRowAction.java =================================================================== --- branches/wao-4.0.x/wao-web/src/main/java/fr/ifremer/wao/web/action/EditSampleRowAction.java 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-web/src/main/java/fr/ifremer/wao/web/action/EditSampleRowAction.java 2014-08-06 12:33:12 UTC (rev 2199) @@ -34,6 +34,7 @@ import fr.ifremer.wao.services.service.MissingProfessionSpeciesException; import fr.ifremer.wao.services.service.MissingProgramNameException; import fr.ifremer.wao.services.service.MissingSampleRowLogCommentException; +import fr.ifremer.wao.services.service.NoEffortDefinedException; import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; import fr.ifremer.wao.services.service.SampleMonthWithIllegalExpectedTidesValueException; import fr.ifremer.wao.services.service.SampleRowCodeMustBeUniqueException; @@ -122,6 +123,8 @@ addFieldError("updateSampleRowCommand.sampleRow.programName", t("wao.ui.form.SampleRow.error.missingProgramName")); } catch (MissingDcf5CodesException e) { addFieldError("updateSampleRowCommand.dcf5Codes", t("wao.ui.form.SampleRow.error.missingDcf5Codes")); + } catch (NoEffortDefinedException e) { + addFieldError("updateSampleRowCommand.dcf5Codes", t("wao.ui.form.SampleRow.error.noEffortDefined")); } } Modified: branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_en_GB.properties =================================================================== --- branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-08-06 12:33:12 UTC (rev 2199) @@ -323,6 +323,7 @@ wao.ui.form.SampleRow.error.missingPeriodEnd=You must define the month when the observations ends wao.ui.form.SampleRow.error.missingProfessionSpecies=You must define the target species wao.ui.form.SampleRow.error.missingProgramName=You must provide the program name +wao.ui.form.SampleRow.error.noEffortDefined=You must provide the effort wao.ui.form.SampleRow.error.sampleMonthWithIllegalExpectedTidesValue=Effort for month %s must be positive wao.ui.form.SampleRow.error.unknownFishingGearDcfCode=Unknown fishing gear code\: %s wao.ui.form.SampleRow.error.unknownTargetSpeciesDcfCode=Unknown target species code\: %s Modified: branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties =================================================================== --- branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-08-06 12:30:30 UTC (rev 2198) +++ branches/wao-4.0.x/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-08-06 12:33:12 UTC (rev 2199) @@ -323,6 +323,7 @@ wao.ui.form.SampleRow.error.missingPeriodEnd=Il faut préciser le mois auquel se termine la période d'observation wao.ui.form.SampleRow.error.missingProfessionSpecies=Il faut préciser les espèces cibles wao.ui.form.SampleRow.error.missingProgramName=Il faut préciser le nom du programme +wao.ui.form.SampleRow.error.noEffortDefined=Il faut préciser un effort sur un moins un mois wao.ui.form.SampleRow.error.sampleMonthWithIllegalExpectedTidesValue=Il faut donner un effort positif pour le mois %s wao.ui.form.SampleRow.error.unknownFishingGearDcfCode=Le code engin %s est inconnu du référentiel wao.ui.form.SampleRow.error.unknownTargetSpeciesDcfCode=Le code espèce cible %s est inconnu du référentiel