branch develop updated (4661866 -> 16e03e3)
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 4661866 On permet l'import des espèces depuis tous les programmes (scléro n'est pas dispo) (refs #5973) new 16e03e3 Correction de divers problèmes suite à l'introduction des laboratoires (refs #2262, fixes #6272) The 1 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 16e03e3852f252de43cd975953425701f6bc82e4 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Dec 11 11:46:22 2014 +0100 Correction de divers problèmes suite à l'introduction des laboratoires (refs #2262, fixes #6272) Summary of changes: .../fr/ifremer/wao/entity/ContactTopiaDao.java | 6 ++--- wao-persistence/src/main/xmi/wao-model.properties | 19 +------------- .../wao/services/service/ContactsService.java | 29 ++++++++++++++++++++++ .../wao/services/service/WaoServiceSupport.java | 5 ++++ .../administration/LaboratoriesService.java | 6 ++--- .../administration/OrganisationsService.java | 22 ++++++++++++++++ .../service/administration/WaoUsersService.java | 20 +-------------- .../ifremer/wao/web/action/EditContactAction.java | 7 ++---- .../action/administration/EditWaoUserAction.java | 6 ++--- .../WEB-INF/content/administration/companies.jsp | 2 +- .../content/administration/edit-wao-user.jsp | 2 +- .../src/main/webapp/WEB-INF/decorators/layout.jsp | 2 +- 12 files changed, 72 insertions(+), 54 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 16e03e3852f252de43cd975953425701f6bc82e4 Author: Brendan Le Ny <bleny@codelutin.com> Date: Thu Dec 11 11:46:22 2014 +0100 Correction de divers problèmes suite à l'introduction des laboratoires (refs #2262, fixes #6272) --- .../fr/ifremer/wao/entity/ContactTopiaDao.java | 6 ++--- wao-persistence/src/main/xmi/wao-model.properties | 19 +------------- .../wao/services/service/ContactsService.java | 29 ++++++++++++++++++++++ .../wao/services/service/WaoServiceSupport.java | 5 ++++ .../administration/LaboratoriesService.java | 6 ++--- .../administration/OrganisationsService.java | 22 ++++++++++++++++ .../service/administration/WaoUsersService.java | 20 +-------------- .../ifremer/wao/web/action/EditContactAction.java | 7 ++---- .../action/administration/EditWaoUserAction.java | 6 ++--- .../WEB-INF/content/administration/companies.jsp | 2 +- .../content/administration/edit-wao-user.jsp | 2 +- .../src/main/webapp/WEB-INF/decorators/layout.jsp | 2 +- 12 files changed, 72 insertions(+), 54 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 a4902ca..fd5ba51 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 @@ -294,7 +294,7 @@ public class ContactTopiaDao extends AbstractContactTopiaDao<Contact> { String hql = hqlAndParametersBuilder.getHql(); - hql = "select c.sampleRow.company.topiaId, count(c.topiaId) " + hql + " group by c.sampleRow.company.topiaId"; + hql = "select c.sampleRow.organisation.topiaId, count(c.topiaId) " + hql + " group by c.sampleRow.organisation.topiaId"; if (log.isDebugEnabled()) { log.debug("query count by company '" + hql + "'"); @@ -354,7 +354,7 @@ public class ContactTopiaDao extends AbstractContactTopiaDao<Contact> { String hql = hqlAndParametersBuilder.getHql(); - hql = "select c.sampleRow.company.topiaId, c.contactState, count(c.topiaId) " + hql + " group by c.sampleRow.company.topiaId, c.contactState"; + hql = "select c.sampleRow.organisation.topiaId, c.contactState, count(c.topiaId) " + hql + " group by c.sampleRow.organisation.topiaId, c.contactState"; List<Object[]> rows = findAll(hql, hqlAndParametersBuilder.getHqlParameters()); @@ -388,7 +388,7 @@ public class ContactTopiaDao extends AbstractContactTopiaDao<Contact> { hqlAndParametersBuilder.addEquals(Contact.PROPERTY_CONTACT_STATE, ContactState.OBSERVATION_DONE); hqlAndParametersBuilder.addNotNull(Contact.PROPERTY_DATA_INPUT_DATE); - String hql = "select c.sampleRow.company.topiaId, c.observationEndDate, c.dataInputDate " + hqlAndParametersBuilder.getHql(); + String hql = "select c.sampleRow.organisation.topiaId, c.observationEndDate, c.dataInputDate " + hqlAndParametersBuilder.getHql(); List<Object[]> rows = findAll(hql, hqlAndParametersBuilder.getHqlParameters()); diff --git a/wao-persistence/src/main/xmi/wao-model.properties b/wao-persistence/src/main/xmi/wao-model.properties index 0eed59a..86db9ad 100644 --- a/wao-persistence/src/main/xmi/wao-model.properties +++ b/wao-persistence/src/main/xmi/wao-model.properties @@ -30,21 +30,4 @@ fr.ifremer.wao.entity.SampleRow.attribute.sampleRowLog.tagValue.orderBy=topiaCre fr.ifremer.wao.entity.SampleRow.attribute.fishingZone.tagValue.orderBy=facadeName,sectorName,districtCode # Hibernate eagerness -#fr.ifremer.wao.entity.WaoUser.attribute.userProfile.tagValue.lazy=false -#fr.ifremer.wao.entity.SampleRow.attribute.fishingZone.tagValue.lazy=false -#fr.ifremer.wao.entity.SampleRow.attribute.company.tagValue.lazy=false -#fr.ifremer.wao.entity.SampleRow.attribute.profession.tagValue.lazy=false -#fr.ifremer.wao.entity.SampleRow.attribute.dcf5Code.tagValue.lazy=false -#fr.ifremer.wao.entity.Dcf5Code.attribute.fishingGearDcf.tagValue.lazy=false -#fr.ifremer.wao.entity.Dcf5Code.attribute.targetSpeciesDcf.tagValue.lazy=false -#fr.ifremer.wao.entity.ElligibleBoat.attribute.boat.tagValue.lazy=false -#fr.ifremer.wao.entity.ElligibleBoat.attribute.sampleRow.tagValue.lazy=false -#fr.ifremer.wao.entity.Contact.attribute.sampleRow.tagValue.lazy=false -#fr.ifremer.wao.entity.Contact.attribute.boat.tagValue.lazy=false -# -#fr.ifremer.wao.entity.Boat.attribute.shipOwner.tagValue.lazy=false -#fr.ifremer.wao.entity.Boat.attribute.elligibleBoat.tagValue.lazy=false -#fr.ifremer.wao.entity.SampleRow.attribute.elligibleBoat.tagValue.lazy=false -# -#fr.ifremer.wao.entity.SampleRow.attribute.observers.tagValue.inverse=false -#fr.ifremer.wao.entity.WaoUser.attribute.SampleRow.tagValue.inverse=true +fr.ifremer.wao.entity.Laboratory.attribute.company.tagValue.lazy=false 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 56097cd..ebef067 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,6 +26,7 @@ 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.Sets; import fr.ifremer.wao.ContactsFilter; import fr.ifremer.wao.WaoTechnicalException; import fr.ifremer.wao.WaoUtils; @@ -42,11 +43,13 @@ import fr.ifremer.wao.entity.ElligibleBoatTopiaDao; import fr.ifremer.wao.entity.LocationType; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.entity.ObservedDataControl; +import fr.ifremer.wao.entity.Organisation; import fr.ifremer.wao.entity.SampleMonth; import fr.ifremer.wao.entity.SampleRow; import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.WaoUser; import fr.ifremer.wao.entity.WaoUserTopiaDao; +import fr.ifremer.wao.entity.WaoUsers; import fr.ifremer.wao.services.AuthenticatedWaoUser; import fr.ifremer.wao.services.service.csv.ContactImportExportModel; import fr.ifremer.wao.services.service.mail.AddBoatToUserAllegroWalletEmail; @@ -69,6 +72,7 @@ import org.nuiton.csv.ImportRow; import org.nuiton.csv.ImportRuntimeException; import org.nuiton.i18n.I18n; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.topia.persistence.TopiaQueryBuilderAddCriteriaOrRunQueryStep; import org.nuiton.util.DateUtil; import org.nuiton.util.StringUtil; import org.nuiton.util.beans.Binder; @@ -86,6 +90,7 @@ import java.util.List; import java.util.Locale; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import static org.nuiton.i18n.I18n.l; @@ -1119,4 +1124,28 @@ public class ContactsService extends WaoServiceSupport { } + /** + * Pour un contact donné, tous les utilisateurs qui peuvent être sélectionnés en tant qu' + * observateurs (principale ou secondaire). + */ + public SortedSet<WaoUser> getPossibleObservers(Contact contact) { + + Organisation organisation = contact.getSampleRow().getOrganisation(); + + Set<Organisation> organisationsUserMustBeInToBeAnObserver = + getOrganisationsService().getOrganisationsBelongingsTo(organisation); + + TopiaQueryBuilderAddCriteriaOrRunQueryStep<WaoUser> query = getWaoUserDao().newQueryBuilder(); + query.addIn(WaoUser.PROPERTY_ORGANISATION, organisationsUserMustBeInToBeAnObserver); + query.addEquals(WaoUser.PROPERTY_ACTIVE, true); + + List<WaoUser> waoUsers = query.findAll(); + + SortedSet<WaoUser> sortedWaoUsers = Sets.newTreeSet(WaoUsers.fullNameComparator()); + sortedWaoUsers.addAll(waoUsers); + + return sortedWaoUsers; + + } + } 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 0670749..c77f609 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 @@ -32,6 +32,7 @@ import fr.ifremer.wao.entity.Dcf5CodeTopiaDao; import fr.ifremer.wao.entity.ElligibleBoatTopiaDao; import fr.ifremer.wao.entity.FishingGearDcfTopiaDao; import fr.ifremer.wao.entity.FishingZoneTopiaDao; +import fr.ifremer.wao.entity.LaboratoryTopiaDao; import fr.ifremer.wao.entity.NewsTopiaDao; import fr.ifremer.wao.entity.OrganisationTopiaDao; import fr.ifremer.wao.entity.ProfessionTopiaDao; @@ -201,4 +202,8 @@ public abstract class WaoServiceSupport implements WaoService { protected OrganisationTopiaDao getOrganisationDao() { return getPersistenceContext().getOrganisationDao(); } + + protected LaboratoryTopiaDao getLaboratoryDao() { + return getPersistenceContext().getLaboratoryDao(); + } } diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java index eb7f639..4ad4522 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/LaboratoriesService.java @@ -13,7 +13,7 @@ public class LaboratoriesService extends WaoServiceSupport { public List<Laboratory> getAllLaboratories() { - LaboratoryTopiaDao dao = getPersistenceContext().getLaboratoryDao(); + LaboratoryTopiaDao dao = getLaboratoryDao(); List<Laboratory> laboratories = dao.newQueryBuilder().setOrderByArguments(Laboratory.PROPERTY_ACTIVE + " desc", Laboratory.PROPERTY_NAME).findAll(); @@ -36,7 +36,7 @@ public class LaboratoriesService extends WaoServiceSupport { public Laboratory getLaboratory(String laboratoryId) { - LaboratoryTopiaDao dao = getPersistenceContext().getLaboratoryDao(); + LaboratoryTopiaDao dao = getLaboratoryDao(); Laboratory laboratory = dao.forTopiaIdEquals(laboratoryId).findUnique(); @@ -55,7 +55,7 @@ public class LaboratoriesService extends WaoServiceSupport { Company ifremer = getCompaniesService().getIfremer(); laboratory.setCompany(ifremer); - LaboratoryTopiaDao dao = getPersistenceContext().getLaboratoryDao(); + LaboratoryTopiaDao dao = getLaboratoryDao(); dao.save(laboratory); diff --git a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/OrganisationsService.java b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/OrganisationsService.java index 03ea1fd..2f7f781 100644 --- a/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/OrganisationsService.java +++ b/wao-services/src/main/java/fr/ifremer/wao/services/service/administration/OrganisationsService.java @@ -2,14 +2,17 @@ package fr.ifremer.wao.services.service.administration; import com.google.common.collect.Iterables; import fr.ifremer.wao.entity.Company; +import fr.ifremer.wao.entity.Laboratory; import fr.ifremer.wao.entity.Organisation; import fr.ifremer.wao.entity.OrganisationTopiaDao; import fr.ifremer.wao.services.service.IllegalDeletionException; import fr.ifremer.wao.services.service.WaoServiceSupport; import org.nuiton.topia.persistence.TopiaEntity; +import java.util.HashSet; import java.util.List; import java.util.Map; +import java.util.Set; public class OrganisationsService extends WaoServiceSupport { @@ -52,4 +55,23 @@ public class OrganisationsService extends WaoServiceSupport { commit(); } + + /** + * Pour un laboratoire, retourne le laboratoire en singleton et pour une société, la société + * et tous ses laboratoires. + */ + public Set<Organisation> getOrganisationsBelongingsTo(Organisation organisation) { + + Set<Organisation> organisations = new HashSet<>(); + + organisations.add(organisation); + + List<Laboratory> laboratoriesInCompany = getLaboratoryDao().newQueryBuilder().addTopiaIdEquals(Laboratory.PROPERTY_COMPANY, organisation.getTopiaId()).findAll(); + + organisations.addAll(laboratoriesInCompany); + + return organisations; + + } + } 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 5408bfa..10e29d5 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 @@ -27,6 +27,7 @@ import com.google.common.collect.Iterables; import com.google.common.collect.Maps; import fr.ifremer.wao.entity.Boat; import fr.ifremer.wao.entity.Boats; +import fr.ifremer.wao.entity.Company; import fr.ifremer.wao.entity.ObsProgram; import fr.ifremer.wao.entity.Organisation; import fr.ifremer.wao.entity.UserProfile; @@ -73,25 +74,6 @@ public class WaoUsersService extends WaoServiceSupport { } - public List<WaoUser> getActiveWaoUsers(Optional<String> optionalCompanyId) { - - WaoUserTopiaDao dao = getWaoUserDao(); - - TopiaQueryBuilderAddCriteriaOrRunQueryStep<WaoUser> query = dao.newQueryBuilder(); - - if (optionalCompanyId.isPresent()) { - query.addTopiaIdEquals(WaoUser.PROPERTY_ORGANISATION, optionalCompanyId.get()); - } - query.addEquals(WaoUser.PROPERTY_ACTIVE, true); - - query.setOrderByArguments(WaoUser.PROPERTY_LOGIN); - - List<WaoUser> waoUsers = query.findAll(); - - return waoUsers; - - } - public WaoUser getWaoUser(String waoUserId) { WaoUserTopiaDao dao = getWaoUserDao(); diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java index a545b39..4a5ca9a 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/EditContactAction.java @@ -23,7 +23,6 @@ package fr.ifremer.wao.web.action; import com.google.common.base.Optional; import com.google.common.base.Strings; -import com.google.common.collect.Sets; import com.opensymphony.xwork2.Preparable; import fr.ifremer.wao.WaoUtils; import fr.ifremer.wao.entity.ContactState; @@ -35,7 +34,6 @@ import fr.ifremer.wao.entity.SamplingStrategy; import fr.ifremer.wao.entity.TerrestrialLocation; import fr.ifremer.wao.entity.TerrestrialLocations; import fr.ifremer.wao.entity.WaoUser; -import fr.ifremer.wao.entity.WaoUsers; import fr.ifremer.wao.services.AuthenticatedWaoUser; import fr.ifremer.wao.services.service.ContactDataInputDateAfterTodayException; import fr.ifremer.wao.services.service.ContactDataInputDateBeforeObservationEndDateException; @@ -79,6 +77,7 @@ import java.util.LinkedHashMap; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.SortedSet; import java.util.TreeMap; import java.util.TreeSet; @@ -201,9 +200,7 @@ public class EditContactAction extends WaoJspActionSupport implements Preparable addActionError(t("wao.ui.error.unknownContactId")); } - List<WaoUser> waoUsers = waoUsersService.getActiveWaoUsers(Optional.of(updateContactCommand.getContact().getSampleRow().getCompany().getTopiaId())); - Set<WaoUser> sortedWaoUsers = Sets.newTreeSet(WaoUsers.fullNameComparator()); - sortedWaoUsers.addAll(waoUsers); + SortedSet<WaoUser> sortedWaoUsers = service.getPossibleObservers(updateContactCommand.getContact()); observers = new LinkedHashMap<>(); for (WaoUser waoUser : sortedWaoUsers) { observers.put(waoUser.getTopiaId(), waoUser.getFullName()); diff --git a/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditWaoUserAction.java b/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditWaoUserAction.java index d231080..8367e62 100644 --- a/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditWaoUserAction.java +++ b/wao-web/src/main/java/fr/ifremer/wao/web/action/administration/EditWaoUserAction.java @@ -37,7 +37,7 @@ import org.apache.struts2.convention.annotation.Results; import org.nuiton.util.StringUtil; @Results({ - @Result(name= ActionSupport.SUCCESS, type="redirectAction", params = { "actionName", "wao-users", "companyId", "%{companyId}" }), + @Result(name= ActionSupport.SUCCESS, type="redirectAction", params = { "actionName", "wao-users", "organisationId", "%{organisationId}" }), @Result(name= ActionSupport.NONE, type="redirectAction", params = { "actionName", "news" }) }) public class EditWaoUserAction extends WaoJspActionSupport implements Preparable { @@ -115,7 +115,7 @@ public class EditWaoUserAction extends WaoJspActionSupport implements Preparable session.addMessage(t("wao.ui.form.updateWaoUserCommand.success", updateWaoUserCommand.getWaoUser().getLogin())); // for redirection - setOrganisationId(updateWaoUserCommand.getWaoUser().getCompany().getTopiaId()); + setOrganisationId(updateWaoUserCommand.getWaoUser().getOrganisation().getTopiaId()); String result; if (getAuthenticatedWaoUser().isAuthorizedToViewCompanyUsers()) { @@ -132,7 +132,7 @@ public class EditWaoUserAction extends WaoJspActionSupport implements Preparable return optionalWaoUserId.orNull(); } - public String getCompanyId() { + public String getOrganisationId() { return optionalOrganisationId.orNull(); } diff --git a/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp b/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp index 728f7ce..f48a4f1 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/administration/companies.jsp @@ -72,7 +72,7 @@ </s:a> <s:url action="wao-users" id="waoUsersUrl"> - <s:param name="companyId" value="topiaId" /> + <s:param name="organisationId" value="topiaId" /> </s:url> <s:a href="%{waoUsersUrl}"> <i class="icon-user"></i> <s:text name="wao.ui.action.viewCompanyWaoUsers" /> diff --git a/wao-web/src/main/webapp/WEB-INF/content/administration/edit-wao-user.jsp b/wao-web/src/main/webapp/WEB-INF/content/administration/edit-wao-user.jsp index 9dba910..66e6cac 100644 --- a/wao-web/src/main/webapp/WEB-INF/content/administration/edit-wao-user.jsp +++ b/wao-web/src/main/webapp/WEB-INF/content/administration/edit-wao-user.jsp @@ -174,7 +174,7 @@ <div class="form-actions"> <s:if test="authenticatedWaoUser.authorizedToViewCompanyUsers"> <s:url action="wao-users" id="cancelUrl"> - <s:param name="companyId" value="updateWaoUserCommand.waoUser.company.topiaId" /> + <s:param name="organisationId" value="%{organisationId}" /> </s:url> </s:if> <s:else> diff --git a/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp b/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp index 2ad1350..3f9cf39 100644 --- a/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp +++ b/wao-web/src/main/webapp/WEB-INF/decorators/layout.jsp @@ -215,7 +215,7 @@ <s:if test="authenticatedWaoUser.authorizedToViewCompanyUsers"> <li> <s:url namespace="/administration" action="wao-users" id="companyUsersUrl"> - <s:param name="companyId" value="authenticatedWaoUser.waoUser.company.topiaId" /> + <s:param name="organisationId" value="authenticatedWaoUser.waoUser.company.topiaId" /> </s:url> <s:a href="%{companyUsersUrl}"> <i class="icon-user"></i> -- To stop receiving notification emails like this one, please contact codelutin.com SCM administrator <admin+scm@codelutin.com>.
participants (1)
-
codelutin.com scm