This is an automated email from the git hooks/post-receive script. New commit to branch feature/2263 in repository wao. See http://git.codelutin.com/wao.git commit fde3c645ee6d1671b268b802f58d3fa5e3833fa8 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Dec 18 15:09:42 2014 +0100 On gère les filtres dans le plan scléro --- .../main/java/fr/ifremer/wao/SampleRowsFilter.java | 18 ++--- .../java/fr/ifremer/wao/entity/BoatTopiaDao.java | 2 +- .../fr/ifremer/wao/entity/SampleRowTopiaDao.java | 4 +- .../ifremer/wao/services/service/BoatsService.java | 6 +- .../wao/services/service/ContactsService.java | 2 +- .../services/service/SampleRowsFilterValues.java | 88 ++++++++++++++++------ .../wao/services/service/SamplingPlanService.java | 4 +- .../service/SclerochronologySamplingPlan.java | 11 +++ .../resources/i18n/wao-services_en_GB.properties | 2 +- .../services/service/SclerochronologyFixtures.java | 15 ++++ .../SclerochronologySamplingPlanServiceTest.java | 24 ++++++ .../action/SampleRowsFilterValuesJsonAction.java | 34 +++++++-- .../main/webapp/WEB-INF/content/boat-details.jsp | 2 +- .../src/main/webapp/WEB-INF/content/contacts.jsp | 2 +- .../WEB-INF/content/obsmer/sampling-plan.jsp | 6 +- .../WEB-INF/content/obsvente/sampling-plan.jsp | 6 +- .../content/sclerochronology/sampling-plan.jsp | 12 +-- .../src/main/webapp/WEB-INF/content/synthesis.jsp | 4 +- 18 files changed, 178 insertions(+), 64 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java b/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java index 1bd98e0..6fc1321 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java @@ -67,7 +67,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { protected Set<String> terrestrialDistrictIds; - protected Set<String> companyIds; + protected Set<String> organisationIds; protected LinkedHashSet<String> orderByArguments; @@ -159,12 +159,12 @@ public class SampleRowsFilter extends AbstractWaoFilter { this.terrestrialDistrictIds = terrestrialDistrictIds; } - public Set<String> getCompanyIds() { - return companyIds; + public Set<String> getOrganisationIds() { + return organisationIds; } - public void setCompanyIds(Set<String> companyIds) { - this.companyIds = companyIds; + public void setOrganisationIds(Set<String> organisationIds) { + this.organisationIds = organisationIds; } public LinkedHashSet<String> getOrderByArguments() { @@ -197,7 +197,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { || CollectionUtils.isNotEmpty(targetSpeciesDcfIds) || CollectionUtils.isNotEmpty(samplingStrategies) || CollectionUtils.isNotEmpty(terrestrialDistrictIds) - || CollectionUtils.isNotEmpty(companyIds); + || CollectionUtils.isNotEmpty(organisationIds); return filled; } @@ -221,7 +221,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { && WaoUtils.isEqualCollection(targetSpeciesDcfIds, that.targetSpeciesDcfIds) && WaoUtils.isEqualCollection(samplingStrategies, that.samplingStrategies) && WaoUtils.isEqualCollection(terrestrialDistrictIds, that.terrestrialDistrictIds) - && WaoUtils.isEqualCollection(companyIds, that.companyIds) + && WaoUtils.isEqualCollection(organisationIds, that.organisationIds) && WaoUtils.isEqualCollection(orderByArguments, that.orderByArguments); return equals; @@ -247,7 +247,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { hashCode = 31 * hashCode + WaoUtils.collectionHashCode(targetSpeciesDcfIds); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(samplingStrategies); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(terrestrialDistrictIds); - hashCode = 31 * hashCode + WaoUtils.collectionHashCode(companyIds); + hashCode = 31 * hashCode + WaoUtils.collectionHashCode(organisationIds); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(orderByArguments); return hashCode; } @@ -267,7 +267,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { clone.targetSpeciesDcfIds = targetSpeciesDcfIds == null ? null : new HashSet<>(targetSpeciesDcfIds); clone.samplingStrategies = samplingStrategies == null ? null : new HashSet<>(samplingStrategies); clone.terrestrialDistrictIds = terrestrialDistrictIds == null ? null : new HashSet<>(terrestrialDistrictIds); - clone.companyIds = companyIds == null ? null : new HashSet<>(companyIds); + clone.organisationIds = organisationIds == null ? null : new HashSet<>(organisationIds); clone.orderByArguments = orderByArguments == null ? null : new LinkedHashSet<>(orderByArguments); return clone; } diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java index d63e993..ab7c231 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java @@ -149,7 +149,7 @@ public class BoatTopiaDao extends AbstractBoatTopiaDao<Boat> { || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getTargetSpeciesDcfIds()) || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getSamplingStrategies()) || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getTerrestrialDistrictIds()) - || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getCompanyIds()); + || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getOrganisationIds()); return filled; } } diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java index 8506a89..950fe8e 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java @@ -99,8 +99,8 @@ public class SampleRowTopiaDao extends AbstractSampleRowTopiaDao<SampleRow> { query.addIn(SampleRow.PROPERTY_PROGRAM_NAME, filter.getProgramNames()); } - if (CollectionUtils.isNotEmpty(filter.getCompanyIds())) { - query.addTopiaIdIn(SampleRow.PROPERTY_ORGANISATION, filter.getCompanyIds()); + if (CollectionUtils.isNotEmpty(filter.getOrganisationIds())) { + query.addTopiaIdIn(SampleRow.PROPERTY_ORGANISATION, filter.getOrganisationIds()); } if (CollectionUtils.isNotEmpty(filter.getSamplingStrategies())) { diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsService.java index 027b80d..da286422a 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/BoatsService.java @@ -204,7 +204,7 @@ public class BoatsService extends WaoServiceSupport { ContactsFilter filter = new ContactsFilter(); filter.getSampleRowFilter().setObsProgram(obsProgram); filter.getBoatFilter().setBoatIds(ImmutableSet.of(boatId)); - filter.getSampleRowFilter().setCompanyIds(ImmutableSet.of(companyId)); + filter.getSampleRowFilter().setOrganisationIds(ImmutableSet.of(companyId)); long contactsCount = getContactDao().forFilter(filter, false).count(); Date now = serviceContext.getNow(); @@ -267,13 +267,13 @@ public class BoatsService extends WaoServiceSupport { long contactsCount = dao.forFilter(filter, false).count(); - filter.getSampleRowFilter().setCompanyIds(ImmutableSet.of(companyId)); + filter.getSampleRowFilter().setOrganisationIds(ImmutableSet.of(companyId)); long contactsCompanyCount = dao.forFilter(filter, false).count(); filter.setContactStates(ImmutableSet.of(ContactState.OBSERVATION_DONE)); long observationsCompanyCount = dao.forFilter(filter, false).count(); - filter.getSampleRowFilter().setCompanyIds(null); + filter.getSampleRowFilter().setOrganisationIds(null); long observationsCount = dao.forFilter(filter, false).count(); Preconditions.checkState(contactsCompanyCount <= contactsCount); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java index ebef067..b2d5cd5 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/ContactsService.java @@ -107,7 +107,7 @@ public class ContactsService extends WaoServiceSupport { // DO NOT REMOVE THIS if (authenticatedWaoUser.isCoordinatorOrObserver()) { String authenticatedWaoUserCompanyTopiaId = authenticatedWaoUser.getWaoUser().getCompany().getTopiaId(); - newContactsFilter.getSampleRowFilter().setCompanyIds(ImmutableSet.of(authenticatedWaoUserCompanyTopiaId)); + newContactsFilter.getSampleRowFilter().setOrganisationIds(ImmutableSet.of(authenticatedWaoUserCompanyTopiaId)); } if (authenticatedWaoUser.isProfessional()) { diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java index c9c430b..4184fc4 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/SampleRowsFilterValues.java @@ -22,11 +22,11 @@ package fr.ifremer.wao.services.service; */ import com.google.common.base.Optional; -import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.Dcf5Code; import fr.ifremer.wao.entity.FishingGearDcf; import fr.ifremer.wao.entity.FishingZone; import fr.ifremer.wao.entity.ObsProgram; +import fr.ifremer.wao.entity.Organisation; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.TargetSpeciesDcf; import fr.ifremer.wao.entity.TerrestrialLocation; @@ -52,7 +52,7 @@ public class SampleRowsFilterValues extends AbstractFilterValues { protected SortedSet<FilterOption> programNames = new TreeSet<>(); - protected SortedSet<FilterOption> companies = new TreeSet<>(); + protected SortedSet<FilterOption> organisations = new TreeSet<>(); protected SortedSet<FilterOption> samplingStrategies = new TreeSet<>(); @@ -64,6 +64,12 @@ public class SampleRowsFilterValues extends AbstractFilterValues { /** Values are the code and the label i18n key. */ protected SortedSet<FilterOption> targetSpeciesDcfs = new TreeSet<>(); + protected SortedSet<FilterOption> individualMeasurementStrategies = new TreeSet<>(); + + protected SortedSet<FilterOption> sclerochronologySamplingContexts = new TreeSet<>(); + + protected SortedSet<FilterOption> species = new TreeSet<>(); + public SampleRowsFilterValues(Locale locale, ObsProgram obsProgram, Optional<String> optionalCompanyId) { super(locale, obsProgram, optionalCompanyId); } @@ -99,11 +105,11 @@ public class SampleRowsFilterValues extends AbstractFilterValues { // XXX brendan 07/07/14 dans le calcul des filter values, on évite tout ça pour les perfs programNames.add(FilterOption.forString(sampleRow.getProgramName())); - Company company = sampleRow.getCompany(); - if (company != null) { - companies.add(FilterOption.forValueAndLabel(company.getTopiaId(), company.getName())); + Organisation organisation = sampleRow.getOrganisation(); + if (organisation != null) { + organisations.add(FilterOption.forValueAndLabel(organisation.getTopiaId(), organisation.getFullName())); } - if (sampleRow.getObsProgram().isObsVente()) { + if (obsProgram.isObsVente()) { samplingStrategies.add(FilterOption.forEnum(locale, sampleRow.getSamplingStrategy())); if (sampleRow.isTerrestrialLocationsNotEmpty()) { for (TerrestrialLocation terrestrialDistrict : sampleRow.getTerrestrialLocations()) { @@ -116,24 +122,34 @@ public class SampleRowsFilterValues extends AbstractFilterValues { } } } - for (Dcf5Code dcf5Code : sampleRow.getDcf5Code()) { - FishingGearDcf fishingGearDcf = dcf5Code.getFishingGearDcf(); - String fishingGearLabel = fishingGearDcf.getCode() + " - " + l(locale, fishingGearDcf.getI18nKey()); - fishingGearDcfs.add( - FilterOption.forValueAndLabel( - fishingGearDcf.getTopiaId(), - fishingGearLabel) - ); - TargetSpeciesDcf targetSpeciesDcf = dcf5Code.getTargetSpeciesDcf(); - if (targetSpeciesDcf != null) { - String targetspeciesLabel = targetSpeciesDcf.getCode() + " - " + l(locale, targetSpeciesDcf.getI18nKey()); - targetSpeciesDcfs.add( + if (obsProgram.isObsMer() || obsProgram.isObsVente()) { + for (Dcf5Code dcf5Code : sampleRow.getDcf5Code()) { + FishingGearDcf fishingGearDcf = dcf5Code.getFishingGearDcf(); + String fishingGearLabel = fishingGearDcf.getCode() + " - " + l(locale, fishingGearDcf.getI18nKey()); + fishingGearDcfs.add( FilterOption.forValueAndLabel( - targetSpeciesDcf.getTopiaId(), - targetspeciesLabel) + fishingGearDcf.getTopiaId(), + fishingGearLabel) ); + TargetSpeciesDcf targetSpeciesDcf = dcf5Code.getTargetSpeciesDcf(); + if (targetSpeciesDcf != null) { + String targetSpeciesLabel = targetSpeciesDcf.getCode() + " - " + l(locale, targetSpeciesDcf.getI18nKey()); + targetSpeciesDcfs.add( + FilterOption.forValueAndLabel( + targetSpeciesDcf.getTopiaId(), + targetSpeciesLabel) + ); + } } } + if (obsProgram.isSclerochronology()) { + individualMeasurementStrategies.add( + FilterOption.forEnum(locale, sampleRow.getIndividualMeasurementStrategy())); + sclerochronologySamplingContexts.add( + FilterOption.forEnum(locale, sampleRow.getSclerochronologySamplingContext())); + species.add( + FilterOption.forValueAndLabel(sampleRow.getSpecies().getTopiaId(), sampleRow.getSpecies().getVernacularName())); + } } } } @@ -154,8 +170,8 @@ public class SampleRowsFilterValues extends AbstractFilterValues { return programNames; } - public SortedSet<FilterOption> getCompanies() { - return companies; + public SortedSet<FilterOption> getOrganisations() { + return organisations; } public SortedSet<FilterOption> getSamplingStrategies() { @@ -174,6 +190,18 @@ public class SampleRowsFilterValues extends AbstractFilterValues { return targetSpeciesDcfs; } + public SortedSet<FilterOption> getIndividualMeasurementStrategies() { + return individualMeasurementStrategies; + } + + public SortedSet<FilterOption> getSclerochronologySamplingContexts() { + return sclerochronologySamplingContexts; + } + + public SortedSet<FilterOption> getSpecies() { + return species; + } + public void setFishingZoneFacadeNames(SortedSet<FilterOption> fishingZoneFacadeNames) { this.fishingZoneFacadeNames = fishingZoneFacadeNames; } @@ -190,8 +218,8 @@ public class SampleRowsFilterValues extends AbstractFilterValues { this.programNames = programNames; } - public void setCompanies(SortedSet<FilterOption> companies) { - this.companies = companies; + public void setOrganisations(SortedSet<FilterOption> organisations) { + this.organisations = organisations; } public void setSamplingStrategies(SortedSet<FilterOption> samplingStrategies) { @@ -210,6 +238,18 @@ public class SampleRowsFilterValues extends AbstractFilterValues { this.targetSpeciesDcfs = targetSpeciesDcfs; } + public void setIndividualMeasurementStrategies(SortedSet<FilterOption> individualMeasurementStrategies) { + this.individualMeasurementStrategies = individualMeasurementStrategies; + } + + public void setSclerochronologySamplingContexts(SortedSet<FilterOption> sclerochronologySamplingContexts) { + this.sclerochronologySamplingContexts = sclerochronologySamplingContexts; + } + + public void setSpecies(SortedSet<FilterOption> species) { + this.species = species; + } + public SampleRowsFilterValues getCopyWithSingleProperty(String propertyName) { SampleRowsFilterValues copy = new SampleRowsFilterValues(locale, obsProgram, optionalCompanyId); copyProperty(copy, propertyName); 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 6df485f..90e934b 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 @@ -196,7 +196,7 @@ public class SamplingPlanService extends WaoServiceSupport { // Very very important to do that at beginning // Evo #2227 : Guest user has no default company filter if (authenticatedWaoUser.isCoordinatorOrObserver()) { - newFilter.setCompanyIds(Sets.newHashSet(authenticatedWaoUser.getCompany().getTopiaId())); + newFilter.setOrganisationIds(Sets.newHashSet(authenticatedWaoUser.getCompany().getTopiaId())); } return newFilter; @@ -207,7 +207,7 @@ public class SamplingPlanService extends WaoServiceSupport { SampleRowsFilter sampleRowsFilter = newSampleRowsFilter(authenticatedWaoUser); - sampleRowsFilter.setCompanyIds(ImmutableSet.of(companyId)); + sampleRowsFilter.setOrganisationIds(ImmutableSet.of(companyId)); Date now = getNow(); sampleRowsFilter.setPeriodFrom(now); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlan.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlan.java index d23fefd..9fccaff 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlan.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlan.java @@ -40,6 +40,8 @@ public class SclerochronologySamplingPlan extends SamplingPlan implements Iterab public static class SclerochronologySamplingPlanSampleRowPart extends SamplingPlanSampleRowPart { + protected final String organisationFullName; + protected String samplingContext; protected String samplingContextInfo; @@ -54,6 +56,11 @@ public class SclerochronologySamplingPlan extends SamplingPlan implements Iterab samplingContext = WaoUtils.l(locale, sampleRow.getSclerochronologySamplingContext()); samplingContextInfo = sampleRow.getSclerochronologySamplingContextInfo(); individualMeasurementStrategy = WaoUtils.l(locale, sampleRow.getIndividualMeasurementStrategy()); + organisationFullName = sampleRow.getOrganisation().getFullName(); + } + + public String getOrganisationFullName() { + return organisationFullName; } public String getSamplingContextInfo() { @@ -102,6 +109,10 @@ public class SclerochronologySamplingPlan extends SamplingPlan implements Iterab throw new UnsupportedOperationException("not in " + ObsProgram.SCLEROCHRONOLOGY); } + @Override + public String getCompanyName() { + throw new UnsupportedOperationException("not in " + ObsProgram.SCLEROCHRONOLOGY); + } } } \ No newline at end of file diff --git a/wao-services/src/main/resources/i18n/wao-services_en_GB.properties b/wao-services/src/main/resources/i18n/wao-services_en_GB.properties index a8a104a..77607c5 100644 --- a/wao-services/src/main/resources/i18n/wao-services_en_GB.properties +++ b/wao-services/src/main/resources/i18n/wao-services_en_GB.properties @@ -86,7 +86,7 @@ wao.import.sampleRow.failure.codeMustBeUnique=Line %s\: The sample row code must wao.import.sampleRow.failure.fishingZoneMissing=Line %s\: You must precise at least one fishing zone wao.import.sampleRow.failure.missingDcf5Codes=Line %s\: You must precise at least one DCF5 code wao.import.sampleRow.failure.missingFishingZones=Line %s\: You must precise at least one fishing zone -wao.import.sampleRow.failure.missingIndividualMeasurementStrategy= Line %s\: You myst precise measurement strategy +wao.import.sampleRow.failure.missingIndividualMeasurementStrategy=Line %s\: You myst precise measurement strategy wao.import.sampleRow.failure.missingPeriodBegin=Line %s\: You must precise the period beginning wao.import.sampleRow.failure.missingPeriodEnd=Line %s\: You must precise the period end wao.import.sampleRow.failure.missingProfessionSpecies=Line %s\: For this sampling strategy, you must provide the species diff --git a/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologyFixtures.java b/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologyFixtures.java index 0310d5e..431bcb7 100644 --- a/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologyFixtures.java +++ b/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologyFixtures.java @@ -47,4 +47,19 @@ public class SclerochronologyFixtures extends WaoFixtures { } } + public void samplingPlan() { + fishingZones(); + species(); + oceanet(); + emhLaboratory(); + InputStream input = null; + try { + input = getClass().getResourceAsStream("/import/plan-sclerochronologie.csv"); + serviceContext.newService(SclerochronologySamplingPlanService.class).importSamplingPlan(admin(), input); + } catch (ImportErrorException e) { + throw new WaoTechnicalException(e); + } finally { + IOUtils.closeQuietly(input); + } + } } diff --git a/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlanServiceTest.java b/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlanServiceTest.java index b959dab..24b9d68 100644 --- a/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlanServiceTest.java +++ b/wao-services/src/test/java/fr/ifremer/wao/services/service/SclerochronologySamplingPlanServiceTest.java @@ -1,12 +1,15 @@ package fr.ifremer.wao.services.service; +import fr.ifremer.wao.SampleRowsFilter; import fr.ifremer.wao.services.AbstractWaoServiceTest; +import fr.ifremer.wao.services.AuthenticatedWaoUser; import org.apache.commons.io.IOUtils; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.junit.Assert; import org.junit.Before; import org.junit.Test; +import org.nuiton.util.DateUtil; import java.io.InputStream; @@ -46,6 +49,27 @@ public class SclerochronologySamplingPlanServiceTest extends AbstractWaoServiceT } finally { IOUtils.closeQuietly(input); } + } + @Test + public void newSampleRowsFilterPeriodMustBeOnJanuaryToDecemberOfTheCurrentYear() { + applicationContext.setDate(DateUtil.createDate(15, 1, 2015)); + fixtures.samplingPlan(); + SampleRowsFilter filter = service.newSampleRowsFilter(fixtures.admin()); + Assert.assertEquals(DateUtil.createDate(1, 1, 2015), filter.getPeriodFrom()); + Assert.assertEquals(DateUtil.createDate(1, 12, 2015), filter.getPeriodTo()); + } + + @Test + public void samplingPlan() { + applicationContext.setDate(DateUtil.createDate(15, 1, 2015)); + fixtures.samplingPlan(); + AuthenticatedWaoUser admin = fixtures.admin(); + SampleRowsFilter filter = service.newSampleRowsFilter(admin); + SclerochronologySamplingPlan samplingPlan = service.getSamplingPlan(admin, filter); + Assert.assertEquals(2, samplingPlan.getFilterValues().getSpecies().size()); + Assert.assertEquals(3, samplingPlan.getFilterValues().getIndividualMeasurementStrategies().size()); + Assert.assertEquals(3, samplingPlan.getFilterValues().getSclerochronologySamplingContexts().size()); + Assert.assertEquals(2, samplingPlan.getFilterValues().getOrganisations().size()); } } \ No newline at end of file diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/SampleRowsFilterValuesJsonAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/SampleRowsFilterValuesJsonAction.java index af44cc4..e9ebef9 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/SampleRowsFilterValuesJsonAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/SampleRowsFilterValuesJsonAction.java @@ -23,10 +23,13 @@ package fr.ifremer.wao.web.action; import com.opensymphony.xwork2.Preparable; import fr.ifremer.wao.SampleRowsFilter; +import fr.ifremer.wao.entity.ObsProgram; +import fr.ifremer.wao.services.AuthenticatedWaoUser; import fr.ifremer.wao.services.service.ObsMerSamplingPlanService; import fr.ifremer.wao.services.service.ObsVenteSamplingPlanService; import fr.ifremer.wao.services.service.SampleRowsFilterValues; import fr.ifremer.wao.services.service.SamplingPlan; +import fr.ifremer.wao.services.service.SclerochronologySamplingPlanService; import fr.ifremer.wao.web.WaoJsonActionSupport; import org.apache.commons.lang3.StringUtils; @@ -34,9 +37,11 @@ public class SampleRowsFilterValuesJsonAction extends WaoJsonActionSupport imple private static final long serialVersionUID = 1L; - protected transient ObsMerSamplingPlanService obsMerSamplingPlanService; + protected ObsMerSamplingPlanService obsMerSamplingPlanService; - protected transient ObsVenteSamplingPlanService obsVenteSamplingPlanService; + protected ObsVenteSamplingPlanService obsVenteSamplingPlanService; + + protected SclerochronologySamplingPlanService sclerochronologySamplingPlanService; protected SampleRowsFilter filter; @@ -52,6 +57,10 @@ public class SampleRowsFilterValuesJsonAction extends WaoJsonActionSupport imple this.obsVenteSamplingPlanService = obsVenteSamplingPlanService; } + public void setSclerochronologySamplingPlanService(SclerochronologySamplingPlanService sclerochronologySamplingPlanService) { + this.sclerochronologySamplingPlanService = sclerochronologySamplingPlanService; + } + public SampleRowsFilter getFilter() { if (filter == null) { prepare(); @@ -66,7 +75,18 @@ public class SampleRowsFilterValuesJsonAction extends WaoJsonActionSupport imple @Override public void prepare() { - filter = obsMerSamplingPlanService.newSampleRowsFilter(session.getAuthenticatedWaoUser()); + AuthenticatedWaoUser authenticatedWaoUser = session.getAuthenticatedWaoUser(); + ObsProgram obsProgram = authenticatedWaoUser.getObsProgram(); + + if (obsProgram.isObsMer()) { + filter = obsMerSamplingPlanService.newSampleRowsFilter(authenticatedWaoUser); + } else if (obsProgram.isObsVente()) { + filter = obsVenteSamplingPlanService.newSampleRowsFilter(authenticatedWaoUser); + } else if (obsProgram.isSclerochronology()) { + filter = sclerochronologySamplingPlanService.newSampleRowsFilter(authenticatedWaoUser); + } else { + throw new UnsupportedOperationException(); + } } @@ -74,13 +94,17 @@ public class SampleRowsFilterValuesJsonAction extends WaoJsonActionSupport imple public String execute() { SamplingPlan samplingPlan; - if (filter.getObsProgram().isObsMer()) { + ObsProgram obsProgram = filter.getObsProgram(); + if (obsProgram.isObsMer()) { samplingPlan = obsMerSamplingPlanService.getSamplingPlan(session.getAuthenticatedWaoUser(), filter); - } else if (filter.getObsProgram().isObsVente()) { + } else if (obsProgram.isObsVente()) { samplingPlan = obsVenteSamplingPlanService.getSamplingPlan(session.getAuthenticatedWaoUser(), filter); + } else if (obsProgram.isSclerochronology()) { + samplingPlan = sclerochronologySamplingPlanService.getSamplingPlan(session.getAuthenticatedWaoUser(), filter); } else { throw new UnsupportedOperationException(); } + filterValues = samplingPlan.getFilterValues(); if (StringUtils.isNotBlank(filterValuesField)) { diff --git a/wao-web/src/main/webapp/WEB-INF/content/boat-details.jsp b/wao-web/src/main/webapp/WEB-INF/content/boat-details.jsp index 8348778..622afb5 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/boat-details.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/boat-details.jsp @@ -171,7 +171,7 @@ <s:url action="contacts!applyFilter" id="viewAssociatedContactsForBoatUrl"> <s:param name="filter.boatFilter.registrationCode" value="boatDetails.boatInfos.boat.registrationCode"/> - <s:param name="filter.sampleRowFilter.companyIds" value="boatDetails.boatInfos.company.topiaId"/> + <s:param name="filter.sampleRowFilter.organisationIds" value="boatDetails.boatInfos.company.topiaId"/> <s:param name="filter.periodFrom"/> <s:param name="filter.periodTo"/> </s:url> diff --git a/wao-web/src/main/webapp/WEB-INF/content/contacts.jsp b/wao-web/src/main/webapp/WEB-INF/content/contacts.jsp index a644fea..0181289 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/contacts.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/contacts.jsp @@ -35,7 +35,7 @@ var contactsFilterMappings = [ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> { - filterName: 'sampleRowFilter.companyIds', + filterName: 'sampleRowFilter.organisationIds', filterLabel: "<s:text name="wao.ui.entity.Company"/>", filterValuesField: 'sampleRowsFilterValues.companies', }, diff --git a/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp b/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp index 3a6e28b..08138b8 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/obsmer/sampling-plan.jsp @@ -37,9 +37,9 @@ var sampleRowsFilterMappings = [ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> { - filterName: 'companyIds', + filterName: 'organisationIds', filterLabel: "<s:text name="wao.ui.entity.Company"/>", - filterValuesField: 'companies', + filterValuesField: 'organisations', }, </s:if> { @@ -458,7 +458,7 @@ <s:url action="sampling-plan!applyFilter" id="sampleRowZoomUrl"> <s:param name="filter.periodFrom" value="%{formatMonth(firstSampleMonthDate)}"/> <s:param name="filter.periodTo" value="%{formatMonth(lastSampleMonthDate)}"/> - <s:param name="filter.companyIds" value="%{filter.companyIds}"/> + <s:param name="filter.organisationIds" value="%{filter.organisationIds}"/> <s:param name="filter.programNames" value="%{filter.programNames}"/> <s:param name="filter.sampleRowCodes" value="%{filter.sampleRowCodes}"/> <s:param name="filter.fishingZoneFacadeNames" value="%{filter.targetSpeciesDcfIds}"/> diff --git a/wao-web/src/main/webapp/WEB-INF/content/obsvente/sampling-plan.jsp b/wao-web/src/main/webapp/WEB-INF/content/obsvente/sampling-plan.jsp index cd1417c..c785096 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/obsvente/sampling-plan.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/obsvente/sampling-plan.jsp @@ -38,9 +38,9 @@ var sampleRowsFilterMappings = [ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> { - filterName: 'companyIds', + filterName: 'organisationIds', filterLabel: "<s:text name="wao.ui.entity.Company"/>", - filterValuesField: 'companies', + filterValuesField: 'organisations', }, </s:if> { @@ -417,7 +417,7 @@ <s:url action="sampling-plan!applyFilter" id="sampleRowZoomUrl"> <s:param name="filter.periodFrom" value="%{formatMonth(firstSampleMonthDate)}"/> <s:param name="filter.periodTo" value="%{formatMonth(lastSampleMonthDate)}"/> - <s:param name="filter.companyIds" value="%{filter.companyIds}"/> + <s:param name="filter.organisationIds" value="%{filter.organisationIds}"/> <s:param name="filter.programNames" value="%{filter.programNames}"/> <s:param name="filter.sampleRowCodes" value="%{filter.sampleRowCodes}"/> <s:param name="filter.fishingZoneFacadeNames" value="%{filter.targetSpeciesDcfIds}"/> diff --git a/wao-web/src/main/webapp/WEB-INF/content/sclerochronology/sampling-plan.jsp b/wao-web/src/main/webapp/WEB-INF/content/sclerochronology/sampling-plan.jsp index 30dd0c5..b9c4b7b 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/sclerochronology/sampling-plan.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/sclerochronology/sampling-plan.jsp @@ -38,9 +38,9 @@ var sampleRowsFilterMappings = [ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> { - filterName: 'companyIds', - filterLabel: "<s:text name="wao.ui.entity.Company"/>", - filterValuesField: 'companies', + filterName: 'organisationIds', + filterLabel: "<s:text name="wao.ui.entity.Organisation"/>", + filterValuesField: 'organisations', }, </s:if> { @@ -66,7 +66,7 @@ { filterName: 'samplingContext', filterLabel: "<s:text name="wao.ui.field.SampleRow.sclerochronologySamplingContext"/>", - filterValuesField: 'samplingContexts', + filterValuesField: 'sclerochronologySamplingContexts', }, { filterName: 'individualMeasurementStrategy', @@ -288,7 +288,7 @@ <td><s:property value="programName" /></td> <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> <td class="only-in-full-view"> - <s:property value="companyName" /> + <s:property value="organisationFullName" /> </td> </s:if> <td class="only-in-full-view"><s:property value="fishingZones" /></td> @@ -366,7 +366,7 @@ <s:url action="sampling-plan!applyFilter" id="sampleRowZoomUrl"> <s:param name="filter.periodFrom" value="%{formatMonth(firstSampleMonthDate)}"/> <s:param name="filter.periodTo" value="%{formatMonth(lastSampleMonthDate)}"/> - <s:param name="filter.companyIds" value="%{filter.companyIds}"/> + <s:param name="filter.organisationIds" value="%{filter.organisationIds}"/> <s:param name="filter.programNames" value="%{filter.programNames}"/> <s:param name="filter.sampleRowCodes" value="%{filter.sampleRowCodes}"/> <s:param name="filter.fishingZoneFacadeNames" value="%{filter.targetSpeciesDcfIds}"/> diff --git a/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp b/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp index 0f1d4ac..c7a8be8 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/synthesis.jsp @@ -37,9 +37,9 @@ var contactsFilterMappings = [ <s:if test="authenticatedWaoUser.authorizedToViewOtherCompanies"> { - filterName: 'sampleRowFilter.companyIds', + filterName: 'sampleRowFilter.organisationIds', filterLabel: "<s:text name="wao.ui.entity.Company"/>", - filterValuesField: 'sampleRowsFilterValues.companies', + filterValuesField: 'sampleRowsFilterValues.organisations', }, </s:if> { -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.