This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository wao. See http://git.codelutin.com/wao.git commit 880fd0afd09c4b6302e077a691d7eb8a0fa7f9e0 Author: Brendan Le Ny <bleny@codelutin.com> Date: Fri Jan 23 11:07:18 2015 +0100 Correction du formulaire de création de ligne ObsVente (fixes #6500) --- .../java/fr/ifremer/wao/AbstractWaoTopiaDao.java | 23 +++++++++++++---- .../wao/services/service/SamplingPlanService.java | 29 ++++++---------------- .../services/service/UpdateSampleRowCommand.java | 9 +++++++ .../service/administration/CompaniesService.java | 2 +- .../administration/LaboratoriesService.java | 2 +- .../WEB-INF/content/edit-sample-row-input.jsp | 6 +++++ 6 files changed, 42 insertions(+), 29 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/AbstractWaoTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/AbstractWaoTopiaDao.java index 7989df1..109dc80 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/AbstractWaoTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/AbstractWaoTopiaDao.java @@ -1,15 +1,28 @@ package fr.ifremer.wao; +import org.apache.commons.collections4.CollectionUtils; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.internal.AbstractTopiaDao; +import java.util.Collection; + public abstract class AbstractWaoTopiaDao<E extends TopiaEntity> extends AbstractTopiaDao<E> { - public void save(E entity) { - if (entity.isPersisted()) { - update(entity); - } else { - create(entity); + public void saveNullable(E entity) { + if (entity != null) { + if (entity.isPersisted()) { + update(entity); + } else { + create(entity); + } + } + } + + public void saveAll(Collection<E> entities) { + if (CollectionUtils.isNotEmpty(entities)) { + for (E entity : entities) { + saveNullable(entity); + } } } diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java index 82e27ec..8dc23e5 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java @@ -46,7 +46,6 @@ import fr.ifremer.wao.entity.FishingZoneTopiaDao; import fr.ifremer.wao.entity.LocationType; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.entity.Organisation; -import fr.ifremer.wao.entity.Profession; import fr.ifremer.wao.entity.ProfessionImpl; import fr.ifremer.wao.entity.ProfessionTopiaDao; import fr.ifremer.wao.entity.SampleMonth; @@ -481,6 +480,9 @@ public class SamplingPlanService extends WaoServiceSupport { sampleMonthDao.delete(sampleMonth); } + getProfessionDao().saveNullable(sampleRow.getProfession()); + getSampleRowDao().saveNullable(sampleRow); + } public void save(UpdateSampleRowCommand updateSampleRowCommand) { @@ -492,6 +494,7 @@ public class SamplingPlanService extends WaoServiceSupport { } public void save0(UpdateSampleRowCommand updateSampleRowCommand) { + SampleRow sampleRow = updateSampleRowCommand.getSampleRow(); if (!updateSampleRowCommand.isCreation()) { @@ -500,28 +503,10 @@ public class SamplingPlanService extends WaoServiceSupport { sampleRowLog.setLogText(updateSampleRowCommand.getSampleRowMemento(), sampleRow); } - ElligibleBoatTopiaDao elligibleBoatDao = getElligibleBoatDao(); - if (sampleRow.isElligibleBoatNotEmpty()) { - for (ElligibleBoat elligibleBoat : sampleRow.getElligibleBoat()) { - if (elligibleBoat.isPersisted()) { - elligibleBoatDao.update(elligibleBoat); - } else { - elligibleBoatDao.create(elligibleBoat); - } - } - } - - Profession profession = sampleRow.getProfession(); - if (profession != null) { - getProfessionDao().save(profession); - } + getElligibleBoatDao().saveAll(sampleRow.getElligibleBoat()); + getProfessionDao().saveNullable(sampleRow.getProfession()); + getSampleRowDao().saveNullable(sampleRow); - SampleRowTopiaDao dao = getSampleRowDao(); - if (sampleRow.isPersisted()) { - dao.update(sampleRow); - } else { - dao.create(sampleRow); - } } public InputStream exportSamplingPlan(SampleRowsFilter filter) { diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java index 3bf904c..68fa858 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java @@ -36,6 +36,7 @@ import fr.ifremer.wao.entity.Organisation; import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowLog; +import fr.ifremer.wao.entity.SamplingStrategy; import fr.ifremer.wao.entity.SclerochronologySamplingContext; import fr.ifremer.wao.entity.Species; import fr.ifremer.wao.entity.TerrestrialLocation; @@ -269,6 +270,14 @@ public class UpdateSampleRowCommand implements Serializable{ return ImmutableMap.copyOf(allSclerochronologySamplingContexts); } + public ImmutableMap<SamplingStrategy, String> getAllSamplingStrategies() { + EnumMap<SamplingStrategy, String> allSamplingStrategies = new EnumMap<>(SamplingStrategy.class); + for (SamplingStrategy samplingStrategy : SamplingStrategy.values()) { + allSamplingStrategies.put(samplingStrategy, WaoUtils.l(locale, samplingStrategy)); + } + return ImmutableMap.copyOf(allSamplingStrategies); + } + public ImmutableMap<IndividualMeasurementStrategy, String> getAllIndividualMeasurementStrategies() { EnumMap<IndividualMeasurementStrategy, String> allIndividualMeasurementStrategies = new EnumMap<>(IndividualMeasurementStrategy.class); for (IndividualMeasurementStrategy individualMeasurementStrategy : IndividualMeasurementStrategy.values()) { diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/CompaniesService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/CompaniesService.java index 53bee08..2f7aa05 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/CompaniesService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/CompaniesService.java @@ -65,7 +65,7 @@ public class CompaniesService extends WaoServiceSupport { CompanyTopiaDao dao = getPersistenceContext().getCompanyDao(); - dao.save(company); + dao.saveNullable(company); commit(); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java index 4ad4522..cde507b 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java @@ -57,7 +57,7 @@ public class LaboratoriesService extends WaoServiceSupport { LaboratoryTopiaDao dao = getLaboratoryDao(); - dao.save(laboratory); + dao.saveNullable(laboratory); commit(); diff --git a/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp b/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp index 31108ae..cf49380 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp @@ -298,6 +298,12 @@ <s:textfield type="number" name="updateSampleRowCommand.sampleRow.averageObservationsCount" label="%{getText('wao.ui.field.SampleRow.averageObservationsCount')}" inputAppend="%{getText('wao.ui.unit.observations')}" cssClass="input-small"/> + <s:select name="updateSampleRowCommand.sampleRow.samplingStrategy" + label="%{getText('wao.ui.field.SampleRow.samplingStrategy')}" + list="updateSampleRowCommand.allSamplingStrategies" + cssClass="input-xlarge" + disabled="updateSampleRowCommand.observationAlreadyStarted" /> + </s:if> <s:if test="updateSampleRowCommand.sampleRow.obsProgram.obsMer || updateSampleRowCommand.sampleRow.obsProgram.obsVente"> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.