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 e3445feac5975f411a283379a095d631d67365d1 Author: Kevin Morin <morin@codelutin.com> Date: Thu Apr 13 17:50:47 2017 +0200 Gestion des messages d'erreur de vote dans les types de vote --- .../pollen/services/service/PollService.java | 5 +++-- .../services/service/VoteCountingService.java | 22 +++++++++++++--------- .../pollen/services/service/VoteService.java | 11 +++++++---- .../i18n/pollen-services_fr_FR.properties | 14 +++++++------- 4 files changed, 30 insertions(+), 22 deletions(-) diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java index 1a27750..2a11fbf 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/service/PollService.java @@ -229,8 +229,9 @@ public class PollService extends PollenServiceSupport { if (PollType.FREE.equals(poll.getPollType()) ) { Poll pollDb = getPoll0(poll.getEntityId()); newParticipants.addAll(Sets.newHashSet(poll.getParticipants())); - if (pollDb.getParticipants() != null) { - newParticipants.removeAll(Sets.newHashSet(pollDb.getParticipants().split("\\s+"))); + String participantsDb = pollDb.getParticipants(); + if (participantsDb != null) { + newParticipants.removeAll(Sets.newHashSet(participantsDb.split("\\s+"))); } } 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 6606d20..3e86bb9 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 @@ -29,6 +29,7 @@ import org.chorem.pollen.persistence.entity.Vote; import org.chorem.pollen.persistence.entity.VoteToChoice; import org.chorem.pollen.persistence.entity.VoterList; import org.chorem.pollen.persistence.entity.VoterListMember; +import org.chorem.pollen.services.bean.ChoiceBean; import org.chorem.pollen.services.bean.GroupVoteCountingResultBean; import org.chorem.pollen.services.bean.VoteBean; import org.chorem.pollen.services.bean.VoteCountingResultBean; @@ -48,8 +49,7 @@ import org.chorem.pollen.votecounting.model.VoterBuilder; import java.util.List; import java.util.Map; import java.util.Set; - -import static org.nuiton.i18n.I18n.l; +import java.util.stream.Collectors; /** * TODO @@ -245,13 +245,15 @@ public class VoteCountingService extends PollenServiceSupport { } - protected ErrorMap voteIsValid(VoteBean vote, VoteCounting voteCounting) { + protected ErrorMap voteIsValid(VoteBean vote, VoteCounting voteCounting, List<ChoiceBean> choices) { ErrorMap errors = new ErrorMap(); + Map<String, String> choiceNamesById = choices.stream().collect(Collectors.toMap(ChoiceBean::getEntityId, ChoiceBean::getChoiceValue)); Double total = null; for (VoteToChoiceBean choice : vote.getChoice()) { - if (voteCounting.isVoteValueNull(choice.getVoteValue())) { + Double voteValue = choice.getVoteValue(); + if (voteCounting.isVoteValueNull(voteValue)) { continue; } @@ -259,18 +261,20 @@ public class VoteCountingService extends PollenServiceSupport { total = 0.0; } - total += choice.getVoteValue(); + total += voteValue; check(errors, - "voteValue[" + choice.getChoiceId().getReducedId() + "]", - voteCounting.isVoteValueValid(choice.getVoteValue()), - l(getLocale(), "pollen.error.vote.voteValue.invalid")); + "voteValue#" + choice.getChoiceId().getReducedId(), + voteCounting.isVoteValueValid(voteValue), + voteCounting.getVoteValueNotValidMessage(getLocale(), + choiceNamesById.get(choice.getChoiceId().getEntityId()), + voteValue == null ? "" : voteValue.toString())); } check(errors, "totalVoteValue", voteCounting.isTotalVoteValueValid(total), - l(getLocale(), "pollen.error.vote.totalVote.invalid")); + voteCounting.getTotalVoteValueNotValidMessage(getLocale())); return errors; } 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 7c2890c..f25f779 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 @@ -32,6 +32,7 @@ import org.chorem.pollen.persistence.entity.VoteToChoice; import org.chorem.pollen.persistence.entity.VoteToChoiceTopiaDao; import org.chorem.pollen.persistence.entity.VoterList; import org.chorem.pollen.persistence.entity.VoterListMember; +import org.chorem.pollen.services.bean.ChoiceBean; import org.chorem.pollen.services.bean.PollenEntityRef; import org.chorem.pollen.services.bean.VoteBean; import org.chorem.pollen.services.bean.VoteToChoiceBean; @@ -128,8 +129,9 @@ public class VoteService extends PollenServiceSupport { checkPermission(PermissionVerb.addVote, pollId); Poll poll = getPollService().getPoll0(pollId); + List<ChoiceBean> choices = getChoiceService().getChoices(pollId); - ErrorMap errorMap = checkVote(poll, vote); + ErrorMap errorMap = checkVote(poll, vote, choices); errorMap.failIfNotEmpty(); Vote result = saveVote(poll, vote); @@ -148,8 +150,9 @@ public class VoteService extends PollenServiceSupport { checkPermission(PermissionVerb.editVote, vote.getEntityId()); Poll poll = getPollService().getPoll0(pollId); + List<ChoiceBean> choices = getChoiceService().getChoices(pollId); - ErrorMap errorMap = checkVote(poll, vote); + ErrorMap errorMap = checkVote(poll, vote, choices); errorMap.failIfNotEmpty(); Vote result = saveVote(poll, vote); @@ -178,7 +181,7 @@ public class VoteService extends PollenServiceSupport { } - protected ErrorMap checkVote(Poll poll, VoteBean vote) { + protected ErrorMap checkVote(Poll poll, VoteBean vote, List<ChoiceBean> choices) { ErrorMap errors = new ErrorMap(); @@ -219,7 +222,7 @@ public class VoteService extends PollenServiceSupport { VoteCounting voteCounting = getVoteCountingService().getVoteCounting(poll); - ErrorMap valueErrors = getVoteCountingService().voteIsValid(vote, voteCounting); + ErrorMap valueErrors = getVoteCountingService().voteIsValid(vote, voteCounting, choices); valueErrors.copyTo(errors, "vote."); if (poll.getMaxChoiceNumber() > 0) { diff --git a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties index a393d88..e03330f 100644 --- a/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties +++ b/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties @@ -73,15 +73,15 @@ pollen.error.user.passwordEmpty=Mot de passe ne peut pas être vide pollen.error.user.passwordInvalid=Mot de passe est invalide pollen.error.vote.limitedVote.overflow=Le nombre de choix maximal atteind pollen.error.vote.poll.isClosed=Le sondage est clos, vous pouvez voter -pollen.error.vote.poll.notStarted=les votes n'ont pas commencé -pollen.error.vote.totalVote.invalid=le total des valeurs est invalide -pollen.error.vote.voteValue.invalid=la valeur est invalid -pollen.error.vote.voterName.alreadyExist=le nom existe déjà -pollen.error.vote.voterName.mandatory=le nom est obligatoire +pollen.error.vote.poll.notStarted=Les votes n'ont pas commencé +pollen.error.vote.totalVote.invalid=Le total des valeurs est invalide +pollen.error.vote.voteValue.invalid=La valeur est invalide +pollen.error.vote.voterName.alreadyExist=Le nom existe déjà +pollen.error.vote.voterName.mandatory=Le nom est obligatoire pollen.error.voterList.member.email.alreadyUsed=L'email du membre est déjà utilisé dans cette liste pollen.error.voterList.member.email.invalid=L'email du membre est invalide -pollen.error.voterList.member.email.mandatory=l'email du membre est obligatoire -pollen.error.voterList.member.mandatory=la liste de votant doit comporter au moins un membre +pollen.error.voterList.member.email.mandatory=L'email du membre est obligatoire +pollen.error.voterList.member.mandatory=La liste de votant doit comporter au moins un membre pollen.error.voterList.member.name.alreadyUsed=Le nom du membre est déjà utilisé pollen.error.voterList.member.name.mandatory=Le nom du membre est obligatoire pollen.error.voterList.member.weight.greaterThan0=Le membre doit avoir un poid supérieur à 0 -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.