r1785 - in trunk: wao-services/src/main/java/fr/ifremer/wao/services/service wao-services/src/test/java/fr/ifremer/wao/services/service wao-web/src/main/java/fr/ifremer/wao/web wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer wao-web/src/main/resources/i18n wao-web/src/main/webapp/WEB-INF/content/obsmer
Author: bleny Date: 2014-04-01 11:50:30 +0200 (Tue, 01 Apr 2014) New Revision: 1785 Url: http://forge.codelutin.com/projects/wao/repository/revisions/1785 Log: refs #4483 implements sample row deletion Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlan.java 2014-04-01 09:50:30 UTC (rev 1785) @@ -152,7 +152,7 @@ } public String getTotalEstimatedRatio(Date month) { - String result = totalsPerMonth.get(month).getRealRatio("-"); + String result = totalsPerMonth.get(month).getEstimatedRatio("-"); return result; } Modified: trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java =================================================================== --- trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-services/src/main/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanService.java 2014-04-01 09:50:30 UTC (rev 1785) @@ -49,6 +49,7 @@ import fr.ifremer.wao.entity.LocationType; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.entity.ProfessionImpl; +import fr.ifremer.wao.entity.ProfessionTopiaDao; import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleMonthImpl; import fr.ifremer.wao.entity.SampleMonthTopiaDao; @@ -56,6 +57,7 @@ import fr.ifremer.wao.entity.SampleRowImpl; import fr.ifremer.wao.entity.SampleRowLog; import fr.ifremer.wao.entity.SampleRowLogImpl; +import fr.ifremer.wao.entity.SampleRowLogTopiaDao; import fr.ifremer.wao.entity.SampleRowTopiaDao; import fr.ifremer.wao.entity.SamplingStrategy; import fr.ifremer.wao.entity.TerrestrialLocation; @@ -79,6 +81,7 @@ import org.nuiton.csv.ImportModel; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.topia.persistence.TopiaEntities; +import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.util.DateUtil; import java.io.InputStream; @@ -682,4 +685,47 @@ return Pair.of(real, estimated); } + public void deleteSampleRow(String sampleRowId) throws IllegalDeletionException { + + SampleRowTopiaDao dao = getSampleRowDao(); + + SampleRow sampleRow = dao.findByTopiaId(sampleRowId); + + SampleMonthTopiaDao sampleMonthDao = getSampleMonthDao(); + for (SampleMonth sampleMonth : sampleRow.getSampleMonth()) { + sampleMonthDao.delete(sampleMonth); + } + sampleRow.clearSampleMonth(); + + SampleRowLogTopiaDao sampleRowLogDao = getSampleRowLogDao(); + for (SampleRowLog sampleRowLog : sampleRow.getSampleRowLog()) { + sampleRowLogDao.delete(sampleRowLog); + } + sampleRow.clearSampleRowLog(); + + ElligibleBoatTopiaDao elligibleBoatDao = getElligibleBoatDao(); + for (ElligibleBoat elligibleBoat : sampleRow.getElligibleBoat()) { + elligibleBoatDao.delete(elligibleBoat); + } + sampleRow.clearElligibleBoat(); + + sampleRow.clearFishingZone(); + + if (sampleRow.getProfession() != null) { + ProfessionTopiaDao professionDao = getProfessionDao(); + professionDao.delete(sampleRow.getProfession()); + sampleRow.setProfession(null); + } + + Map<Class<? extends TopiaEntity>, List<? extends TopiaEntity>> allUsages = dao.findAllUsages(sampleRow); + + if (allUsages.isEmpty()) { + dao.delete(sampleRow); + } else { + throw new IllegalDeletionException(allUsages); + } + + commit(); + + } } Modified: trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java =================================================================== --- trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-services/src/test/java/fr/ifremer/wao/services/service/ObsMerSamplingPlanServiceTest.java 2014-04-01 09:50:30 UTC (rev 1785) @@ -35,10 +35,10 @@ import java.io.IOException; import java.io.InputStream; -import java.util.ArrayList; -import java.util.List; -import static fr.ifremer.wao.services.service.ObsMerSamplingPlan.*; +import static fr.ifremer.wao.services.service.ObsMerSamplingPlan.ObsMerSamplingPlanFacadePart; +import static fr.ifremer.wao.services.service.ObsMerSamplingPlan.ObsMerSamplingPlanSampleRowPart; +import static fr.ifremer.wao.services.service.ObsMerSamplingPlan.ObsMerSamplingPlanSectorPart; public class ObsMerSamplingPlanServiceTest extends AbstractWaoServiceTest { @@ -137,4 +137,18 @@ } + @Test + public void testDeleteSampleRow() { + + fixtures.samplingPlan(); + + String sampleRowId = serviceContext.getPersistenceContext().getSampleRowDao().forCodeEquals("2010_M0011").findUnique().getTopiaId(); + + try { + service.deleteSampleRow(sampleRowId); + } catch (IllegalDeletionException e) { + Assert.fail("no exception should have been raised but " + e.getAllUsages() + " found"); + } + + } } Modified: trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/WaoInterceptor.java 2014-04-01 09:50:30 UTC (rev 1785) @@ -83,7 +83,7 @@ boolean loginCheat = getWaoApplicationContext(invocation).getApplicationConfig().isDevMode(); if (loginCheat) { // login à l'arrache - WaoUser admin = serviceContext.getPersistenceContext().getWaoUserDao().forLoginEquals("admin").findUnique(); + WaoUser admin = serviceContext.getPersistenceContext().getWaoUserDao().forLoginEquals("vincent.badts@ifremer.fr").findUnique(); admin.sizeUserProfile(); admin.sizeCanReadBoats(); admin.getCompany().getTopiaId(); Added: trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java =================================================================== --- trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java (rev 0) +++ trunk/wao-web/src/main/java/fr/ifremer/wao/web/action/obsmer/DeleteSampleRowAction.java 2014-04-01 09:50:30 UTC (rev 1785) @@ -0,0 +1,53 @@ +package fr.ifremer.wao.web.action.obsmer; + +import fr.ifremer.wao.services.service.IllegalDeletionException; +import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; +import fr.ifremer.wao.web.WaoJspActionSupport; +import org.apache.struts2.convention.annotation.Result; +import org.apache.struts2.convention.annotation.Results; + +@Results({ + @Result(name="error", type="redirectAction", params = { "actionName", "sampling-plan" }), + @Result(name="success", type="redirectAction", params = { "actionName", "sampling-plan" }) +}) +public class DeleteSampleRowAction extends WaoJspActionSupport { + + private static final long serialVersionUID = 1L; + + protected transient ObsMerSamplingPlanService service; + + protected String sampleRowId; + + public void setService(ObsMerSamplingPlanService service) { + this.service = service; + } + + public void setSampleRowId(String sampleRowId) { + this.sampleRowId = sampleRowId; + } + + @Override + public String execute() { + + String sampleRowCode = service.getSampleRow(sampleRowId).getCode(); + + try { + + service.deleteSampleRow(sampleRowId); + + session.addMessage(t("wao.ui.action.deleteSampleRow.success", sampleRowCode)); + + return SUCCESS; + + } catch (IllegalDeletionException e) { + + // TODO brendan 04/03/14 préciser le problème + session.addErrorMessages(t("wao.ui.action.deleteSampleRow.failure", sampleRowCode)); + + return ERROR; + + } + + } + +} \ No newline at end of file Modified: trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-web/src/main/resources/i18n/wao-web_en_GB.properties 2014-04-01 09:50:30 UTC (rev 1785) @@ -43,6 +43,8 @@ wao.ui.action.deleteNews.confirm=Are you sure you want to delete this news ? wao.ui.action.deleteSampleRow=Delete this sample row wao.ui.action.deleteSampleRow.confirm=Are you sure your want to delete this sample row ? +wao.ui.action.deleteSampleRow.failure=Sample row %s cannot be deleted +wao.ui.action.deleteSampleRow.success=Sample row %s deleted successfully wao.ui.action.deleteUser=Delete this user wao.ui.action.deleteUser.confirm=Are your sure you want to delete this user ? wao.ui.action.deleteWaoUser.failure=The user cannot be deleted Modified: trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties =================================================================== --- trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties 2014-04-01 09:50:30 UTC (rev 1785) @@ -43,6 +43,8 @@ wao.ui.action.deleteNews.confirm=Êtes-vous sûr de vouloir supprimer définitivement cette nouvelle ? wao.ui.action.deleteSampleRow=Supprimer la ligne du plan wao.ui.action.deleteSampleRow.confirm=Êtes-vous sûr de vouloir supprimer la ligne %s du plan ? +wao.ui.action.deleteSampleRow.failure=Impossible de supprimer la ligne %s +wao.ui.action.deleteSampleRow.success=La ligne %s a bien été supprimée wao.ui.action.deleteUser=Supprimer l'utilisateur wao.ui.action.deleteUser.confirm=Êtes-vous sûr de vouloir supprimer l'utilisateur ? wao.ui.action.deleteWaoUser.failure=La suppression de l'utilisateur a échoué Modified: trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp =================================================================== --- trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-03-31 16:34:14 UTC (rev 1784) +++ trunk/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp 2014-04-01 09:50:30 UTC (rev 1785) @@ -435,7 +435,7 @@ <s:param name="sampleRowId" value="sampleRowId" /> </s:url> <s:a href="%{deleteSampleRowUrl}"> - <i class="icon-trash"></i> <s:text name="wao.ui.action.delete" /> + <i class="icon-trash"></i> <s:text name="wao.ui.action.deleteSampleRow" /> </s:a> </li> </s:if>
participants (1)
-
bleny@users.forge.codelutin.com