This is an automated email from the git hooks/post-receive script. New commit to branch feature/pollen-riot-js in repository pollen. See https://gitlab.nuiton.org/chorem/pollen.git commit e2bba0f399aa2c31203b3c9c797a205d8eaf8488 Author: Tony CHEMIT <dev@tchemit.fr> Date: Wed Jan 25 11:48:18 2017 +0100 Pouvoir réouvrir le sondage --- .../org/chorem/pollen/rest/api/v1/PollApi.java | 5 ++++ pollen-rest-api/src/main/resources/mapping | 1 + .../org/chorem/pollen/services/bean/PollBean.java | 35 +++++++++++++++++++++- .../services/service/NotificationService.java | 4 +++ .../pollen/services/service/PollService.java | 20 +++++++++++++ 5 files changed, 64 insertions(+), 1 deletion(-) diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java index 75c88b9..198bd29 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/PollApi.java @@ -113,6 +113,11 @@ public class PollApi extends WebMotionController { pollService.closePoll(pollId.getEntityId()); } + public void reopenPoll(PollService pollService, PollenEntityId<Poll> pollId) { + + pollService.reopenPoll(pollId.getEntityId()); + + } public File exportPoll(PollService pollService, PollenEntityId<Poll> pollId) { diff --git a/pollen-rest-api/src/main/resources/mapping b/pollen-rest-api/src/main/resources/mapping index 0bb0f7e..d64c8e2 100644 --- a/pollen-rest-api/src/main/resources/mapping +++ b/pollen-rest-api/src/main/resources/mapping @@ -115,6 +115,7 @@ POST /v1/polls/{pollId}/clone PollApi.clonePoll GET /v1/polls/{pollId}/export PollApi.exportPoll PUT /v1/polls/{pollId}/close PollApi.closePoll +PUT /v1/polls/{pollId}/reopen PollApi.reopenPoll # PollenResourceApi 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 c9efced..fe430a8 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 @@ -46,7 +46,13 @@ import java.util.Set; */ public class PollBean extends PollenBean<Poll> { - private long voteCount; + public enum PollStatus { + VOTING, + ADDING_CHOICES, + CLOSED + } + + ; public PollBean() { super(Poll.class); @@ -114,6 +120,10 @@ public class PollBean extends PollenBean<Poll> { protected Set<String> participants; + protected long voteCount; + + protected PollStatus status; + @Override public void fromEntity(Poll entity) { @@ -153,6 +163,21 @@ public class PollBean extends PollenBean<Poll> { setResultVisibility(entity.getResultVisibility()); setClosed(entity.isClosed()); setParticipants(new LinkedHashSet<>(entity.getParticipants() == null ? Collections.emptyList() : Arrays.asList(entity.getParticipants().split("\\s")))); + + if (entity.isClosed()) { + setStatus(PollStatus.CLOSED); + } else { + setStatus(PollStatus.VOTING); + if (entity.isChoiceAddAllowed()) { + + Date beginChoiceDate = entity.getBeginChoiceDate(); + Date endChoiceDate = entity.getEndChoiceDate(); + Date now = new Date(); + if (now.after(beginChoiceDate) && now.before(endChoiceDate)) { + setStatus(PollStatus.ADDING_CHOICES); + } + } + } } @Override @@ -396,4 +421,12 @@ public class PollBean extends PollenBean<Poll> { public long getVoteCount() { return voteCount; } + + public PollStatus getStatus() { + return status; + } + + public void setStatus(PollStatus status) { + this.status = status; + } } 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 a5b7396..c2d343e 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 @@ -132,6 +132,10 @@ public class NotificationService extends PollenServiceSupport { } + public void onPollReopened(Poll poll) { + + } + public void onChoiceAdded(Poll poll, Choice choice) { } 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 540d341..e8f58cd 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 @@ -292,6 +292,26 @@ public class PollService extends PollenServiceSupport { } + public void reopenPoll(String pollId) { + + checkNotNull(pollId); + checkPermission(PermissionVerb.closePoll, pollId); + + Poll poll = getPoll0(pollId); + + poll.setClosed(false); + + savePoll(toBean(PollBean.class, poll), null); + + //TODO : check if correct + commit(); + + getNotificationService().onPollReopened(poll); + + } + + + public File exportPoll(String pollId) { checkNotNull(pollId); -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.