This is an automated email from the git hooks/post-receive script. New commit to branch feature/permissionPollRestricted in repository pollen. See http://git.chorem.org/pollen.git commit be365f54f47c040a6a5fcae2503561aaacdbebff Author: Adrien Garandel <a.garandel@dralagen.fr> Date: Wed Aug 6 14:54:37 2014 +0200 Add getNewVote in rest-api and improve it in service --- .../java/org/chorem/pollen/rest/api/v1/VoteApi.java | 4 ++-- pollen-rest-api/src/main/resources/mapping | 2 +- .../chorem/pollen/services/service/VoteService.java | 20 +++++++++++--------- pollen-ui-angular/src/main/webapp/js/app.js | 1 + 4 files changed, 15 insertions(+), 12 deletions(-) diff --git a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteApi.java b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteApi.java index 938bccd..99f14d5 100644 --- a/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteApi.java +++ b/pollen-rest-api/src/main/java/org/chorem/pollen/rest/api/v1/VoteApi.java @@ -42,9 +42,9 @@ import java.util.List; */ public class VoteApi extends WebMotionController { - public VoteBean getNewVote(VoteService voteService) { + public VoteBean getNewVote(VoteService voteService, PollenEntityId<Poll> pollId) { - VoteBean newVote = voteService.getNewVote(); + VoteBean newVote = voteService.getNewVote(pollId.getEntityId()); return newVote; } diff --git a/pollen-rest-api/src/main/resources/mapping b/pollen-rest-api/src/main/resources/mapping index 655b776..f219150 100644 --- a/pollen-rest-api/src/main/resources/mapping +++ b/pollen-rest-api/src/main/resources/mapping @@ -164,7 +164,7 @@ DELETE /v1/polls/{pollId}/voterLists/{voterListId}/members/{memberId} Vote # VoteApi GET /v1/polls/{pollId}/votes VoteApi.getVotes -GET /v1/polls/{pollId}/votes/add VoteApi.addVote +GET /v1/polls/{pollId}/votes/new VoteApi.getNewVote GET /v1/polls/{pollId}/votes/{voteId}/edit VoteApi.editVote POST /v1/polls/{pollId}/votes VoteApi.addVote GET /v1/polls/{pollId}/votes/{voteId} VoteApi.getVote 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 4096c22..6367201 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 @@ -26,14 +26,7 @@ package org.chorem.pollen.services.service; import com.google.common.base.Function; import org.apache.commons.collections4.CollectionUtils; import org.apache.commons.lang3.StringUtils; -import org.chorem.pollen.persistence.entity.Choice; -import org.chorem.pollen.persistence.entity.Poll; -import org.chorem.pollen.persistence.entity.PollenPrincipal; -import org.chorem.pollen.persistence.entity.PollenUser; -import org.chorem.pollen.persistence.entity.Polls; -import org.chorem.pollen.persistence.entity.Vote; -import org.chorem.pollen.persistence.entity.VoteToChoice; -import org.chorem.pollen.persistence.entity.VoteToChoiceTopiaDao; +import org.chorem.pollen.persistence.entity.*; import org.chorem.pollen.services.bean.PollenEntityRef; import org.chorem.pollen.services.bean.VoteBean; import org.chorem.pollen.services.bean.VoteToChoiceBean; @@ -59,9 +52,11 @@ public class VoteService extends PollenServiceSupport { } }; - public VoteBean getNewVote() { + public VoteBean getNewVote(String pollId) { + checkPermission(PermissionVerb.addVote, pollId); VoteBean voteBean = new VoteBean(); + voteBean.setWeight(1d); PollenUser connectedUser = getConnectedUser(); @@ -70,6 +65,13 @@ public class VoteService extends PollenServiceSupport { voteBean.setVoterName(connectedUser.getName()); voteBean.setVoterId(connectedUser.getTopiaId()); + 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()); + } } return voteBean; diff --git a/pollen-ui-angular/src/main/webapp/js/app.js b/pollen-ui-angular/src/main/webapp/js/app.js index 2e95217..bdc23a3 100644 --- a/pollen-ui-angular/src/main/webapp/js/app.js +++ b/pollen-ui-angular/src/main/webapp/js/app.js @@ -60,6 +60,7 @@ angular.module('pollen', ['pollenDirective', 'pollenServices', 'ngRoute', 'Polle .config(['$routeProvider', function($routeProvider) { $routeProvider.when('/', {templateUrl: './partials/home.html', controller: "HomeCtrl"}) .when('/poll/create/:tab?', {templateUrl: './partials/poll.html', controller: "PollCreateCtrl"}) + .when('/poll/edit/:pollId/:pollToken?', {templateUrl: './partials/poll.html', controller:"PollCtrl"}) .when('/poll/edit/:pollId/:pollToken?/tab/:tab?', {templateUrl: './partials/poll.html', controller:"PollCtrl"}) .when('/poll/vote/:pollId/:pollToken?', {templateUrl: './partials/poll.html', controller :"PollCtrl"}) .when('/poll/vote/:pollId/:pollToken?/vote/:voteToken', {templateUrl: './partials/poll.html', controller :"PollCtrl"}) -- To stop receiving notification emails like this one, please contact chorem.org SCM administrator <admin+scm@chorem.org>.