This is an automated email from the git hooks/post-receive script. New commit to branch feature/23_manage_notification in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit a0bc3b510a666d76656fd5183cb1322094c18a91 Author: Kevin Morin <morin@codelutin.com> Date: Tue May 9 11:41:58 2017 +0200 refs #23 conf par défaut dans le sondage --- pollen-services/src/main/config/PollenServices.ini | 14 +++++++- .../org/chorem/pollen/services/bean/PollBean.java | 37 ++++++++++++++++++++++ .../services/config/PollenServicesConfig.java | 6 ++++ .../pollen/services/service/PollService.java | 26 +++++++++++---- 4 files changed, 75 insertions(+), 8 deletions(-) diff --git a/pollen-services/src/main/config/PollenServices.ini b/pollen-services/src/main/config/PollenServices.ini index c33c81f..46a097e 100644 --- a/pollen-services/src/main/config/PollenServices.ini +++ b/pollen-services/src/main/config/PollenServices.ini @@ -65,6 +65,18 @@ key = pollen.default.choiceType type = org.chorem.pollen.persistence.entity.ChoiceType defaultValue = TEXT +[option defaultVoteNotification] +description = pollen.configuration.defaultVoteNotification +key = pollen.default.voteNotification +type = org.chorem.pollen.persistence.entity.VoteNotification +defaultValue = NEVER + +[option defaultNotifyMeHoursBeforePollEnds] +description = pollen.configuration.defaultNotifyMeHoursBeforePollEnds +key = pollen.default.notifyMeHoursBeforePollEnds +type = int +defaultValue = 0 + [option defaultPollPageSize] description = pollen.configuration.defaultPollPageSize key = pollen.default.pollPageSize @@ -129,6 +141,6 @@ type = file description = pollen.configuration.version key = pollen.version type = string -defaultValue = sa transient = true final = true + diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java index b742aa6..ee3b2a7 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/bean/PollBean.java @@ -31,6 +31,7 @@ import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.persistence.entity.PollenPrincipal; import org.chorem.pollen.persistence.entity.PollenPrincipalImpl; import org.chorem.pollen.persistence.entity.ResultVisibility; +import org.chorem.pollen.persistence.entity.VoteNotification; import org.chorem.pollen.persistence.entity.VoteVisibility; import java.util.Arrays; @@ -129,6 +130,12 @@ public class PollBean extends PollenBean<Poll> { protected boolean withMe; + protected int notifyMeHoursBeforePollEnds; + + protected VoteNotification voteNotification; + + protected String notificationLocale; + @Override public void fromEntity(Poll entity) { @@ -171,6 +178,9 @@ public class PollBean extends PollenBean<Poll> { setParticipants(new LinkedHashSet<>(entity.getParticipants() == null ? Collections.emptyList() : Arrays.asList(entity.getParticipants().split("\\s")))); setWithMe(entity.isWithMe()); setChoiceType(entity.getChoiceType()); + setNotifyMeHoursBeforePollEnds(entity.getNotifyMeHoursBeforePollEnds()); + setVoteNotification(entity.getVoteNotification()); + setNotificationLocale(entity.getNotificationLocale()); if (entity.isClosed()) { setStatus(PollStatus.CLOSED); @@ -227,6 +237,9 @@ public class PollBean extends PollenBean<Poll> { entity.setParticipants(Joiner.on(' ').join(getParticipants())); entity.setChoiceType(getChoiceType()); entity.setWithMe(isWithMe()); + entity.setNotifyMeHoursBeforePollEnds(getNotifyMeHoursBeforePollEnds()); + entity.setVoteNotification(getVoteNotification()); + entity.setNotificationLocale(getNotificationLocale()); return entity; } @@ -481,4 +494,28 @@ public class PollBean extends PollenBean<Poll> { public void setWithMe(boolean withMe) { this.withMe = withMe; } + + public int getNotifyMeHoursBeforePollEnds() { + return notifyMeHoursBeforePollEnds; + } + + public void setNotifyMeHoursBeforePollEnds(int notifyMeHoursBeforePollEnds) { + this.notifyMeHoursBeforePollEnds = notifyMeHoursBeforePollEnds; + } + + public VoteNotification getVoteNotification() { + return voteNotification; + } + + public void setVoteNotification(VoteNotification voteNotification) { + this.voteNotification = voteNotification; + } + + public String getNotificationLocale() { + return notificationLocale; + } + + public void setNotificationLocale(String notificationLocale) { + this.notificationLocale = notificationLocale; + } } diff --git a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java index 06c935c..0dee42a 100644 --- a/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java +++ b/pollen-services/src/main/java/org/chorem/pollen/services/config/PollenServicesConfig.java @@ -31,6 +31,7 @@ import org.chorem.pollen.persistence.entity.ChoiceType; import org.chorem.pollen.persistence.entity.CommentVisibility; import org.chorem.pollen.persistence.entity.PollType; import org.chorem.pollen.persistence.entity.ResultVisibility; +import org.chorem.pollen.persistence.entity.VoteNotification; import org.chorem.pollen.persistence.entity.VoteVisibility; import org.chorem.pollen.services.PollenTechnicalException; import org.nuiton.config.ApplicationConfig; @@ -133,4 +134,9 @@ public class PollenServicesConfig extends GeneratedPollenServicesConfig { public ChoiceType getDefaultChoiceType() { return ChoiceType.valueOf(get().getOption(PollenServicesConfigOption.DEFAULT_CHOICE_TYPE.getKey())); } + + @Override + public VoteNotification getDefaultVoteNotification() { + return VoteNotification.valueOf(get().getOption(PollenServicesConfigOption.DEFAULT_VOTE_NOTIFICATION.getKey())); + } } 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 d9404ee..c26e7ee 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 @@ -24,6 +24,7 @@ package org.chorem.pollen.services.service; import com.google.common.base.Joiner; import com.google.common.collect.Sets; import org.apache.commons.collections4.CollectionUtils; +import org.apache.commons.lang3.time.DateUtils; import org.chorem.pollen.persistence.entity.Choice; import org.chorem.pollen.persistence.entity.ChoiceType; import org.chorem.pollen.persistence.entity.Poll; @@ -37,6 +38,7 @@ import org.chorem.pollen.services.bean.PollBean; import org.chorem.pollen.services.bean.PollenEntityRef; import org.chorem.pollen.services.bean.VoterListBean; import org.chorem.pollen.services.bean.VoterListMemberBean; +import org.chorem.pollen.services.config.PollenServicesConfig; import org.chorem.pollen.services.service.security.PermissionVerb; import org.chorem.pollen.services.service.security.PollenUnauthorizedException; import org.chorem.pollen.votecounting.VoteCountingNotFound; @@ -165,13 +167,15 @@ public class PollService extends PollenServiceSupport { // -- default values -- // - pollBean.setVoteCountingType(getPollenServiceConfig().getDefaultVoteCountingType()); - pollBean.setPollType(getPollenServiceConfig().getDefaultPollType()); - pollBean.setVoteVisibility(getPollenServiceConfig().getDefaultVoteVisibility()); - pollBean.setCommentVisibility(getPollenServiceConfig().getDefaultCommentVisibility()); - pollBean.setResultVisibility(getPollenServiceConfig().getDefaultResultVisibility()); - pollBean.setContinuousResults(getPollenServiceConfig().getDefaultContinuousResults()); -// pollBean.setBeginDate(serviceContext.getNow()); + PollenServicesConfig pollenServiceConfig = getPollenServiceConfig(); + pollBean.setVoteCountingType(pollenServiceConfig.getDefaultVoteCountingType()); + pollBean.setPollType(pollenServiceConfig.getDefaultPollType()); + pollBean.setVoteVisibility(pollenServiceConfig.getDefaultVoteVisibility()); + pollBean.setCommentVisibility(pollenServiceConfig.getDefaultCommentVisibility()); + pollBean.setResultVisibility(pollenServiceConfig.getDefaultResultVisibility()); + pollBean.setContinuousResults(pollenServiceConfig.getDefaultContinuousResults()); + pollBean.setVoteNotification(pollenServiceConfig.getDefaultVoteNotification()); + pollBean.setNotifyMeHoursBeforePollEnds(pollenServiceConfig.getDefaultNotifyMeHoursBeforePollEnds()); // -- creator -- // @@ -449,6 +453,9 @@ public class PollService extends PollenServiceSupport { toSave.setTitle(poll.getTitle()); toSave.setChoiceType(poll.getChoiceType()); toSave.setWithMe(poll.isWithMe()); + toSave.setVoteNotification(poll.getVoteNotification()); + toSave.setNotifyMeHoursBeforePollEnds(poll.getNotifyMeHoursBeforePollEnds()); + toSave.setNotificationLocale(poll.getNotificationLocale()); if (poll.withParticipants()) { toSave.setParticipants(Joiner.on(' ').join(poll.getParticipants())); } @@ -456,6 +463,11 @@ public class PollService extends PollenServiceSupport { toSave.setBeginDate(poll.getBeginDate()); toSave.setEndDate(poll.getEndDate()); + if (toSave.getEndDate() != null && toSave.getNotifyMeHoursBeforePollEnds() > 0 && + DateUtils.addHours(new Date(), toSave.getNotifyMeHoursBeforePollEnds()).before(toSave.getEndDate())) { + toSave.setPollEndReminderSent(false); + } + toSave.setChoiceAddAllowed(poll.isChoiceAddAllowed()); if (poll.isChoiceAddAllowed()) { -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.