branch feature/5973 created (now 0715813)
This is an automated email from the git hooks/post-receive script. New change to branch feature/5973 in repository wao. See http://git.codelutin.com/wao.git at 0715813 Ajout de l'interface utilisateur d'import du référentiel des espèces This branch includes the following new commits: new dfd0132 Ajout du référentiel d'espèces cibles dans le modèle (refs #5973)) new 69befc9 Introduction de la notion de laboratoire et d'organisation dans le modèle, on lie l'utilisateur à l'organisation et la ligne du plan à l'organisation (refs #2262) new be716c0 Déclaration du programme Sclérochronologie new 759d2d0 Pour les tests, ajout d'un fichier d'exemple new 4fc2981 Ajout d'un service d'import des espèces new 0715813 Ajout de l'interface utilisateur d'import du référentiel des espèces The 6 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 0715813fe4309dcefc4d6a8aabd5c4c18c8abcd8 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:59:07 2014 +0100 Ajout de l'interface utilisateur d'import du référentiel des espèces commit 759d2d00c668c55f378c3c3f5a40a76cf3e8ef9a Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 14:08:22 2014 +0100 Pour les tests, ajout d'un fichier d'exemple commit 4fc29810f4a401498baba3ef8c7e3fb28bea5825 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:22:50 2014 +0100 Ajout d'un service d'import des espèces commit be716c0c1830dab6dcd0ccf123d68a8594173a36 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:33:56 2014 +0100 Déclaration du programme Sclérochronologie commit 69befc97b92f3e6d1b5ff64c91f3c1d407aee303 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 16:56:23 2014 +0100 Introduction de la notion de laboratoire et d'organisation dans le modèle, on lie l'utilisateur à l'organisation et la ligne du plan à l'organisation (refs #2262) commit dfd013261b71d8a9b1b91ee68a05c0ee5cacd27a Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 15:16:32 2014 +0100 Ajout du référentiel d'espèces cibles dans le modèle (refs #5973)) -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit dfd013261b71d8a9b1b91ee68a05c0ee5cacd27a Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 15:16:32 2014 +0100 Ajout du référentiel d'espèces cibles dans le modèle (refs #5973)) --- .../resources/db/migration/V4_3__add_species.sql | 15 +++++++++++++++ wao-persistence/src/main/xmi/wao-model.properties | 2 +- wao-persistence/src/main/xmi/wao-model.zargo | Bin 59661 -> 60055 bytes 3 files changed, 16 insertions(+), 1 deletion(-) diff --git a/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql b/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql new file mode 100644 index 0000000..1bd8388 --- /dev/null +++ b/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql @@ -0,0 +1,15 @@ +create table species ( + + topiaId character varying(255) not null, + topiaVersion bigint not null, + topiaCreateDate timestamp without time zone, + aphiaId text, + permanentCode text, + scientificName text, + vernacularName text, + + constraint species_pkey primary key (topiaId), + constraint species_aphiaId_unique unique (aphiaId), + constraint species_permanentCode_unique unique (permanentCode), + constraint species_scientificName_unique unique (scientificName) +) diff --git a/wao-persistence/src/main/xmi/wao-model.properties b/wao-persistence/src/main/xmi/wao-model.properties index 0ef5059..0eed59a 100644 --- a/wao-persistence/src/main/xmi/wao-model.properties +++ b/wao-persistence/src/main/xmi/wao-model.properties @@ -21,7 +21,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ### -model.tagValue.version=4.2 +model.tagValue.version=4.3 model.tagValue.useEnumerationName=true # orderBy tagValues diff --git a/wao-persistence/src/main/xmi/wao-model.zargo b/wao-persistence/src/main/xmi/wao-model.zargo index a57bec5..1178506 100644 Binary files a/wao-persistence/src/main/xmi/wao-model.zargo and b/wao-persistence/src/main/xmi/wao-model.zargo differ -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit 69befc97b92f3e6d1b5ff64c91f3c1d407aee303 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 16:56:23 2014 +0100 Introduction de la notion de laboratoire et d'organisation dans le modèle, on lie l'utilisateur à l'organisation et la ligne du plan à l'organisation (refs #2262) --- .../fr/ifremer/wao/entity/ContactTopiaDao.java | 4 +- ...{WaoUserTopiaDao.java => OrganisationImpl.java} | 16 +----- .../java/fr/ifremer/wao/entity/SampleRowImpl.java | 20 +++++++ .../fr/ifremer/wao/entity/SampleRowLogImpl.java | 4 +- .../fr/ifremer/wao/entity/SampleRowTopiaDao.java | 2 +- .../java/fr/ifremer/wao/entity/WaoUserImpl.java | 10 ++++ .../fr/ifremer/wao/entity/WaoUserTopiaDao.java | 2 +- .../V4_3__add_species,_add_laboratories.sql | 58 +++++++++++++++++++++ .../resources/db/migration/V4_3__add_species.sql | 15 ------ wao-persistence/src/main/xmi/wao-model.zargo | Bin 60055 -> 61426 bytes .../service/administration/WaoUsersService.java | 4 +- ...bsMerObsVenteSamplingPlanImportExportModel.java | 2 +- 12 files changed, 98 insertions(+), 39 deletions(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java index 51098e8..a4902ca 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/ContactTopiaDao.java @@ -202,7 +202,7 @@ public class ContactTopiaDao extends AbstractContactTopiaDao<Contact> { public Contact findMostRecentContactOrNull(ObsProgram obsProgram, String boatId, String companyId) { TopiaQueryBuilderAddCriteriaOrRunQueryStep<Contact> query = newQueryBuilder(); query.addTopiaIdEquals(Contact.PROPERTY_BOAT, boatId); - query.addTopiaIdEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_COMPANY, companyId); + query.addTopiaIdEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_ORGANISATION, companyId); query.addEquals(Contact.PROPERTY_SAMPLE_ROW + "." + SampleRow.PROPERTY_OBS_PROGRAM, obsProgram); query.setOrderByArguments(Contact.PROPERTY_CREATION_DATE + " desc"); return query.findFirstOrNull(); @@ -435,7 +435,7 @@ public class ContactTopiaDao extends AbstractContactTopiaDao<Contact> { HqlAndParametersBuilder<Contact> query = toContactHqlAndParametersBuilder(filter); query.addAllFetches( - Contact.PROPERTY_SAMPLE_ROW + '.' + SampleRow.PROPERTY_COMPANY, + Contact.PROPERTY_SAMPLE_ROW + '.' + SampleRow.PROPERTY_ORGANISATION, Contact.PROPERTY_SAMPLE_ROW + '.' + SampleRow.PROPERTY_FISHING_ZONE, Contact.PROPERTY_SAMPLE_ROW + '.' + SampleRow.PROPERTY_PROFESSION, Contact.PROPERTY_SAMPLE_ROW + '.' + SampleRow.PROPERTY_DCF5_CODE + '.' + Dcf5Code.PROPERTY_FISHING_GEAR_DCF, diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/OrganisationImpl.java similarity index 56% copy from wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java copy to wao-persistence/src/main/java/fr/ifremer/wao/entity/OrganisationImpl.java index 7892fac..bc18a2d 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/OrganisationImpl.java @@ -21,20 +21,6 @@ package fr.ifremer.wao.entity; * #L% */ -import com.google.common.base.Optional; - -public class WaoUserTopiaDao extends AbstractWaoUserTopiaDao<WaoUser> { - - public Optional<WaoUser> tryFindByEmailAndFetchCollections(String email) { - Optional<WaoUser> waoUserOptional - = forLoginEquals(email) - . addFetch(WaoUser.PROPERTY_COMPANY) - . addFetch(WaoUser.PROPERTY_CAN_READ_BOATS) - . addFetch(WaoUser.PROPERTY_USER_PROFILE) - . addFetch(WaoUser.PROPERTY_ALLEGRO_WALLET) - . tryFindUnique() - ; - return waoUserOptional; - } +public abstract class OrganisationImpl extends OrganisationAbstract { } diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java index 3514b20..e5d10c9 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowImpl.java @@ -226,4 +226,24 @@ public class SampleRowImpl extends SampleRowAbstract { } return expired; } + + @Override + public void setCompany(Company company) { + setOrganisation(company); + } + + @Override + public Company getCompany() { + return (Company) getOrganisation(); + } + + @Override + public Laboratory getLaboratory() { + return (Laboratory) getOrganisation(); + } + + @Override + public void setLaboratory(Laboratory laboratory) { + setOrganisation(laboratory); + } } diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java index a710526..3253b65 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/SampleRowLogImpl.java @@ -189,8 +189,8 @@ public class SampleRowLogImpl extends SampleRowLogAbstract { } protected void compareCompanies() { - Company oldCompany = oldRow == null ? null : oldRow.getCompany(); - Company newCompany = newRow.getCompany(); + Organisation oldCompany = oldRow == null ? null : oldRow.getOrganisation(); + Organisation newCompany = newRow.getOrganisation(); if (oldCompany != null) { String msg = "La ligne n'est plus associée à la société " + oldCompany.getName(); if (newCompany != null && !newCompany.equals(oldCompany)) { 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 dafcfc7..8506a89 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 @@ -100,7 +100,7 @@ public class SampleRowTopiaDao extends AbstractSampleRowTopiaDao<SampleRow> { } if (CollectionUtils.isNotEmpty(filter.getCompanyIds())) { - query.addTopiaIdIn(SampleRow.PROPERTY_COMPANY, filter.getCompanyIds()); + query.addTopiaIdIn(SampleRow.PROPERTY_ORGANISATION, filter.getCompanyIds()); } if (CollectionUtils.isNotEmpty(filter.getSamplingStrategies())) { diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java index 2a6f326..51a95a5 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserImpl.java @@ -94,6 +94,16 @@ public class WaoUserImpl extends WaoUserAbstract { } @Override + public Company getCompany() { + return (Company) getOrganisation(); + } + + @Override + public void setCompany(Company company) { + setOrganisation(company); + } + + @Override public String toString() { return Objects.toStringHelper(this) .add(PROPERTY_LOGIN, login) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java index 7892fac..9e90a10 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/WaoUserTopiaDao.java @@ -28,7 +28,7 @@ public class WaoUserTopiaDao extends AbstractWaoUserTopiaDao<WaoUser> { public Optional<WaoUser> tryFindByEmailAndFetchCollections(String email) { Optional<WaoUser> waoUserOptional = forLoginEquals(email) - . addFetch(WaoUser.PROPERTY_COMPANY) + . addFetch(WaoUser.PROPERTY_ORGANISATION) . addFetch(WaoUser.PROPERTY_CAN_READ_BOATS) . addFetch(WaoUser.PROPERTY_USER_PROFILE) . addFetch(WaoUser.PROPERTY_ALLEGRO_WALLET) diff --git a/wao-persistence/src/main/resources/db/migration/V4_3__add_species,_add_laboratories.sql b/wao-persistence/src/main/resources/db/migration/V4_3__add_species,_add_laboratories.sql new file mode 100644 index 0000000..459d5f8 --- /dev/null +++ b/wao-persistence/src/main/resources/db/migration/V4_3__add_species,_add_laboratories.sql @@ -0,0 +1,58 @@ +--- +-- #%L +-- Wao :: Persistence +-- %% +-- Copyright (C) 2009 - 2014 Ifremer +-- %% +-- This program is free software: you can redistribute it and/or modify +-- it under the terms of the GNU Affero General Public License as published by +-- the Free Software Foundation, either version 3 of the License, or +-- (at your option) any later version. +-- +-- This program is distributed in the hope that it will be useful, +-- but WITHOUT ANY WARRANTY; without even the implied warranty of +-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-- GNU General Public License for more details. +-- +-- You should have received a copy of the GNU Affero General Public License +-- along with this program. If not, see <http://www.gnu.org/licenses/>. +-- #L% +--- + +create table species ( + + topiaId character varying(255) not null, + topiaVersion bigint not null, + topiaCreateDate timestamp without time zone, + aphiaId text, + permanentCode text, + scientificName text, + vernacularName text, + + constraint species_pkey primary key (topiaId), + constraint species_aphiaId_unique unique (aphiaId), + constraint species_permanentCode_unique unique (permanentCode), + constraint species_scientificName_unique unique (scientificName) +); + +create table laboratory ( + + topiaId character varying(255) not null, + topiaVersion bigint not null, + topiaCreateDate timestamp without time zone, + name text, + company character varying(255) not null, + + constraint laboratory_pkey primary key (topiaId), + constraint laboratory_name_unique unique (name), + constraint laboratory_company_fkey foreign key (company) + references Company(topiaId) match simple + on update no action on delete no action +); + +-- sample row can now be associated to something else than a company +alter table SampleRow drop constraint fk4256f3d0f28824af; +alter table SampleRow rename column company to organisation; + +alter table WaoUser drop constraint fk42d03050f28824af; +alter table WaoUser rename column company to organisation; diff --git a/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql b/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql deleted file mode 100644 index 1bd8388..0000000 --- a/wao-persistence/src/main/resources/db/migration/V4_3__add_species.sql +++ /dev/null @@ -1,15 +0,0 @@ -create table species ( - - topiaId character varying(255) not null, - topiaVersion bigint not null, - topiaCreateDate timestamp without time zone, - aphiaId text, - permanentCode text, - scientificName text, - vernacularName text, - - constraint species_pkey primary key (topiaId), - constraint species_aphiaId_unique unique (aphiaId), - constraint species_permanentCode_unique unique (permanentCode), - constraint species_scientificName_unique unique (scientificName) -) diff --git a/wao-persistence/src/main/xmi/wao-model.zargo b/wao-persistence/src/main/xmi/wao-model.zargo index 1178506..80e3039 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/service/administration/WaoUsersService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java index 6e8bd35..faf17fe 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/WaoUsersService.java @@ -62,7 +62,7 @@ public class WaoUsersService extends WaoServiceSupport { TopiaQueryBuilderAddCriteriaOrRunQueryStep<WaoUser> query = dao.newQueryBuilder(); if (optionalCompanyId.isPresent()) { - query.addTopiaIdEquals(WaoUser.PROPERTY_COMPANY, optionalCompanyId.get()); + query.addTopiaIdEquals(WaoUser.PROPERTY_ORGANISATION, optionalCompanyId.get()); } query.setOrderByArguments(WaoUser.PROPERTY_LOGIN); @@ -80,7 +80,7 @@ public class WaoUsersService extends WaoServiceSupport { TopiaQueryBuilderAddCriteriaOrRunQueryStep<WaoUser> query = dao.newQueryBuilder(); if (optionalCompanyId.isPresent()) { - query.addTopiaIdEquals(WaoUser.PROPERTY_COMPANY, optionalCompanyId.get()); + query.addTopiaIdEquals(WaoUser.PROPERTY_ORGANISATION, optionalCompanyId.get()); } query.addEquals(WaoUser.PROPERTY_ACTIVE, true); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java index 01554bf..824223f 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/ObsMerObsVenteSamplingPlanImportExportModel.java @@ -194,7 +194,7 @@ public class ObsMerObsVenteSamplingPlanImportExportModel implements ImportExport modelBuilder = new ModelBuilder<>(); modelBuilder.newColumnForImportExport("PLAN_CODE", SampleRow.PROPERTY_CODE, new SampleRowCodeParserFormatter(locale, obsProgram)); - modelBuilder.newColumnForImportExport("SOCIETE_NOM", SampleRow.PROPERTY_COMPANY, new CompanyParserFormatter(locale, companies)); + modelBuilder.newColumnForImportExport("SOCIETE_NOM", SampleRow.PROPERTY_ORGANISATION, new CompanyParserFormatter(locale, companies)); modelBuilder.newColumnForExport("PECHE_FACADE", "facade"); modelBuilder.newIgnoredColumn("PECHE_FACADE"); -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit be716c0c1830dab6dcd0ccf123d68a8594173a36 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:33:56 2014 +0100 Déclaration du programme Sclérochronologie --- .../src/main/java/fr/ifremer/wao/entity/ObsProgram.java | 7 ++++++- .../src/main/resources/i18n/wao-persistence_en_GB.properties | 1 + .../src/main/resources/i18n/wao-persistence_fr_FR.properties | 1 + 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java b/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java index 68a8f7d..92052f1 100644 --- a/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java +++ b/wao-persistence/src/main/java/fr/ifremer/wao/entity/ObsProgram.java @@ -27,7 +27,8 @@ import static org.nuiton.i18n.I18n.n; public enum ObsProgram implements I18nAble { OBSMER("M", n("ObsProgram.OBSMER")), - OBSVENTE("V", n("ObsProgram.OBSVENTE")); + OBSVENTE("V", n("ObsProgram.OBSVENTE")), + SCLEROCHRONOLOGY("S", n("ObsProgram.SCLEROCHRONOLOGY")); protected String i18nKey; @@ -59,6 +60,10 @@ public enum ObsProgram implements I18nAble { return OBSVENTE == this; } + public boolean isSclerochronology() { + return SCLEROCHRONOLOGY == this; + } + @Override public String getI18nKey() { return i18nKey; diff --git a/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties b/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties index 75d34a3..4334ea7 100644 --- a/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties +++ b/wao-persistence/src/main/resources/i18n/wao-persistence_en_GB.properties @@ -27,6 +27,7 @@ LocationType.PORT=Port LocationType.REGION=Region ObsProgram.OBSMER=ObsMer ObsProgram.OBSVENTE=ObsVente +ObsProgram.SCLEROCHRONOLOGY=Sclerochronology ObservationType.FIELD_WORK_OBSERVATION=Field work observation ObservationType.FIELD_WORK_SURVEY=Field work survey ObservationType.PHONE_CALL=Survey by phone diff --git a/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties b/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties index b174041..cf72839 100644 --- a/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties +++ b/wao-persistence/src/main/resources/i18n/wao-persistence_fr_FR.properties @@ -27,6 +27,7 @@ LocationType.PORT=Port LocationType.REGION=Région Ifremer ObsProgram.OBSMER=ObsMer ObsProgram.OBSVENTE=ObsVente +ObsProgram.SCLEROCHRONOLOGY=Sclérochronologie ObservationType.FIELD_WORK_OBSERVATION=Observation de terrain ObservationType.FIELD_WORK_SURVEY=Enquête de terrain ObservationType.PHONE_CALL=Enquête téléphonique -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit 759d2d00c668c55f378c3c3f5a40a76cf3e8ef9a Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 14:08:22 2014 +0100 Pour les tests, ajout d'un fichier d'exemple --- wao-services/src/test/resources/import/especes.csv | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/wao-services/src/test/resources/import/especes.csv b/wao-services/src/test/resources/import/especes.csv new file mode 100644 index 0000000..85b3bf9 --- /dev/null +++ b/wao-services/src/test/resources/import/especes.csv @@ -0,0 +1,5 @@ +NOM_SCIENTIFIQUE;NOM_COMMUN;APHIA_ID;CODE_PERMANENT +Engraulis encrasicolus;Anchois;126426;1362 +Dicentrarchus labrax;Bar européen;126975;1644 +Merluccius merluccius;Merlu européen;126484;1540 +Gadus morhua;Morue de l'Atlantique;126436;1543 -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit 4fc29810f4a401498baba3ef8c7e3fb28bea5825 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:22:50 2014 +0100 Ajout d'un service d'import des espèces --- .../wao/services/service/WaoServiceSupport.java | 5 +++ .../service/administration/ReferentialService.java | 42 +++++++++++++++++++++- .../services/service/csv/SpeciesImportModel.java | 24 +++++++++++++ .../administration/ReferentialServiceTest.java | 16 +++++++++ 4 files changed, 86 insertions(+), 1 deletion(-) diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java index ffe42a0..1d9cef1 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/WaoServiceSupport.java @@ -39,6 +39,7 @@ import fr.ifremer.wao.entity.SampleMonthTopiaDao; import fr.ifremer.wao.entity.SampleRowLogTopiaDao; import fr.ifremer.wao.entity.SampleRowTopiaDao; import fr.ifremer.wao.entity.ShipOwnerTopiaDao; +import fr.ifremer.wao.entity.SpeciesTopiaDao; import fr.ifremer.wao.entity.TargetSpeciesDcfTopiaDao; import fr.ifremer.wao.entity.TerrestrialLocationTopiaDao; import fr.ifremer.wao.entity.UserProfileTopiaDao; @@ -182,6 +183,10 @@ public abstract class WaoServiceSupport implements WaoService { protected UserProfileTopiaDao getUserProfileDao() { return getPersistenceContext().getUserProfileDao(); } + + protected SpeciesTopiaDao getSpeciesDao() { + return getPersistenceContext().getSpeciesDao(); + } protected WaoUserTopiaDao getWaoUserDao() { return getPersistenceContext().getWaoUserDao(); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java index 9d7533a..0e22420 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java @@ -31,7 +31,6 @@ import com.google.common.collect.Collections2; import com.google.common.collect.ImmutableSet; import com.google.common.collect.Iterables; import com.google.common.collect.Sets; -import com.google.common.collect.Iterables; import fr.ifremer.wao.WaoTechnicalException; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.BoatTopiaDao; @@ -53,6 +52,8 @@ import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.SampleRowTopiaDao; import fr.ifremer.wao.entity.ShipOwner; import fr.ifremer.wao.entity.ShipOwnerTopiaDao; +import fr.ifremer.wao.entity.Species; +import fr.ifremer.wao.entity.SpeciesTopiaDao; import fr.ifremer.wao.entity.TargetSpeciesDcf; import fr.ifremer.wao.entity.TargetSpeciesDcfTopiaDao; import fr.ifremer.wao.entity.TerrestrialLocation; @@ -64,6 +65,7 @@ import fr.ifremer.wao.services.service.WaoServiceSupport; import fr.ifremer.wao.services.service.csv.BoatImportExportModel; import fr.ifremer.wao.services.service.csv.ContactStateMotivesImportModel; import fr.ifremer.wao.services.service.csv.FishingZoneImportModel; +import fr.ifremer.wao.services.service.csv.SpeciesImportModel; import fr.ifremer.wao.services.service.csv.TerrestrialLocationImportModel; import org.apache.commons.io.IOUtils; import org.apache.commons.lang3.ArrayUtils; @@ -78,6 +80,7 @@ import org.nuiton.i18n.I18n; import org.nuiton.topia.persistence.TopiaDao; import org.nuiton.topia.persistence.TopiaEntity; import org.nuiton.topia.persistence.TopiaNoResultException; +import org.nuiton.topia.persistence.TopiaNonUniqueResultException; import org.nuiton.util.beans.Binder; import org.nuiton.util.beans.BinderFactory; @@ -121,6 +124,8 @@ public class ReferentialService extends WaoServiceSupport { TerrestrialLocation.class.getName(), Boat.class.getName())); + // TODO brendan 02/12/14 Species + PER_PROGRAM_REFERENTIAL = Collections.unmodifiableMap(perProgramReferential); } @@ -819,4 +824,39 @@ public class ReferentialService extends WaoServiceSupport { return allTerrestrialDistricts; } + + public void importSpecies(InputStream csv) throws ImportErrorException { + + SpeciesImportModel model = new SpeciesImportModel(); + + Import<Species> csvImport = Import.newImport(model, csv); + + SpeciesTopiaDao dao = getSpeciesDao(); + + try { + for (Species species : csvImport) { + + String aphiaId = species.getAphiaId(); + + Species existingSpecies = dao.forAphiaIdEquals(aphiaId).findUniqueOrNull(); + + if (existingSpecies == null) { + dao.create(species); + } else { + existingSpecies.setPermanentCode(species.getPermanentCode()); + existingSpecies.setScientificName(species.getScientificName()); + existingSpecies.setVernacularName(species.getVernacularName()); + dao.update(existingSpecies); + } + + } + } catch (TopiaNonUniqueResultException e) { + throw new ImportErrorException(e); + } + + updateReferentialMeta(Species.class.getName()); + + commit(); + + } } diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/SpeciesImportModel.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/SpeciesImportModel.java new file mode 100644 index 0000000..1950450 --- /dev/null +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/csv/SpeciesImportModel.java @@ -0,0 +1,24 @@ +package fr.ifremer.wao.services.service.csv; + +import fr.ifremer.wao.entity.Species; +import fr.ifremer.wao.entity.SpeciesImpl; +import org.nuiton.csv.ext.AbstractImportModel; + +public class SpeciesImportModel extends AbstractImportModel<Species> { + + public SpeciesImportModel() { + super(';'); + + modelBuilder.newMandatoryColumn("NOM_SCIENTIFIQUE", Species.PROPERTY_SCIENTIFIC_NAME); + modelBuilder.newMandatoryColumn("NOM_COMMUN", Species.PROPERTY_VERNACULAR_NAME); + modelBuilder.newMandatoryColumn("APHIA_ID", Species.PROPERTY_APHIA_ID); + modelBuilder.newMandatoryColumn("CODE_PERMANENT", Species.PROPERTY_PERMANENT_CODE); + + } + + @Override + public Species newEmptyInstance() { + return new SpeciesImpl(); + } + +} diff --git a/wao-services/src/test/java/fr/ifremer/wao/services/service/administration/ReferentialServiceTest.java b/wao-services/src/test/java/fr/ifremer/wao/services/service/administration/ReferentialServiceTest.java index 82b3d9c..76d6899 100644 --- a/wao-services/src/test/java/fr/ifremer/wao/services/service/administration/ReferentialServiceTest.java +++ b/wao-services/src/test/java/fr/ifremer/wao/services/service/administration/ReferentialServiceTest.java @@ -129,6 +129,22 @@ public class ReferentialServiceTest extends AbstractWaoServiceTest { } @Test + public void testImportSpecies() { + InputStream input = null; + try { + input = getClass().getResourceAsStream("/import/especes.csv"); + service.importSpecies(input); + } catch (ImportErrorException e) { + if (log.isDebugEnabled()) { + log.debug("unexpected exception raised", e); + } + Assert.fail("exception should not be raised"); + } finally { + IOUtils.closeQuietly(input); + } + } + + @Test public void testGetDcf5Codes() { service.initialDcf5CodesImport(); -- 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 feature/5973 in repository wao. See http://git.codelutin.com/wao.git commit 0715813fe4309dcefc4d6a8aabd5c4c18c8abcd8 Author: Brendan Le Ny <bleny@codelutin.com> Date: Tue Dec 2 17:59:07 2014 +0100 Ajout de l'interface utilisateur d'import du référentiel des espèces --- .../service/administration/ReferentialService.java | 4 +++- .../java/fr/ifremer/wao/web/WaoJspActionSupport.java | 4 ++++ .../web/action/administration/ImportSpeciesAction.java | 18 ++++++++++++++++++ .../src/main/resources/i18n/wao-web_en_GB.properties | 2 ++ .../src/main/resources/i18n/wao-web_fr_FR.properties | 2 ++ .../content/administration/referential-management.jsp | 18 ++++++++++++++++++ 6 files changed, 47 insertions(+), 1 deletion(-) diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java index 0e22420..9843992 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/ReferentialService.java @@ -124,7 +124,9 @@ public class ReferentialService extends WaoServiceSupport { TerrestrialLocation.class.getName(), Boat.class.getName())); - // TODO brendan 02/12/14 Species + perProgramReferential.put(ObsProgram.SCLEROCHRONOLOGY, Arrays.asList( + FishingZone.class.getName(), + Species.class.getName())); PER_PROGRAM_REFERENTIAL = Collections.unmodifiableMap(perProgramReferential); } diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java b/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java index 118f6a0..24e41a4 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/WaoJspActionSupport.java @@ -59,6 +59,10 @@ public class WaoJspActionSupport extends WaoActionSupport { return getObsProgram().isObsVente(); } + public boolean isSclerochronology() { + return getObsProgram().isSclerochronology(); + } + public String getText(Enum<?> enumeration) { return getText(enumeration.getClass().getSimpleName() + "." + enumeration.name()); } diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportSpeciesAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportSpeciesAction.java new file mode 100644 index 0000000..88f2b4c --- /dev/null +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/ImportSpeciesAction.java @@ -0,0 +1,18 @@ +package fr.ifremer.wao.web.action.administration; + +import fr.ifremer.wao.services.service.ImportErrorException; + +import java.io.InputStream; + +public class ImportSpeciesAction extends AbstractImportReferentialAction { + + @Override + protected void importCsv(InputStream csvInputStream) throws ImportErrorException { + service.importSpecies(csvInputStream); + } + + @Override + protected String getSuccessMessage() { + return t("wao.import.species.success"); + } +} diff --git a/wao-web/src/main/resources/i18n/wao-web_en_GB.properties b/wao-web/src/main/resources/i18n/wao-web_en_GB.properties index e1020e5..bafdcd9 100644 --- a/wao-web/src/main/resources/i18n/wao-web_en_GB.properties +++ b/wao-web/src/main/resources/i18n/wao-web_en_GB.properties @@ -14,6 +14,8 @@ wao.import.contactStateMotives.success=Import contact state motives successful wao.import.fishingZones.prompt=Import fishing zones wao.import.fishingZones.success=Import fishing zones successful wao.import.sampleRow.failure.wrongSampleRowCodeFormat=The sample row code must follow pattern YYYY_P1234 (YYYY is the year with 4 digits, P the program and 1234 the line number) +wao.import.species.prompt=Import species +wao.import.species.success=Species import successful wao.import.terrestrialDivisions.success= wao.import.terrestrialLocations.prompt=Import terrestrial locations wao.import.terrestrialLocations.success=Import terrestrial locations successful diff --git a/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties b/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties index ff1b2cc..2d02f42 100644 --- a/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties +++ b/wao-web/src/main/resources/i18n/wao-web_fr_FR.properties @@ -14,6 +14,8 @@ wao.import.contactStateMotives.success=Import des motifs de refus réalisé avec wao.import.fishingZones.prompt=Import des zones de pêches wao.import.fishingZones.success=Import des zones de pêches réalisé avec succès wao.import.sampleRow.failure.wrongSampleRowCodeFormat=Le code de la ligne doit être de la forme AAAA_P1234 (AAAA représentant l'année sur quatre chiffres, P le code du programme (M, V, ou D) et 1234 le numéro de la ligne sur quatre chiffres) +wao.import.species.prompt=Import des espèces +wao.import.species.succès=Import des espèces réalisé avec succès wao.import.terrestrialDivisions.prompt=Import des unités d'observation wao.import.terrestrialDivisions.success=Import des unités d'observation réalisé avec succès wao.import.terrestrialLocations.prompt=Import des lieux terrestres diff --git a/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp b/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp index 88899f0..b3d6b83 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/administration/referential-management.jsp @@ -101,6 +101,24 @@ </s:form> </s:if> + <s:if test="sclerochronology"> + <s:form action="import-species" method="POST" enctype="multipart/form-data"> + + <fieldset> + <legend> + <s:text name="wao.import.species.prompt" /> + </legend> + + <s:file name="csvFile" cssClass="float-left" /> + + <s:submit type="button"> + <i class="icon-upload"></i> <s:text name="wao.ui.action.csvImport" /> + </s:submit> + </fieldset> + + </s:form> + </s:if> + <table class="table table-bordered"> <tr> <th> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm