branch develop updated (4a48b23 -> f18cc72)
This is an automated email from the git hooks/post-receive script. New change to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git from 4a48b23 fixes #66 Type de sondage dans la description new cc3fd2d vote pour de sondage restreint new f18cc72 vote pour de sondage restreint The 2 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 f18cc728a2d5fc8bd7b4fbd858c815cfdb6d8290 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed May 17 16:02:01 2017 +0200 vote pour de sondage restreint commit cc3fd2d1a117fd5f8fbcb4f210c6918aa633923d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed May 17 15:55:04 2017 +0200 vote pour de sondage restreint Summary of changes: .../persistence/entity/VoterListTopiaDao.java | 13 ++++ pollen-persistence/src/main/xmi/pollen.zargo | Bin 24937 -> 24949 bytes .../pollen/services/bean/PollenEntityId.java | 2 +- .../org/chorem/pollen/services/bean/VoteBean.java | 36 +++++----- .../services/service/NotificationService.java | 19 ++++++ .../services/service/VoteCountingService.java | 10 +-- .../pollen/services/service/VoteService.java | 37 +++++------ .../pollen/services/service/VoterListService.java | 73 ++++++++++++++------- .../services/service/security/SecurityService.java | 36 ++++------ pollen-ui-riot-js/src/main/web/js/Poll.js | 20 ++++-- pollen-ui-riot-js/src/main/web/js/VoteService.js | 8 +++ .../src/main/web/js/VoterListService.js | 2 + .../src/main/web/tag/poll/Votes.tag.html | 4 +- 13 files changed, 157 insertions(+), 103 deletions(-) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit cc3fd2d1a117fd5f8fbcb4f210c6918aa633923d Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed May 17 15:55:04 2017 +0200 vote pour de sondage restreint --- .../persistence/entity/VoterListTopiaDao.java | 13 ++++ pollen-persistence/src/main/xmi/pollen.zargo | Bin 24937 -> 24949 bytes .../pollen/services/bean/PollenEntityId.java | 2 +- .../org/chorem/pollen/services/bean/VoteBean.java | 36 +++++----- .../services/service/NotificationService.java | 19 ++++++ .../pollen/services/service/VoteService.java | 37 +++++------ .../pollen/services/service/VoterListService.java | 73 ++++++++++++++------- .../services/service/security/SecurityService.java | 36 ++++------ pollen-ui-riot-js/src/main/web/js/Poll.js | 20 ++++-- pollen-ui-riot-js/src/main/web/js/VoteService.js | 8 +++ .../src/main/web/js/VoterListService.js | 2 + .../src/main/web/tag/poll/Votes.tag.html | 4 +- 12 files changed, 152 insertions(+), 98 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java index 24f9bc3..5143b6a 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/VoterListTopiaDao.java @@ -41,4 +41,17 @@ public class VoterListTopiaDao extends AbstractVoterListTopiaDao<VoterList> { super.delete(entity); } + + public List<VoterListMember> getAllMembers(VoterList entity) { + + VoterListMemberTopiaDao dao = topiaDaoSupplier + .getDao(VoterListMember.class, VoterListMemberTopiaDao.class); + List<VoterListMember> members = dao.forVoterListEquals(entity).findAll(); + + for (VoterList subVoterList : forParentEquals(entity).findAll()) { + members.addAll(getAllMembers(subVoterList)); + } + + return members; + } } diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo index 6f6fdb3..5ced133 100644 Binary files a/pollen-persistence/src/main/xmi/pollen.zargo and b/pollen-persistence/src/main/xmi/pollen.zargo differ diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenEntityId.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenEntityId.java index 7cad78e..cec4f31 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenEntityId.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollenEntityId.java @@ -110,7 +110,7 @@ public class PollenEntityId<E extends TopiaEntity> { public void decode(TopiaIdFactory topiaIdFactory) { - if (reducedId != null) { + if (reducedId != null && !isTemporaryId()) { String decodedId = new String(Base64.decodeBase64(reducedId)); String id = topiaIdFactory.newTopiaId(entityType, decodedId); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java index a331bd5..0f13866 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/VoteBean.java @@ -21,6 +21,7 @@ package org.chorem.pollen.services.bean; * #L% */ +import com.google.common.collect.Sets; import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.chorem.pollen.persistence.entity.PollenPrincipalImpl; import org.chorem.pollen.persistence.entity.Vote; @@ -28,12 +29,13 @@ import org.chorem.pollen.persistence.entity.VoteImpl; import org.chorem.pollen.persistence.entity.VoteToChoice; import org.chorem.pollen.persistence.entity.VoteToChoices; import org.chorem.pollen.persistence.entity.VoterListMember; -import org.chorem.pollen.persistence.entity.VoterListMemberImpl; import java.util.ArrayList; +import java.util.Collection; import java.util.LinkedHashSet; import java.util.List; import java.util.Set; +import java.util.stream.Collectors; /** * Created on 5/15/14. @@ -45,7 +47,7 @@ public class VoteBean extends PollenBean<Vote> { protected PollenEntityId<PollenPrincipal> voterId; - protected PollenEntityId<VoterListMember> voterListMemberId; + protected Set<PollenEntityId<VoterListMember>> voterListMemberIds; protected String voterName; @@ -94,7 +96,7 @@ public class VoteBean extends PollenBean<Vote> { if (vote.getVoterListMember() != null) { - setVoterListMemberId(vote.getVoterListMember().getTopiaId()); + setVoterListMembers(vote.getVoterListMember()); } @@ -121,14 +123,6 @@ public class VoteBean extends PollenBean<Vote> { } - if (getVoterListMemberId().getEntityId() != null) { - - // FIXME - VoterListMember member = new VoterListMemberImpl(); - member.setTopiaId(getVoterListMemberId().getEntityId()); - - } - return entity; } @@ -184,19 +178,19 @@ public class VoteBean extends PollenBean<Vote> { return anonymous != null && anonymous; } - public PollenEntityId<VoterListMember> getVoterListMemberId() { - if (voterListMemberId == null) { - voterListMemberId = PollenEntityId.newId(VoterListMember.class); + public Set<PollenEntityId<VoterListMember>> getVoterListMemberId() { + if (voterListMemberIds == null) { + voterListMemberIds = Sets.newHashSet(); } - return voterListMemberId; - } - - public void setVoterListMemberId(PollenEntityId<VoterListMember> voterListMemberId) { - this.voterListMemberId = voterListMemberId; + return voterListMemberIds; } - public void setVoterListMemberId(String voterListMemberId) { - getVoterListMemberId().setEntityId(voterListMemberId); + public void setVoterListMembers(Collection<VoterListMember> voterListMembers) { + this.voterListMemberIds = voterListMembers.stream().map(member -> { + PollenEntityId<VoterListMember> memberId = PollenEntityId.newId(VoterListMember.class); + memberId.setEntityId(member.getTopiaId()); + return memberId; + }).collect(Collectors.toSet()); } public double getWeight() { diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java index 6750666..92a09d1 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/NotificationService.java @@ -30,6 +30,7 @@ import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.persistence.entity.PollenUser; import org.chorem.pollen.persistence.entity.Vote; import org.chorem.pollen.persistence.entity.VoteNotification; +import org.chorem.pollen.persistence.entity.VoterList; import org.chorem.pollen.persistence.entity.VoterListMember; import org.chorem.pollen.services.PollenUIContext; import org.chorem.pollen.services.service.mail.EmailService; @@ -140,6 +141,24 @@ public class NotificationService extends PollenServiceSupport { } } + if (PollType.RESTRICTED.equals(poll.getPollType())) { + + VoterList mainVoterList = getVoterListDao() + .forPollEquals(poll) + .addNull(VoterList.PROPERTY_PARENT) + .findUniqueOrNull(); + + List<VoterListMember> allMembers = getVoterListDao().getAllMembers(mainVoterList); + allMembers.stream() + .map(member -> member.getMember()) + .distinct() + .forEach(pollenPrincipal -> { + RestrictedPollInvitationEmail mail = emailService.newRestrictedPollInvitationEmail(poll, pollenPrincipal); + mail.addTo(pollenPrincipal.getEmail()); + emailService.send(mail); + }); + } + } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java index 5d8a368..349c227 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteService.java @@ -60,7 +60,6 @@ public class VoteService extends PollenServiceSupport { private final Function<VoteBean, VoteBean> voteBeanFunction = input -> { if (isNotPermitted(PermissionVerb.editVote, input.getEntityId())) { input.setPermission(null); - input.setVoterName(null); } return input; }; @@ -71,19 +70,20 @@ public class VoteService extends PollenServiceSupport { VoteBean voteBean = new VoteBean(); voteBean.setWeight(1d); - PollenUser connectedUser = getConnectedUser(); + PollenPrincipal mainPrincipal = getSecurityContext().getMainPrincipal(); - if (connectedUser != null) { + if (mainPrincipal != null) { - voteBean.setVoterName(connectedUser.getName()); - voteBean.setVoterId(connectedUser.getTopiaId()); + voteBean.setVoterName(mainPrincipal.getName()); - VoterListMember voterListMember = getVoterListMemberDao().forEquals(VoterListMember.PROPERTY_MEMBER + "." + PollenPrincipal.PROPERTY_POLLEN_USER + "." + PollenUser.PROPERTY_TOPIA_ID, connectedUser.getTopiaId()) - .addEquals(VoterListMember.PROPERTY_VOTER_LIST + "." + VoterList.PROPERTY_POLL + "." + Poll.PROPERTY_TOPIA_ID, pollId) - .findUniqueOrNull(); - if (voterListMember != null) { - voteBean.setVoterListMemberId(voterListMember.getTopiaId()); - voteBean.setWeight(voterListMember.getWeight()); + List<VoterListMember> voterListMembers = getVoterListMemberDao() + .forEquals(VoterListMember.PROPERTY_MEMBER + "." + PollenPrincipal.PROPERTY_EMAIL, mainPrincipal.getEmail()) + .addEquals(VoterListMember.PROPERTY_VOTER_LIST + "." + VoterList.PROPERTY_POLL + "." + Poll.PROPERTY_TOPIA_ID, pollId) + .findAll(); + if (voterListMembers != null) { + voteBean.setVoterListMembers(voterListMembers); + // fixme bavencoff 17/05/2017 faut-il toujour garder le poid sur le vote ?? et pas sur le VoterListMember + //voteBean.setWeight(voterListMember.getWeight()); } } @@ -268,14 +268,13 @@ public class VoteService extends PollenServiceSupport { PollenPrincipal principal = getSecurityContext().getMainPrincipal(); if (principal != null) { - VoterListMember voterListMember = getVoterListMemberDao().forEquals(VoterListMember.PROPERTY_MEMBER + "." + PollenPrincipal.PROPERTY_TOPIA_ID, principal.getTopiaId()) - .addEquals(VoterListMember.PROPERTY_VOTER_LIST + "." + VoterList.PROPERTY_POLL + "." + Poll.PROPERTY_TOPIA_ID, poll.getTopiaId()) - .findUniqueOrNull(); - if (voterListMember != null) { - toSave.setVoterListMember(voterListMember); - toSave.setWeight(voterListMember.getWeight()); - toSave.setVoter(principal); - } + List<VoterListMember> voterListMembers = getVoterListMemberDao().forMemberEquals(principal) + .addEquals(VoterListMember.PROPERTY_VOTER_LIST + "." + VoterList.PROPERTY_POLL, poll) + .findAll(); + toSave.setVoterListMember(voterListMembers); + // FIXME bavencoff 17/05/2017 ne poids ne devrai plus etre enregistré dans le vote + //toSave.setWeight(voterListMember.getWeight()); + toSave.setVoter(principal); } // -- author -- // diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java index 2ced80e..1936514 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoterListService.java @@ -308,6 +308,7 @@ public class VoterListService extends PollenServiceSupport { protected VoterList getMainVoterList0(Poll poll) { return getVoterListDao() .forPollEquals(poll) + .addNull(VoterList.PROPERTY_PARENT) .findUniqueOrNull(); } @@ -414,38 +415,56 @@ public class VoterListService extends PollenServiceSupport { } // when create or edit email - if (!voterListMemberExists || !voterListMember.getEmail().equals(toSave.getMember().getEmail())) { - PollenPrincipal member; - PollenUser user = getPollenUserDao().forEquals(PollenUser.PROPERTY_EMAIL, voterListMember.getEmail()).findUniqueOrNull(); + String cleanMail = getCleanMail(voterListMember.getEmail()); + if (!voterListMemberExists || !cleanMail.equals(toSave.getMember().getEmail())) { + PollenPrincipal member = searchOrCreatePrincipal(poll, cleanMail, voterListMember.getName()); + PollenUser user = getPollenUserDao().forEquals(PollenUser.PROPERTY_EMAIL, cleanMail).findUniqueOrNull(); if (user != null) { - member = getPollenPrincipalDao().create(); member.setPollenUser(user); - member.setEmail(user.getEmail()); member.setName(user.getName()); - member.setPermission(getSecurityService().generateNewToken()); - } else { - member = getSecurityService().generatePollenPrincipal(); } toSave.setMember(member); } toSave.getMember().setName(voterListMember.getName()); - toSave.getMember().setEmail(getCleanMail(voterListMember.getEmail())); toSave.setWeight(voterListMember.getWeight()); return toSave; } - protected ErrorMap checkVoterList(Set<String> sisterNames, VoterListBean voterList, List<VoterListMemberBean> members) { + protected PollenPrincipal searchOrCreatePrincipal(Poll poll, String email, String name) { + PollenPrincipal principal; + if (poll.getCreator().getEmail().equals(email)) { + principal = poll.getCreator(); + } else { + VoterList mainVoterList = getMainVoterList0(poll); + principal = getVoterListDao().getAllMembers(mainVoterList).stream() + .map(VoterListMember::getMember) + .filter(p -> p != null && p.getEmail() != null && p.getEmail().equals(email)) + .findFirst() + .orElse(null); + + } + if (principal == null) { + principal = getSecurityService().generatePollenPrincipal(); + principal.setEmail(email); + principal.setName(name); + } + + return principal; + } + + protected ErrorMap checkVoterList(Set<String> sisterNames, VoterListBean voterList, List<VoterListMemberBean> members, List<VoterListBean> subLists) { ErrorMap errors = new ErrorMap(); checkNotBlank(errors, VoterList.PROPERTY_NAME, voterList.getName(), l(getLocale(), "pollen.error.voterList.name.mandatory")); check(errors, VoterList.PROPERTY_WEIGHT, voterList.getWeight() > 0, l(getLocale(), "pollen.error.voterList.weight.greaterThan0")); - checkNotEmpty(errors, "member", members, l(getLocale(), "pollen.error.voterList.member.mandatory")); - + if (subLists.isEmpty()) { + checkNotEmpty(errors, "member", members, l(getLocale(), "pollen.error.voterList.member.mandatory")); + } boolean nameAlreadyUse = sisterNames.contains(voterList.getName()); check(errors, VoterList.PROPERTY_NAME, !nameAlreadyUse, l(getLocale(), "pollen.error.voterList.name.alreadyUsed")); @@ -588,31 +607,35 @@ public class VoterListService extends PollenServiceSupport { }); List<VoterListMemberBean> members = Collections.emptyList(); + List<VoterListBean> subLists = Collections.emptyList(); - if (voterList.getEntityId() != null) { - if (voterList.isTemporaryId()) { + if (voterList.isTemporaryId()) { - members = membersToSave.stream() - .filter(member -> member.getVoterListId().getEntityId().equals(voterList.getEntityId())) - .collect(Collectors.toList()); - - } else { + members = membersToSave.stream() + .filter(member -> voterList.getId().equals(member.getVoterListId())) + .collect(Collectors.toList()); - VoterList oldVoterList = getVoterList0(poll, voterList.getEntityId()); - sisterNames.remove(oldVoterList.getName()); + subLists = listsToSave.stream() + .filter(list -> voterList.getId().equals(list.getParentId())) + .collect(Collectors.toList()); - List<VoterListMember> existingVoterListMembers = getVoterListMembers0(voterList.toEntity()); - members = toBeanList(VoterListMemberBean.class, existingVoterListMembers); - } + } else if (voterList.isPersisted()) { + + VoterList oldVoterList = getVoterList0(poll, voterList.getEntityId()); + sisterNames.remove(oldVoterList.getName()); + List<VoterListMember> existingVoterListMembers = getVoterListMembers0(voterList.toEntity()); + members = toBeanList(VoterListMemberBean.class, existingVoterListMembers); + List<VoterList> existingSubVoterLists = getVoterLists0(poll, voterList.getEntityId()); + subLists = toBeanList(VoterListBean.class, existingSubVoterLists); } else if (listsToSave.size() == 1){ members = membersToSave; } - ErrorMap errorMap = checkVoterList(sisterNames, voterList, members); + ErrorMap errorMap = checkVoterList(sisterNames, voterList, members, subLists); errorMap.failIfNotEmpty(); sisterNames.add(voterList.getName()); diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java index 166ffea..4216342 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/security/SecurityService.java @@ -640,13 +640,13 @@ public class SecurityService extends PollenServiceSupport { for (Vote vote : principalByType.votes) { permissions.add(createWildcardSubjectPermission(vote)); - if (vote.getPoll().getPollType() != PollType.FREE) { - permissions.remove(createSubjectPermission(PermissionVerb.addVote, vote.getPoll())); - } - if (vote.getPoll().getVoteVisibility() == VoteVisibility.VOTER) { generatePollVoterPermission(permissions, vote.getPoll()); } + + if (vote.getPoll().getPollType() != PollType.FREE) { + permissions.remove(createSubjectPermission(PermissionVerb.addVote, vote.getPoll())); + } } return permissions; @@ -767,31 +767,19 @@ public class SecurityService extends PollenServiceSupport { Poll poll = getPollDao().forCreatorEquals(principal).findUniqueOrNull(); if (poll != null) { principalByType.polls.add(poll); - return; } - Choice choice = getChoiceDao().forCreatorEquals(principal).findUniqueOrNull(); - if (choice != null) { - principalByType.choices.add(choice); - return; - } + List<Choice> choices = getChoiceDao().forCreatorEquals(principal).findAll(); + principalByType.choices.addAll(choices); - Vote vote = getVoteDao().forVoterEquals(principal).findUniqueOrNull(); - if (vote != null) { - principalByType.votes.add(vote); - return; - } + List<Vote> votes = getVoteDao().forVoterEquals(principal).findAll(); + principalByType.votes.addAll(votes); - Comment comment = getCommentDao().forAuthorEquals(principal).findUniqueOrNull(); - if (comment != null) { - principalByType.comments.add(comment); - return; - } + List<Comment> comments = getCommentDao().forAuthorEquals(principal).findAll(); + principalByType.comments.addAll(comments); - FavoriteList favoriteList = getFavoriteListDao().forOwnerEquals(principal).findUniqueOrNull(); - if (favoriteList != null) { - principalByType.favoriteLists.add(favoriteList); - } + List<FavoriteList> favoriteLists = getFavoriteListDao().forOwnerEquals(principal).findAll(); + principalByType.favoriteLists.addAll(favoriteLists); } diff --git a/pollen-ui-riot-js/src/main/web/js/Poll.js b/pollen-ui-riot-js/src/main/web/js/Poll.js index b63720f..6cdfaaf 100644 --- a/pollen-ui-riot-js/src/main/web/js/Poll.js +++ b/pollen-ui-riot-js/src/main/web/js/Poll.js @@ -128,23 +128,31 @@ class Poll { if (this.resultIsVisible) { promises.push(resultService.getResults(this.id, this.permission || this.votePermission)); } + if (this.canVote) { + promises.push(voteService.getNewVote(this.id, this.permission || this.votePermission)); + } return Promise.all(promises).then(resultsArray => { - this.choices = resultsArray[0]; + let indexResult = 0; + this.choices = resultsArray[indexResult++]; this.choiceCount = this.choices.length; - this.votes = resultsArray[1]; + this.votes = resultsArray[indexResult++]; if (this.voteIsVisible) { this.voteCount = this.votes.length; } - this.voteCountingTypeValue = resultsArray[2]; + this.voteCountingTypeValue = resultsArray[indexResult++]; if (this.resultIsVisible) { - this.results = resultsArray[3]; + this.results = resultsArray[indexResult++]; this.choices.forEach(choice => { choice.score = this.results.scores.find(score => score.choiceId === choice.id); }); } + + if (this.canVote) { + this.voterName = resultsArray[indexResult++].voterName; + } bus.trigger("poll", this); return Promise.resolve(this); }); @@ -254,7 +262,9 @@ class Poll { return voteService.addVote(this.id, vote, this.votePermission || this.permission).then((result) => { this.voteId = result.id; this.votePermission = result.permission; - return Promise.all([this.reloadPoll(), this.loadVotes()]); + return this.reloadPoll().then(() => { + return this.loadVotes(); + }); }); } return Promise.reject("Init poll after add vote"); diff --git a/pollen-ui-riot-js/src/main/web/js/VoteService.js b/pollen-ui-riot-js/src/main/web/js/VoteService.js index ef729c6..cb6a68b 100644 --- a/pollen-ui-riot-js/src/main/web/js/VoteService.js +++ b/pollen-ui-riot-js/src/main/web/js/VoteService.js @@ -39,6 +39,14 @@ class VoteService extends FetchService { return this.form(url, {vote: form}); } + getNewVote(pollId, permission) { + let args = {}; + if (permission) { + args.permission = permission; + } + return this.getWithParams("/v1/polls/" + pollId + "/votes/new", args); + } + updateVote(pollId, form, permission) { let url = "/v1/polls/" + pollId + "/votes/" + form.id; if (permission) { diff --git a/pollen-ui-riot-js/src/main/web/js/VoterListService.js b/pollen-ui-riot-js/src/main/web/js/VoterListService.js index 6ee5738..9d923ef 100644 --- a/pollen-ui-riot-js/src/main/web/js/VoterListService.js +++ b/pollen-ui-riot-js/src/main/web/js/VoterListService.js @@ -78,6 +78,7 @@ class VoterListService extends FetchService { let voterList = this._newVoterList(parent); parent.subLists.push(voterList); this.voterListsById[voterList.id] = voterList; + return voterList; } deleteVoterList(voterList) { @@ -94,6 +95,7 @@ class VoterListService extends FetchService { let member = this._newMember(parent); parent.members.push(member); this.voterListMembersById[member.id] = member; + return member; } deleteMember(member) { diff --git a/pollen-ui-riot-js/src/main/web/tag/poll/Votes.tag.html b/pollen-ui-riot-js/src/main/web/tag/poll/Votes.tag.html index ef2074d..1384bde 100644 --- a/pollen-ui-riot-js/src/main/web/tag/poll/Votes.tag.html +++ b/pollen-ui-riot-js/src/main/web/tag/poll/Votes.tag.html @@ -21,7 +21,7 @@ require("./Podium.tag.html"); required={!voteId} disabled={voteId} placeholder={__.authorPlaceHolder} - value={userName}> + value={poll.voterName}> </div> <div if={!poll.canVote} class="choices-label"> @@ -210,8 +210,6 @@ require("./Podium.tag.html"); let session = require("../../js/Session"); let Choice = require("../../js/Choice"); this.installBundle(session, "poll_votes"); - let user = session.getUser(); - this.userName = user && user.name; this.tooManyChoicesSelected = false; this.poll = require("../../js/Poll.js"); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
This is an automated email from the git hooks/post-receive script. New commit to branch develop in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit f18cc728a2d5fc8bd7b4fbd858c815cfdb6d8290 Author: Sylvain Bavencoff <bavencoff@codelutin.com> Date: Wed May 17 16:02:01 2017 +0200 vote pour de sondage restreint --- .../chorem/pollen/services/service/VoteCountingService.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java index 6e2e958..97a014d 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/VoteCountingService.java @@ -22,7 +22,7 @@ package org.chorem.pollen.services.service; */ import com.google.common.base.Preconditions; -import com.google.common.collect.Maps; +import org.apache.commons.lang3.tuple.Pair; import org.chorem.pollen.persistence.entity.Poll; import org.chorem.pollen.persistence.entity.Polls; import org.chorem.pollen.persistence.entity.Vote; @@ -182,10 +182,10 @@ public class VoteCountingService extends PollenServiceSupport { GroupOfVoterBuilder builder = new GroupOfVoterBuilder(); // create group of voter - Map<VoterListMember, Vote> voteByVoterListMember = Maps.uniqueIndex( - votes, - Vote::getVoterListMember - ); + Map<VoterListMember, Vote> voteByVoterListMember = votes.stream() + .flatMap(vote -> vote.getVoterListMember().stream() + .map(member -> Pair.of(member, vote))) + .collect(Collectors.toMap(Pair::getKey, Pair::getValue)); List<VoterList> voterLists = getVoterListDao().forParentEquals(mainVoterList).findAll(); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm