branch develop updated (86d2bb9 -> 9eabb48)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository wao. See http://git.codelutin.com/wao.git from 86d2bb9 Dans les filtres, on ajoute le nom commun en plus du nom scientifique de l'espèce (testable-client #6638) new cee2eb5 On autorise le coordinateur à filtrer le plan selon le labo new d2a2f30 On introduit un nouveau filtre caché pour la société (testable-client #6641) new 9eabb48 Fusion #6641 dans develop The 3 revisions listed above as "new" are entirely new to this repository and will be described in separate emails. The revisions listed as "adds" were already present in the repository and have only been added to this reference. Detailed log of new commits: commit 9eabb48deb50fab0d909a8f37f15a2f5458caff5 Merge: 86d2bb9 d2a2f30 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 16:13:15 2015 +0100 Fusion #6641 dans develop commit d2a2f30b5f13687adec07d8eceaa3697faabff8a Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 16:12:14 2015 +0100 On introduit un nouveau filtre caché pour la société (testable-client #6641) commit cee2eb57854af5a8921bbff86c983f33303bd5d5 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 11:25:45 2015 +0100 On autorise le coordinateur à filtrer le plan selon le labo Summary of changes: .../main/java/fr/ifremer/wao/SampleRowsFilter.java | 14 ++++++++++++++ .../java/fr/ifremer/wao/entity/BoatTopiaDao.java | 3 ++- .../fr/ifremer/wao/entity/SampleRowTopiaDao.java | 5 +++++ ...cies,_add_laboratories,_add_sclerochronology.sql | 4 ++++ wao-persistence/src/main/xmi/wao-model.zargo | Bin 62375 -> 62432 bytes .../ifremer/wao/services/AuthenticatedWaoUser.java | 9 ++++++++- .../wao/services/service/ContactsService.java | 12 +++--------- .../services/service/SampleRowsFilterValues.java | 11 +++++++++++ .../wao/services/service/SamplingPlanService.java | 10 +++------- .../service/administration/CompaniesService.java | 2 +- 10 files changed, 51 insertions(+), 19 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 cee2eb57854af5a8921bbff86c983f33303bd5d5 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 11:25:45 2015 +0100 On autorise le coordinateur à filtrer le plan selon le labo --- ...cies,_add_laboratories,_add_sclerochronology.sql | 4 ++++ wao-persistence/src/main/xmi/wao-model.zargo | Bin 62375 -> 62432 bytes .../ifremer/wao/services/AuthenticatedWaoUser.java | 9 ++++++++- .../service/administration/CompaniesService.java | 2 +- 4 files changed, 13 insertions(+), 2 deletions(-) diff --git a/wao-persistence/src/main/resources/db/migration/V5_0__add_species,_add_laboratories,_add_sclerochronology.sql b/wao-persistence/src/main/resources/db/migration/V5_0__add_species,_add_laboratories,_add_sclerochronology.sql index 24e0ddc..808980f 100644 --- a/wao-persistence/src/main/resources/db/migration/V5_0__add_species,_add_laboratories,_add_sclerochronology.sql +++ b/wao-persistence/src/main/resources/db/migration/V5_0__add_species,_add_laboratories,_add_sclerochronology.sql @@ -79,3 +79,7 @@ alter table Contact add column sampleSize integer; alter table Contact add column sampleSubmission timestamp without time zone; alter table Contact add column sampleReception timestamp without time zone; alter table Contact add column sampleTreatment timestamp without time zone; + +alter table Company add column ifremer boolean; +update Company set ifremer = false; +update Company set ifremer = true where topiaId = 'fr.ifremer.wao.entity.Company#1264666492968#0.7507011202827637'; diff --git a/wao-persistence/src/main/xmi/wao-model.zargo b/wao-persistence/src/main/xmi/wao-model.zargo index 4b44361..9b5710d 100644 Binary files a/wao-persistence/src/main/xmi/wao-model.zargo and b/wao-persistence/src/main/xmi/wao-model.zargo differ diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java b/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java index 2492aa3..38944d7 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/AuthenticatedWaoUser.java @@ -246,7 +246,14 @@ public class AuthenticatedWaoUser implements Serializable{ } public boolean isAuthorizedToViewOtherCompanies() { - return ! (userProfile.isCoordinatorOrObserver() || userProfile.isGuest()); + boolean authorizedToViewOthersCompanies; + if (userProfile.getObsProgram().isSclerochronology()) { + authorizedToViewOthersCompanies = userProfile.isAdmin() + || userProfile.isCoordinator() && waoUser.getCompany().isIfremer(); + } else { + authorizedToViewOthersCompanies = ! (userProfile.isCoordinatorOrObserver() || userProfile.isGuest()); + } + return authorizedToViewOthersCompanies; } public boolean isAuthorizedToViewBoatDetails() { 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 2f7aa05..b8dcc74 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 @@ -87,7 +87,7 @@ public class CompaniesService extends WaoServiceSupport { CompanyTopiaDao dao = getCompanyDao(); - Company ifremer = dao.forNameEquals("IFREMER").findUnique(); + Company ifremer = dao.forIfremerEquals(true).findUnique(); return ifremer; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 d2a2f30b5f13687adec07d8eceaa3697faabff8a Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 16:12:14 2015 +0100 On introduit un nouveau filtre caché pour la société (testable-client #6641) --- .../src/main/java/fr/ifremer/wao/SampleRowsFilter.java | 14 ++++++++++++++ .../src/main/java/fr/ifremer/wao/entity/BoatTopiaDao.java | 3 ++- .../main/java/fr/ifremer/wao/entity/SampleRowTopiaDao.java | 5 +++++ .../fr/ifremer/wao/services/service/ContactsService.java | 12 +++--------- .../wao/services/service/SampleRowsFilterValues.java | 11 +++++++++++ .../ifremer/wao/services/service/SamplingPlanService.java | 10 +++------- 6 files changed, 38 insertions(+), 17 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 d0db199..f634ae6 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/SampleRowsFilter.java @@ -71,6 +71,8 @@ public class SampleRowsFilter extends AbstractWaoFilter { protected Set<String> terrestrialDistrictIds; + protected Set<String> organisationCompanyIds; + protected Set<String> organisationIds; protected Set<String> species; @@ -185,6 +187,14 @@ public class SampleRowsFilter extends AbstractWaoFilter { this.organisationIds = organisationIds; } + public Set<String> getOrganisationCompanyIds() { + return organisationCompanyIds; + } + + public void setOrganisationCompanyIds(Set<String> organisationCompanyIds) { + this.organisationCompanyIds = organisationCompanyIds; + } + public Set<String> getSpecies() { return species; } @@ -241,6 +251,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { || CollectionUtils.isNotEmpty(samplingStrategies) || CollectionUtils.isNotEmpty(terrestrialDistrictIds) || CollectionUtils.isNotEmpty(organisationIds) + || CollectionUtils.isNotEmpty(organisationCompanyIds) || CollectionUtils.isNotEmpty(species) || CollectionUtils.isNotEmpty(sclerochronologySamplingContexts) || CollectionUtils.isNotEmpty(individualMeasurementStrategies) @@ -270,6 +281,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { && WaoUtils.isEqualCollection(samplingStrategies, that.samplingStrategies) && WaoUtils.isEqualCollection(terrestrialDistrictIds, that.terrestrialDistrictIds) && WaoUtils.isEqualCollection(organisationIds, that.organisationIds) + && WaoUtils.isEqualCollection(organisationCompanyIds, that.organisationCompanyIds) && WaoUtils.isEqualCollection(species, that.species) && WaoUtils.isEqualCollection(sclerochronologySamplingContexts, that.sclerochronologySamplingContexts) && WaoUtils.isEqualCollection(individualMeasurementStrategies, that.individualMeasurementStrategies) @@ -301,6 +313,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { hashCode = 31 * hashCode + WaoUtils.collectionHashCode(samplingStrategies); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(terrestrialDistrictIds); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(organisationIds); + hashCode = 31 * hashCode + WaoUtils.collectionHashCode(organisationCompanyIds); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(species); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(sclerochronologySamplingContexts); hashCode = 31 * hashCode + WaoUtils.collectionHashCode(individualMeasurementStrategies); @@ -325,6 +338,7 @@ public class SampleRowsFilter extends AbstractWaoFilter { clone.samplingStrategies = samplingStrategies == null ? null : new HashSet<>(samplingStrategies); clone.terrestrialDistrictIds = terrestrialDistrictIds == null ? null : new HashSet<>(terrestrialDistrictIds); clone.organisationIds = organisationIds == null ? null : new HashSet<>(organisationIds); + clone.organisationCompanyIds = organisationCompanyIds == null ? null : new HashSet<>(organisationCompanyIds); clone.species = species == null ? null : new HashSet<>(species); clone.sclerochronologySamplingContexts = sclerochronologySamplingContexts == null ? null : new HashSet<>(sclerochronologySamplingContexts); clone.individualMeasurementStrategies = individualMeasurementStrategies == null ? null : new HashSet<>(individualMeasurementStrategies); 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 ab7c231..b718e24 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,8 @@ 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().getOrganisationIds()); + || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getOrganisationIds()) + || CollectionUtils.isNotEmpty(filter.getElligibleForSampleRowsFilter().getOrganisationCompanyIds()); 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 c5ed534..892b4bd 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 @@ -104,6 +104,11 @@ public class SampleRowTopiaDao extends AbstractSampleRowTopiaDao<SampleRow> { query.addTopiaIdIn(SampleRow.PROPERTY_ORGANISATION, filter.getOrganisationIds()); } + if (CollectionUtils.isNotEmpty(filter.getOrganisationCompanyIds())) { + query.addWhereClause("sr.organisation.topiaId in (:organisationCompanyIds) or sr.organisation.company in (:organisationCompanyIds)", + ImmutableMap.of("organisationCompanyIds", (Object) filter.getOrganisationCompanyIds())); + } + if (CollectionUtils.isNotEmpty(filter.getSamplingStrategies())) { query.addIn(SampleRow.PROPERTY_SAMPLING_STRATEGY, filter.getSamplingStrategies()); } 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 a097e2a..17ec820 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 @@ -26,7 +26,6 @@ import com.google.common.base.Optional; import com.google.common.base.Preconditions; import com.google.common.cache.Cache; import com.google.common.collect.ImmutableSet; -import com.google.common.collect.Iterables; import com.google.common.collect.Sets; import fr.ifremer.wao.ContactsFilter; import fr.ifremer.wao.WaoTechnicalException; @@ -72,7 +71,6 @@ import org.nuiton.csv.ImportModel; import org.nuiton.csv.ImportRow; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.i18n.I18n; -import org.nuiton.topia.persistence.TopiaEntities; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.util.DateUtil; @@ -111,13 +109,9 @@ public class ContactsService extends WaoServiceSupport { // quand on appartient à une organisation (société ou labo), par défaut on ne peut voir // que les lignes de la société : si on appartient à la même société mais des labos différents // on a accès aux infos des autres labos - Organisation organisationToFilterOn = authenticatedWaoUser.getOrganisation().getCompany(); - ImmutableSet<String> organisationIds = ImmutableSet.of(organisationToFilterOn.getTopiaId()); - if (obsProgram.isSclerochronology()) { - Set<Organisation> organisations = getOrganisationsService().getOrganisationsBelongingsTo(organisationToFilterOn); - organisationIds = ImmutableSet.copyOf(Iterables.transform(organisations, TopiaEntities.getTopiaIdFunction())); - } - newContactsFilter.getSampleRowFilter().setOrganisationIds(organisationIds); + Organisation companyToFilterOn = authenticatedWaoUser.getOrganisation().getCompany(); + ImmutableSet<String> companyIds = ImmutableSet.of(companyToFilterOn.getTopiaId()); + newContactsFilter.getSampleRowFilter().setOrganisationCompanyIds(companyIds); } 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 cd3fd41..7892ef7 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 @@ -56,6 +56,8 @@ public class SampleRowsFilterValues extends AbstractFilterValues { protected SortedSet<FilterOption> organisations = new TreeSet<>(); + protected SortedSet<FilterOption> organisationCompanies = new TreeSet<>(); + protected SortedSet<FilterOption> samplingStrategies = new TreeSet<>(); protected SortedSet<FilterOption> terrestrialDistricts = new TreeSet<>(); @@ -117,6 +119,7 @@ public class SampleRowsFilterValues extends AbstractFilterValues { Organisation organisation = sampleRow.getOrganisation(); if (organisation != null) { organisations.add(FilterOption.forValueAndLabel(organisation.getTopiaId(), organisation.getFullName())); + organisationCompanies.add(FilterOption.forValueAndLabel(organisation.getCompany().getTopiaId(), organisation.getCompany().getFullName())); } if (obsProgram.isObsVente()) { samplingStrategies.add(FilterOption.forEnum(locale, sampleRow.getSamplingStrategy())); @@ -187,6 +190,10 @@ public class SampleRowsFilterValues extends AbstractFilterValues { return organisations; } + public SortedSet<FilterOption> getOrganisationCompanies() { + return organisationCompanies; + } + public SortedSet<FilterOption> getSamplingStrategies() { return samplingStrategies; } @@ -239,6 +246,10 @@ public class SampleRowsFilterValues extends AbstractFilterValues { this.organisations = organisations; } + public void setOrganisationCompanies(SortedSet<FilterOption> organisationCompanies) { + this.organisationCompanies = organisationCompanies; + } + public void setSamplingStrategies(SortedSet<FilterOption> samplingStrategies) { this.samplingStrategies = samplingStrategies; } 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 978fc9a..acbbed4 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 @@ -201,13 +201,9 @@ public class SamplingPlanService extends WaoServiceSupport { // quand on appartient à une organisation (société ou labo), par défaut on ne peut voir // que les lignes de la société : si on appartient à la même société mais des labos différents // on a accès aux infos des autres labos - Organisation organisationToFilterOn = authenticatedWaoUser.getOrganisation().getCompany(); - ImmutableSet<String> organisationIds = ImmutableSet.of(organisationToFilterOn.getTopiaId()); - if (obsProgram.isSclerochronology()) { - Set<Organisation> organisations = getOrganisationsService().getOrganisationsBelongingsTo(organisationToFilterOn); - organisationIds = ImmutableSet.copyOf(Iterables.transform(organisations, TopiaEntities.getTopiaIdFunction())); - } - newFilter.setOrganisationIds(organisationIds); + Organisation companyToFilterOn = authenticatedWaoUser.getOrganisation().getCompany(); + ImmutableSet<String> companyIds = ImmutableSet.of(companyToFilterOn.getTopiaId()); + newFilter.setOrganisationCompanyIds(companyIds); } return newFilter; -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
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 9eabb48deb50fab0d909a8f37f15a2f5458caff5 Merge: 86d2bb9 d2a2f30 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Feb 12 16:13:15 2015 +0100 Fusion #6641 dans develop .../main/java/fr/ifremer/wao/SampleRowsFilter.java | 14 ++++++++++++++ .../java/fr/ifremer/wao/entity/BoatTopiaDao.java | 3 ++- .../fr/ifremer/wao/entity/SampleRowTopiaDao.java | 5 +++++ ...cies,_add_laboratories,_add_sclerochronology.sql | 4 ++++ wao-persistence/src/main/xmi/wao-model.zargo | Bin 62375 -> 62432 bytes .../ifremer/wao/services/AuthenticatedWaoUser.java | 9 ++++++++- .../wao/services/service/ContactsService.java | 12 +++--------- .../services/service/SampleRowsFilterValues.java | 11 +++++++++++ .../wao/services/service/SamplingPlanService.java | 10 +++------- .../service/administration/CompaniesService.java | 2 +- 10 files changed, 51 insertions(+), 19 deletions(-) -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm