r3386 - in trunk: pollen-services/src/main/java/org/chorem/pollen/services pollen-services/src/main/java/org/chorem/pollen/services/impl pollen-services/src/main/resources/i18n pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json pollen-ui-struts2/src/main/resources/i18n
Author: tchemit Date: 2012-05-24 20:13:06 +0200 (Thu, 24 May 2012) New Revision: 3386 Url: http://chorem.org/repositories/revision/pollen/3386 Log: fixes #568: Adding choices are not displayed fixes #569: Improve data in poll grids Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java trunk/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties trunk/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java =================================================================== --- trunk/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/PollenServiceSupport.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -33,10 +33,14 @@ import org.nuiton.topia.framework.TopiaContextImplementor; import org.nuiton.topia.persistence.TopiaDAO; import org.nuiton.topia.persistence.TopiaEntity; +import org.nuiton.util.DateUtil; +import java.util.Date; import java.util.List; import java.util.Locale; +import static org.nuiton.i18n.I18n.l_; + /** * @author tchemit <chemit@codelutin.com> * @since 1.3 @@ -92,6 +96,32 @@ } } + public String decorateDateTime(Date date) { + String result = null; + if (date != null) { + result = DateUtil.formatDate(date, getDateTimePattern()); + } + return result; + } + + public String decorateDate(Date date) { + String result = null; + if (date != null) { + result = DateUtil.formatDate(date, getDatePattern()); + } + return result; + } + + public String getDateTimePattern() { + String result = l_(serviceContext.getLocale(), "pollen.common.dateTimePattern"); + return result; + } + + public String getDatePattern() { + String result = l_(serviceContext.getLocale(), "pollen.common.datePattern"); + return result; + } + protected <T extends TopiaEntity, D extends TopiaDAO<? super T>> T newInstance(D dao) { try { return (T) dao.newInstance(); Modified: trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java =================================================================== --- trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-services/src/main/java/org/chorem/pollen/services/impl/PollService.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -64,6 +64,7 @@ import org.chorem.pollen.services.exceptions.UnauthorizedPollAccessException; import org.nuiton.topia.TopiaException; import org.nuiton.topia.persistence.TopiaFilterPagerUtil; +import org.nuiton.util.beans.Binder; import javax.imageio.ImageIO; import javax.swing.ImageIcon; @@ -76,8 +77,11 @@ import java.net.URL; import java.util.Date; import java.util.List; +import java.util.Locale; import java.util.Map; +import static org.nuiton.i18n.I18n.l_; + public class PollService extends PollenServiceSupport { /** Logger. */ @@ -246,6 +250,62 @@ return result; } + public Map<String, Object> pollToMap(Poll poll, Binder<Poll, Poll> binder) { + + Map<String, Object> map = binder.obtainProperties( + poll, + Poll.PROPERTY_TITLE, + Poll.PROPERTY_POLL_ID, + Poll.PROPERTY_DESCRIPTION + ); + Locale l = serviceContext.getLocale(); + if (poll.getBeginDate() == null) { + map.put(Poll.PROPERTY_BEGIN_DATE, l_(l, "pollen.common.undefined")); + } else { + map.put(Poll.PROPERTY_BEGIN_DATE, decorateDate(poll.getBeginDate())); + } + if (poll.getEndDate() == null) { + map.put(Poll.PROPERTY_END_DATE, l_(l, "pollen.common.undefined")); + } else { + map.put(Poll.PROPERTY_END_DATE, decorateDate(poll.getEndDate())); + } + + String addingchoiceText; + if (poll.isChoiceAddAllowed()) { + + Date beginDate = poll.getBeginChoiceDate(); + Date endDate = poll.getEndChoiceDate(); + + if (beginDate == null && endDate == null) { + + // can always add choices + addingchoiceText = + l_(l, "pollen.common.addingChoicesAlways"); + } else if (beginDate == null) { + // until enddate + addingchoiceText = + l_(l, "pollen.common.addingChoicesTo", + decorateDate(endDate)); + } else if (endDate == null) { + + // from begin date + addingchoiceText = + l_(l, "pollen.common.addingChoicesFrom", + decorateDate(beginDate)); + } else { + addingchoiceText = + l_(l, "pollen.common.addingChoicesContent", + decorateDate(beginDate), + decorateDate(endDate)); + } + } else { + addingchoiceText = l_(l, "pollen.common.unauthorized"); + } + map.put("addingChoices", addingchoiceText); + map.put("id", poll.getTopiaId()); + return map; + } + public Poll createPoll(Poll poll) { PollDAO pollDAO = getDAO(Poll.class); @@ -490,7 +550,7 @@ try { PollDAO pollDao = getDAO(Poll.class); - List<Pair<Poll,PollAccount>> result = + List<Pair<Poll, PollAccount>> result = pollDao.getParticipatedPolls(pager, userToUse); return result; } catch (TopiaException e) { Modified: trunk/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties =================================================================== --- trunk/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-services/src/main/resources/i18n/pollen-services_en_GB.properties 2012-05-24 18:13:06 UTC (rev 3386) @@ -3,11 +3,19 @@ delete=Delete edit=Edit help=Help +pollen.common.addingChoicesAlways=Always +pollen.common.addingChoicesContent=From %s to %s +pollen.common.addingChoicesFrom=From %s +pollen.common.addingChoicesTo=Until %s pollen.common.anonymous=Anonymous vote +pollen.common.datePattern=MM/dd/yyyy +pollen.common.dateTimePattern=MM/dd/yyyy HH\:mm pollen.common.numberVote-average=Average of numbers pollen.common.numberVote-blank-votes=Number of blank votes pollen.common.numberVote-total=Sum of numbers pollen.common.numberVote-total-votes=Total votes +pollen.common.unauthorized=unauthorized +pollen.common.undefined=undefined pollen.email.createPoll.content=You had just created the new poll\: "%s".\nYou can access to this poll by following the links below.\n\nVote page\: \n%s\nModerate votes page\: \n%s\nEdit page\: \n%s pollen.email.createPoll.subject=[Pollen] Poll creation (%s) pollen.email.createRestrictedPoll.content=You had just created the new poll\: "%s".\nYou can access to this poll by following the links below.\n\nModerate votes page\: \n%s\nEdit page\: \n%s Modified: trunk/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties =================================================================== --- trunk/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-services/src/main/resources/i18n/pollen-services_fr_FR.properties 2012-05-24 18:13:06 UTC (rev 3386) @@ -3,11 +3,19 @@ lastName-label=Nom login-label=Identifiant name-label=Nom +pollen.common.addingChoicesAlways=Toujours +pollen.common.addingChoicesContent=Du %s au %s +pollen.common.addingChoicesFrom=Depuis le %s +pollen.common.addingChoicesTo=Jusqu'au %s pollen.common.anonymous=Vote anonyme +pollen.common.datePattern=dd/MM/yyyy +pollen.common.dateTimePattern=dd/MM/yyyy HH\:mm pollen.common.numberVote-average=Moyenne des nombres pollen.common.numberVote-blank-votes=Nombre de votes blancs pollen.common.numberVote-total=Somme des nombres pollen.common.numberVote-total-votes=Nombre total de votes +pollen.common.unauthorized=Non autorisé +pollen.common.undefined=Non défini pollen.email.createPoll.content=Vous venez de créer le sondage "%1$s".\nVous pouvez y accéder en suivant les liens ci-dessous.\n\nPage de vote \: \n%2$s\nModération des votes \: \n%3$s\nPage de modification \: \n%4$s pollen.email.createPoll.subject=[Pollen] Création d'un sondage (%1$s) pollen.email.createRestrictedPoll.content=Vous venez de créer le sondage "%s".\nVous pouvez y accéder en suivant les liens ci-dessous.\n\nModération des votes \: \n%s\nPage de modification \: \n%s Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetCreatedPolls.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -28,6 +28,7 @@ import org.chorem.pollen.common.PollType; import org.chorem.pollen.entities.PollenBinderHelper; import org.chorem.pollen.services.impl.PollService; +import org.chorem.pollen.ui.actions.DateConverter; import org.nuiton.util.beans.Binder; import java.util.List; @@ -84,21 +85,12 @@ int index = 0; for (Poll poll : pollList) { - Map<String, Object> map = binder.obtainProperties( - poll, - Poll.PROPERTY_TITLE, - Poll.PROPERTY_POLL_ID, - Poll.PROPERTY_DESCRIPTION, - Poll.PROPERTY_BEGIN_DATE, - Poll.PROPERTY_END_DATE - ); - - map.put("id", poll.getTopiaId()); + Map<String, Object> map = pollService.pollToMap(poll, binder); + map.put("voteId", poll.getPollId()); map.put("moderateId", poll.getAdminId()); map.put("resultId", getResultId(poll)); map.put("adminId", poll.getAdminId()); - Set<String> functions = getPollFunctions(poll); map.put("functions", functions); polls[index++] = map; @@ -131,7 +123,7 @@ * Retrieve the id for result page depends on {@code poll}. * It's not necessary to use {@code adminId} if the poll results are public. * But the {@code adminId} is mandatory if the poll is restricted (security). - * + * * @param poll Poll * @return the pollId if results are public or the adminId if not */ Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetInvitedPolls.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -87,20 +87,22 @@ for (Pair<Poll, PollAccount> entry : invitedPolls) { Poll poll = entry.getKey(); - Map<String, Object> map = binder.obtainProperties( - poll, - Poll.PROPERTY_TITLE, - Poll.PROPERTY_POLL_ID, - Poll.PROPERTY_DESCRIPTION, - Poll.PROPERTY_BEGIN_DATE, - Poll.PROPERTY_END_DATE - ); + Map<String, Object> map = pollService.pollToMap(poll, binder); +// Map<String, Object> map = binder.obtainProperties( +// poll, +// Poll.PROPERTY_TITLE, +// Poll.PROPERTY_POLL_ID, +// Poll.PROPERTY_DESCRIPTION, +// Poll.PROPERTY_BEGIN_DATE, +// Poll.PROPERTY_END_DATE +// ); PollAccount account = entry.getValue(); - PollUri pollUri = PollUri.newPollUri(poll.getPollId(), account.getAccountId()); + PollUri pollUri = PollUri.newPollUri(poll.getPollId(), + account.getAccountId()); - map.put("id", poll.getTopiaId()); +// map.put("id", poll.getTopiaId()); map.put("voteId", pollUri.getUri()); map.put("resultId", pollUri.getUri()); Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetParticipatedPolls.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -88,20 +88,23 @@ for (Pair<Poll, PollAccount> entry : participatedPolls) { Poll poll = entry.getKey(); - Map<String, Object> map = binder.obtainProperties( - poll, - Poll.PROPERTY_TITLE, - Poll.PROPERTY_POLL_ID, - Poll.PROPERTY_DESCRIPTION, - Poll.PROPERTY_BEGIN_DATE, - Poll.PROPERTY_END_DATE - ); + Map<String, Object> map = pollService.pollToMap(poll, binder); +// Map<String, Object> map = binder.obtainProperties( +// poll, +// Poll.PROPERTY_TITLE, +// Poll.PROPERTY_POLL_ID, +// Poll.PROPERTY_DESCRIPTION, +// Poll.PROPERTY_BEGIN_DATE, +// Poll.PROPERTY_END_DATE +// ); + PollAccount account = entry.getValue(); - PollUri pollUri = PollUri.newPollUri(poll.getPollId(), account.getAccountId()); + PollUri pollUri = PollUri.newPollUri(poll.getPollId(), + account.getAccountId()); - map.put("id", poll.getTopiaId()); +// map.put("id", poll.getTopiaId()); // Keep accountId to allow vote update map.put("voteId", pollUri.getUri()); Modified: trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java =================================================================== --- trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/java/org/chorem/pollen/ui/actions/json/GetPolls.java 2012-05-24 18:13:06 UTC (rev 3386) @@ -82,16 +82,17 @@ int index = 0; for (Poll poll : pollList) { + Map<String, Object> map = pollService.pollToMap(poll, binder); - Map<String, Object> map = binder.obtainProperties( - poll, - Poll.PROPERTY_TITLE, - Poll.PROPERTY_POLL_ID, - Poll.PROPERTY_DESCRIPTION, - Poll.PROPERTY_BEGIN_DATE, - Poll.PROPERTY_END_DATE - ); - map.put("id", poll.getTopiaId()); +// Map<String, Object> map = binder.obtainProperties( +// poll, +// Poll.PROPERTY_TITLE, +// Poll.PROPERTY_POLL_ID, +// Poll.PROPERTY_DESCRIPTION, +// Poll.PROPERTY_BEGIN_DATE, +// Poll.PROPERTY_END_DATE +// ); +// map.put("id", poll.getTopiaId()); map.put("moderateId", poll.getAdminId()); map.put("resultId", poll.getAdminId()); map.put("adminId", poll.getAdminId()); Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties =================================================================== --- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_en_GB.properties 2012-05-24 18:13:06 UTC (rev 3386) @@ -66,9 +66,7 @@ pollen.common.commentText=Comment pollen.common.comments=Comments about this poll pollen.common.csvImport=CSV import -pollen.common.datePattern=MM/dd/yyyy pollen.common.datePickerPattern=mm/dd/yy -pollen.common.dateTimePattern=MM/dd/yyyy HH\:mm pollen.common.description=Description pollen.common.displayType-group=Results by groups pollen.common.displayType-normal=Results Modified: trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties =================================================================== --- trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-05-24 17:15:47 UTC (rev 3385) +++ trunk/pollen-ui-struts2/src/main/resources/i18n/pollen-ui-struts2_fr_FR.properties 2012-05-24 18:13:06 UTC (rev 3386) @@ -66,9 +66,7 @@ pollen.common.commentText=Commentaire pollen.common.comments=Commentaire à propos du sondage pollen.common.csvImport=Import CSV -pollen.common.datePattern=dd/MM/yyyy pollen.common.datePickerPattern=dd/mm/yy -pollen.common.dateTimePattern=dd/MM/yyyy HH\:mm pollen.common.description=Description pollen.common.displayType-group=Résultats par groupes pollen.common.displayType-normal=Résultats
participants (1)
-
tchemit@users.chorem.org