branch develop updated (4d338295 -> 8d703628)
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 4d338295 refs #74 ajout de l'entête de colonne sur le vote condensé. Il se cache quand il n'y a pas assez de place. Modification des tooltip pour prendre en compte les images et les dates new 8d703628 suppression de l'attribut 'closed' sur le poll. On se base seulement sur la date de fin pour savori s'il est fermé. 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 8d70362887d36952768708a2aec37f961c2c5d57 Author: Kevin Morin <morin@codelutin.com> Date: Tue Aug 1 18:29:00 2017 +0200 suppression de l'attribut 'closed' sur le poll. On se base seulement sur la date de fin pour savori s'il est fermé. Summary of changes: .../pollen/persistence/entity/PollTopiaDao.java | 3 +- .../chorem/pollen/persistence/entity/Polls.java | 4 +- .../h2/V3_0_0_6__remove_close_on_poll.sql | 3 + .../postgresql/V3_0_0_6__remove_close_on_poll.sql | 3 + pollen-persistence/src/main/xmi/pollen.properties | 2 +- pollen-persistence/src/main/xmi/pollen.zargo | Bin 26867 -> 26817 bytes .../org/chorem/pollen/rest/api/PollApiTest.java | 2 +- .../org/chorem/pollen/services/bean/PollBean.java | 17 +----- .../pollen/services/service/PollService.java | 22 ++++--- .../pollen/services/service/VoteService.java | 63 ++++++++++----------- .../services/service/security/SecurityService.java | 8 ++- pollen-services/src/main/resources/fixtures.yaml | 1 - 12 files changed, 58 insertions(+), 70 deletions(-) create mode 100644 pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_6__remove_close_on_poll.sql create mode 100644 pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_6__remove_close_on_poll.sql -- 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 8d70362887d36952768708a2aec37f961c2c5d57 Author: Kevin Morin <morin@codelutin.com> Date: Tue Aug 1 18:29:00 2017 +0200 suppression de l'attribut 'closed' sur le poll. On se base seulement sur la date de fin pour savori s'il est fermé. --- .../pollen/persistence/entity/PollTopiaDao.java | 3 +- .../chorem/pollen/persistence/entity/Polls.java | 4 +- .../h2/V3_0_0_6__remove_close_on_poll.sql | 3 + .../postgresql/V3_0_0_6__remove_close_on_poll.sql | 3 + pollen-persistence/src/main/xmi/pollen.properties | 2 +- pollen-persistence/src/main/xmi/pollen.zargo | Bin 26867 -> 26817 bytes .../org/chorem/pollen/rest/api/PollApiTest.java | 2 +- .../org/chorem/pollen/services/bean/PollBean.java | 17 +----- .../pollen/services/service/PollService.java | 22 ++++--- .../pollen/services/service/VoteService.java | 63 ++++++++++----------- .../services/service/security/SecurityService.java | 8 ++- pollen-services/src/main/resources/fixtures.yaml | 1 - 12 files changed, 58 insertions(+), 70 deletions(-) diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java index 19be3a5c..88e8ea39 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/PollTopiaDao.java @@ -193,8 +193,7 @@ public class PollTopiaDao extends AbstractPollTopiaDao<Poll> { Date now = calendar.getTime(); return forHql("FROM " + Poll.class.getCanonicalName() +" p" + - " WHERE p." + Poll.PROPERTY_CLOSED + " = false" + - " AND p." + Poll.PROPERTY_END_DATE + " IS NOT NULL" + + " WHERE p." + Poll.PROPERTY_END_DATE + " IS NOT NULL" + " AND p." + Poll.PROPERTY_POLL_END_REMINDER_SENT + " = false" + " AND p." + Poll.PROPERTY_NOTIFY_ME_HOURS_BEFORE_POLL_ENDS + " > 0" ).findAll().stream() diff --git a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Polls.java b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Polls.java index 04542729..7612516a 100644 --- a/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Polls.java +++ b/pollen-persistence/src/main/java/org/chorem/pollen/persistence/entity/Polls.java @@ -46,8 +46,7 @@ public class Polls { } public boolean isRunning(Poll poll, Date currentDate) { - return !poll.isClosed() && - isStarted(poll, currentDate) && + return isStarted(poll, currentDate) && !isFinished(poll, currentDate); } @@ -64,7 +63,6 @@ public class Polls { public static boolean isAddChoiceRunning(Poll poll, Date currentDate) { return poll.isChoiceAddAllowed() && - !poll.isClosed() && !isFinished(poll, currentDate) && isAddChoiceStarted(poll, currentDate) && !isAddChoiceFinished(poll, currentDate); diff --git a/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_6__remove_close_on_poll.sql b/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_6__remove_close_on_poll.sql new file mode 100644 index 00000000..e6005d6e --- /dev/null +++ b/pollen-persistence/src/main/resources/db/migration/h2/V3_0_0_6__remove_close_on_poll.sql @@ -0,0 +1,3 @@ +-- remove close in poll +update poll set enddate = NOW() where enddate is null and closed; +alter table poll drop column closed; \ No newline at end of file diff --git a/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_6__remove_close_on_poll.sql b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_6__remove_close_on_poll.sql new file mode 100644 index 00000000..e6005d6e --- /dev/null +++ b/pollen-persistence/src/main/resources/db/migration/postgresql/V3_0_0_6__remove_close_on_poll.sql @@ -0,0 +1,3 @@ +-- remove close in poll +update poll set enddate = NOW() where enddate is null and closed; +alter table poll drop column closed; \ No newline at end of file diff --git a/pollen-persistence/src/main/xmi/pollen.properties b/pollen-persistence/src/main/xmi/pollen.properties index d6ac9ccd..c659a6ce 100644 --- a/pollen-persistence/src/main/xmi/pollen.properties +++ b/pollen-persistence/src/main/xmi/pollen.properties @@ -18,7 +18,7 @@ # along with this program. If not, see <http://www.gnu.org/licenses/>. # #L% ###m -model.tagvalue.version=3.0.0.5 +model.tagvalue.version=3.0.0.6 #model.tagValue.notGenerateToString=true #model.tagValue.constantPrefix=PROPERTY_ #model.tagValue.useEnumerationName=true diff --git a/pollen-persistence/src/main/xmi/pollen.zargo b/pollen-persistence/src/main/xmi/pollen.zargo index ef9c933a..55e72c05 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-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java index 61df2599..8c6384dd 100644 --- a/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java +++ b/pollen-rest-api/src/test/java/org/chorem/pollen/rest/api/PollApiTest.java @@ -136,7 +136,7 @@ public class PollApiTest extends AbstractPollenRestApiTest { poll.setVoteCountingType(1); poll.setTitle("title"); poll.setChoiceType(ChoiceType.TEXT); - poll.setClosed(false); + poll.setEndDate(null); List<ChoiceBean> choices = new ArrayList<>(); ChoiceBean choice1 = new ChoiceBean(); 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 3a64b9d2..30bf3523 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 @@ -30,6 +30,7 @@ import org.chorem.pollen.persistence.entity.PollImpl; 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.Polls; import org.chorem.pollen.persistence.entity.ResultVisibility; import org.chorem.pollen.persistence.entity.VoteVisibility; @@ -105,8 +106,6 @@ public class PollBean extends PollenBean<Poll> { protected ResultVisibility resultVisibility; - protected boolean isClosed; - protected boolean resultIsVisible; protected boolean commentIsVisible; @@ -177,7 +176,6 @@ public class PollBean extends PollenBean<Poll> { setVoteVisibility(entity.getVoteVisibility()); setCommentVisibility(entity.getCommentVisibility()); setResultVisibility(entity.getResultVisibility()); - setClosed(entity.isClosed()); setParticipants(new LinkedHashSet<>(entity.getParticipants() == null ? Collections.emptyList() : Arrays.asList(entity.getParticipants().split("\\s")))); setWithMe(entity.isWithMe()); setChoiceType(entity.getChoiceType()); @@ -185,11 +183,11 @@ public class PollBean extends PollenBean<Poll> { setVoteNotification(entity.isVoteNotification()); setNotificationLocale(entity.getNotificationLocale()); - if (entity.isClosed()) { + Date now = new Date(); + if (Polls.isFinished(entity, now)) { setStatus(PollStatus.CLOSED); } else { setStatus(PollStatus.CREATED); - Date now = new Date(); if (entity.isChoiceAddAllowed()) { Date beginChoiceDate = entity.getBeginChoiceDate(); @@ -237,7 +235,6 @@ public class PollBean extends PollenBean<Poll> { entity.setVoteVisibility(getVoteVisibility()); entity.setCommentVisibility(getCommentVisibility()); entity.setResultVisibility(getResultVisibility()); - entity.setClosed(isClosed()); entity.setParticipants(Joiner.on(' ').join(getParticipants())); entity.setChoiceType(getChoiceType()); entity.setWithMe(isWithMe()); @@ -392,14 +389,6 @@ public class PollBean extends PollenBean<Poll> { this.resultVisibility = resultVisibility; } - public boolean isClosed() { - return isClosed; - } - - public void setClosed(boolean isClosed) { - this.isClosed = isClosed; - } - public boolean isResultIsVisible() { return resultIsVisible; } 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 2954b0b9..87d9bbf3 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 @@ -81,18 +81,17 @@ public class PollService extends PollenServiceSupport { input.setVoteIsVisible(isPermitted(PermissionVerb.readVote, input.getEntityId())); - boolean resultIsVisible = (input.isClosed() - || input.isContinuousResults() - && (input.getEndDate() == null || getNow().before(input.getEndDate())) - && (input.getBeginDate() == null || !getNow().before(input.getBeginDate())) - && isPermitted(PermissionVerb.readPollResult, input.getEntityId())); + Date now = getNow(); + boolean beforePollEndDate = input.getEndDate() == null || now.before(input.getEndDate()); + + boolean resultIsVisible = (beforePollEndDate || input.isContinuousResults()) + && isPermitted(PermissionVerb.readPollResult, input.getEntityId()); input.setResultIsVisible(resultIsVisible); - boolean canVote = !input.isClosed() - && (input.getEndDate() == null || getNow().before(input.getEndDate())) - && (input.getBeginDate() == null || !getNow().before(input.getBeginDate())) - && isPermitted(PermissionVerb.addVote, input.getEntityId()); + boolean canVote = beforePollEndDate + && (input.getBeginDate() == null || !now.before(input.getBeginDate())) + && isPermitted(PermissionVerb.addVote, input.getEntityId()); input.setCanVote(canVote); if (commentIsVisible) { @@ -292,7 +291,6 @@ public class PollService extends PollenServiceSupport { clonedPoll.setEntityId(null); clonedPoll.setPermission(null); - clonedPoll.setClosed(false); clonedPoll.setBeginDate(serviceContext.getNow()); clonedPoll.setEndDate(null); clonedPoll.setBeginChoiceDate(null); @@ -339,7 +337,7 @@ public class PollService extends PollenServiceSupport { Poll poll = getPoll0(pollId); - poll.setClosed(true); + poll.setEndDate(getNow()); savePoll(toBean(PollBean.class, poll), null); @@ -358,7 +356,7 @@ public class PollService extends PollenServiceSupport { Poll poll = getPoll0(pollId); - poll.setClosed(false); + poll.setEndDate(null); savePoll(toBean(PollBean.class, poll), null); 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 66a5d144..66f8c3e1 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 @@ -204,57 +204,54 @@ public class VoteService extends PollenServiceSupport { boolean voteExists = vote.isPersisted(); Set<String> voterNames = new HashSet<>(); - boolean notClosed = checkNot(errors, "poll", poll.isClosed(), l(getLocale(), "pollen.error.vote.poll.isClosed")); + Date now = serviceContext.getNow(); - if (notClosed) { - Date now = serviceContext.getNow(); + check(errors, "poll", Polls.isStarted(poll, now), l(getLocale(), "pollen.error.vote.poll.notStarted")); + check(errors, "poll", !Polls.isFinished(poll, now), l(getLocale(), "pollen.error.vote.poll.finished")); - check(errors, "poll", Polls.isStarted(poll, now), l(getLocale(), "pollen.error.vote.poll.notStarted")); - check(errors, "poll", !Polls.isFinished(poll, now), l(getLocale(), "pollen.error.vote.poll.finished")); + boolean voteNameNotBlank = checkNotBlank(errors, "voter.name", vote.getVoterName(), l(getLocale(), "pollen.error.vote.voterName.mandatory")); - boolean voteNameNotBlank = checkNotBlank(errors, "voter.name", vote.getVoterName(), l(getLocale(), "pollen.error.vote.voterName.mandatory")); + if (voteNameNotBlank) { + List<Vote> existingVote = getVoteDao().findAll(poll); - if (voteNameNotBlank) { - List<Vote> existingVote = getVoteDao().findAll(poll); + if (CollectionUtils.isNotEmpty(existingVote)) { - if (CollectionUtils.isNotEmpty(existingVote)) { + // get all voter name - // get all voter name + for (Vote oneVote : existingVote) { + if (voteExists && + oneVote.getTopiaId().equals(vote.getEntityId())) { - for (Vote oneVote : existingVote) { - if (voteExists && - oneVote.getTopiaId().equals(vote.getEntityId())) { - - continue; - } - - voterNames.add(oneVote.getVoter().getName()); + continue; } + + voterNames.add(oneVote.getVoter().getName()); } + } - boolean voterNameAdded = voterNames.add(vote.getVoterName()); - check(errors, "voter.name", voterNameAdded, l(getLocale(), "pollen.error.vote.voterName.alreadyExist")); + boolean voterNameAdded = voterNames.add(vote.getVoterName()); + check(errors, "voter.name", voterNameAdded, l(getLocale(), "pollen.error.vote.voterName.alreadyExist")); - } + } - VoteCounting voteCounting = getVoteCountingService().getVoteCounting(poll); + VoteCounting voteCounting = getVoteCountingService().getVoteCounting(poll); - ErrorMap valueErrors = getVoteCountingService().voteIsValid(vote, voteCounting, choices); - valueErrors.copyTo(errors, "vote."); + ErrorMap valueErrors = getVoteCountingService().voteIsValid(vote, voteCounting, choices); + valueErrors.copyTo(errors, "vote."); - if (poll.getMaxChoiceNumber() > 0) { - int nbChoice = 0; - for (VoteToChoiceBean voteToChoice : vote.getChoice()) { - if (voteCounting.isChoiceInVote(voteToChoice.getVoteValue())) { - nbChoice++; - } + if (poll.getMaxChoiceNumber() > 0) { + int nbChoice = 0; + for (VoteToChoiceBean voteToChoice : vote.getChoice()) { + if (voteCounting.isChoiceInVote(voteToChoice.getVoteValue())) { + nbChoice++; } - - check(errors, "vote.limitedVote", nbChoice <= poll.getMaxChoiceNumber(), l(getLocale(), "pollen.error.vote.limitedVote.overflow")); } - //TODO Finish validation + check(errors, "vote.limitedVote", nbChoice <= poll.getMaxChoiceNumber(), l(getLocale(), "pollen.error.vote.limitedVote.overflow")); } + + //TODO Finish validation + return errors; } 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 8d4a42d5..6ab180fc 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 @@ -52,6 +52,7 @@ import org.chorem.pollen.persistence.entity.PollenPrincipalTopiaDao; import org.chorem.pollen.persistence.entity.PollenToken; import org.chorem.pollen.persistence.entity.PollenTokenTopiaDao; import org.chorem.pollen.persistence.entity.PollenUser; +import org.chorem.pollen.persistence.entity.Polls; import org.chorem.pollen.persistence.entity.ResultVisibility; import org.chorem.pollen.persistence.entity.SessionToken; import org.chorem.pollen.persistence.entity.Vote; @@ -696,11 +697,12 @@ public class SecurityService extends PollenServiceSupport { } } - if (poll.getResultVisibility() == ResultVisibility.EVERYBODY && (poll.isClosed() || poll.isContinuousResults())) { + Date now = getNow(); + if (poll.getResultVisibility() == ResultVisibility.EVERYBODY && (Polls.isFinished(poll, now) || poll.isContinuousResults())) { permissions.add(createSubjectPermission(PermissionVerb.readPollResult, poll)); } - if (poll.isChoiceAddAllowed() && !poll.isClosed()) { + if (poll.isChoiceAddAllowed() && !Polls.isFinished(poll, now)) { permissions.add(createSubjectPermission(PermissionVerb.addChoice, poll)); } @@ -744,7 +746,7 @@ public class SecurityService extends PollenServiceSupport { } } - if (poll.getResultVisibility() == ResultVisibility.VOTER && (poll.isClosed() || poll.isContinuousResults())) { + if (poll.getResultVisibility() == ResultVisibility.VOTER && (Polls.isFinished(poll, getNow()) || poll.isContinuousResults())) { permissions.add(createSubjectPermission(PermissionVerb.readPollResult, poll)); } } diff --git a/pollen-services/src/main/resources/fixtures.yaml b/pollen-services/src/main/resources/fixtures.yaml index f17d2733..0044a81d 100644 --- a/pollen-services/src/main/resources/fixtures.yaml +++ b/pollen-services/src/main/resources/fixtures.yaml @@ -26,7 +26,6 @@ poll_normal: beginDate: 1/1/2014 endDate: 1/2/2014 maxChoiceNumber: 2 - closed: true choiceType: TEXT choiceAddAllowed: false anonymousVoteAllowed: false -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.
participants (1)
-
chorem.org scm