Author: bleny Date: 2014-10-02 15:29:03 +0200 (Thu, 02 Oct 2014) New Revision: 2267 Url: http://forge.codelutin.com/projects/wao/repository/revisions/2267 Log: On permet de modifier le lieu d'observation dans le formulaire de modification d'une du plan ObsVente (fixes #5832) 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/UpdateSampleRowCommand.java branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java branches/wao-4.0.x/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp 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-10-02 12:36:59 UTC (rev 2266) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/SamplingPlanService.java 2014-10-02 13:29:03 UTC (rev 2267) @@ -360,6 +360,13 @@ ); updateSampleRowCommand.setAllDcf5Codes(allDcf5Codes); + ImmutableMap<String, TerrestrialLocation> allTerrestrialDistricts = + Maps.uniqueIndex( + getReferentialService().getAllTerrestrialDistricts(), + TopiaEntities.getTopiaIdFunction() + ); + updateSampleRowCommand.setAllTerrestrialDistricts(allTerrestrialDistricts); + return updateSampleRowCommand; } Modified: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java =================================================================== --- branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java 2014-10-02 12:36:59 UTC (rev 2266) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/UpdateSampleRowCommand.java 2014-10-02 13:29:03 UTC (rev 2267) @@ -21,7 +21,9 @@ * #L% */ +import com.google.common.base.Functions; import com.google.common.base.Preconditions; +import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableMap; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; @@ -31,6 +33,7 @@ import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowLog; +import fr.ifremer.wao.entity.TerrestrialLocation; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; import org.nuiton.topia.persistence.TopiaEntities; @@ -39,6 +42,7 @@ import java.io.Serializable; import java.text.DateFormat; import java.text.SimpleDateFormat; +import java.util.Collection; import java.util.Date; import java.util.LinkedHashMap; import java.util.Map; @@ -64,6 +68,8 @@ protected ImmutableMap<String, DCF5Code> allDcf5Codes; + protected ImmutableMap<String, TerrestrialLocation> allTerrestrialDistricts; + protected String elligibleBoatImmatriculations; /** @@ -120,6 +126,16 @@ } } + public Collection<String> getTerrestrialLocationIds() { + return sampleRow.getTerrestrialLocationsTopiaIds(); + } + + public void setTerrestrialLocationIds(Collection<String> terrestrialLocationIds) { + Collection<TerrestrialLocation> terrestrialLocations = + Collections2.transform(terrestrialLocationIds, Functions.forMap(allTerrestrialDistricts)); + sampleRow.setTerrestrialLocations(terrestrialLocations); + } + public void setCode(String code) { Preconditions.checkState(isCreation(), "cannot change code for sample row " + sampleRow); sampleRow.setCode(code); @@ -202,6 +218,14 @@ this.allDcf5Codes = allDcf5Codes; } + public ImmutableMap<String, TerrestrialLocation> getAllTerrestrialDistricts() { + return allTerrestrialDistricts; + } + + public void setAllTerrestrialDistricts(ImmutableMap<String, TerrestrialLocation> allTerrestrialDistricts) { + this.allTerrestrialDistricts = allTerrestrialDistricts; + } + public String getElligibleBoatImmatriculations() { return elligibleBoatImmatriculations; } Modified: branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java =================================================================== --- branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-10-02 12:36:59 UTC (rev 2266) +++ branches/wao-4.0.x/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java 2014-10-02 13:29:03 UTC (rev 2267) @@ -1155,4 +1155,11 @@ } + public List<TerrestrialLocation> getAllTerrestrialDistricts() { + + List<TerrestrialLocation> allTerrestialDistricts = getTerrestrialLocationDao().forLocationTypeEquals(LocationType.DISTRICT).findAll(); + + return allTerrestialDistricts; + + } } Modified: branches/wao-4.0.x/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp =================================================================== --- branches/wao-4.0.x/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp 2014-10-02 12:36:59 UTC (rev 2266) +++ branches/wao-4.0.x/wao-web/src/main/webapp/WEB-INF/content/edit-sample-row-input.jsp 2014-10-02 13:29:03 UTC (rev 2267) @@ -242,6 +242,17 @@ <s:if test="updateSampleRowCommand.sampleRow.obsProgram.obsVente"> + <s:select name="updateSampleRowCommand.terrestrialLocationIds" + label="%{getText('wao.ui.field.SampleRow.terrestrialLocations')}" + disabled="updateSampleRowCommand.observationAlreadyStarted" + list="updateSampleRowCommand.allTerrestrialDistricts" + listValue="%{value.districtName}" + multiple="true" + cssClass="input-xxlarge" + /> + + <s:textfield name="updateSampleRowCommand.sampleRow.terrestrialLocationInfos" label="%{getText('wao.ui.field.SampleRow.terrestrialLocationInfos')}" cssClass="input-xxlarge" /> + <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:if>