Index: lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java =================================================================== diff -u -r9f4d4f19dc70ef350ebab8e6aa89cb05e1c78c04 -r6ab5362f57823898853d4c3c61450504a1bc857c --- lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java (.../SearchQBController.java) (revision 9f4d4f19dc70ef350ebab8e6aa89cb05e1c78c04) +++ lams_central/src/java/org/lamsfoundation/lams/web/qb/SearchQBController.java (.../SearchQBController.java) (revision 6ab5362f57823898853d4c3c61450504a1bc857c) @@ -225,8 +225,7 @@ boolean isScratchie = WebUtil.readBooleanParam(request, "isScratchie", false); request.setAttribute("isScratchie", isScratchie); - List otherVersions = qbService.getQuestionsByQuestionId(qbQuestion.getQuestionId()); - request.setAttribute("otherVersions", otherVersions); + qbService.fillVersionMap(qbQuestion); return "qb/qbQuestionDetails"; } Index: lams_central/web/qb/qbQuestionDetails.jsp =================================================================== diff -u -r21555f88fd0c63a4a9eb3ae288a2e1d48452aa4b -r6ab5362f57823898853d4c3c61450504a1bc857c --- lams_central/web/qb/qbQuestionDetails.jsp (.../qbQuestionDetails.jsp) (revision 21555f88fd0c63a4a9eb3ae288a2e1d48452aa4b) +++ lams_central/web/qb/qbQuestionDetails.jsp (.../qbQuestionDetails.jsp) (revision 6ab5362f57823898853d4c3c61450504a1bc857c) @@ -27,7 +27,7 @@
- + @@ -40,9 +40,9 @@ Index: lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java =================================================================== diff -u -re423418cca5e77a3b54cb3be496b67abe01c4183 -r6ab5362f57823898853d4c3c61450504a1bc857c --- lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java (.../QbQuestion.java) (revision e423418cca5e77a3b54cb3be496b67abe01c4183) +++ lams_common/src/java/org/lamsfoundation/lams/qb/model/QbQuestion.java (.../QbQuestion.java) (revision 6ab5362f57823898853d4c3c61450504a1bc857c) @@ -4,6 +4,7 @@ import java.util.ArrayList; import java.util.Date; import java.util.List; +import java.util.Map; import java.util.UUID; import javax.persistence.CascadeType; @@ -16,6 +17,7 @@ import javax.persistence.OneToMany; import javax.persistence.OrderBy; import javax.persistence.Table; +import javax.persistence.Transient; import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.builder.EqualsBuilder; @@ -146,6 +148,10 @@ @Fetch(FetchMode.SUBSELECT) private List units = new ArrayList<>(); + // non-persistent field, useful for displaying other versions of this question + @Transient + private Map versionMap; + // checks if important parts of another question are the same as current question's. // And if not, determines whether another question/version be created. public int isQbQuestionModified(QbQuestion oldQuestion) { @@ -508,4 +514,12 @@ public void setUnits(List units) { this.units = units; } + + public Map getVersionMap() { + return versionMap; + } + + public void setVersionMap(Map otherVersions) { + this.versionMap = otherVersions; + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java =================================================================== diff -u -rc82d171dbdd8918839e396f2851d6e11b68bb9e8 -r6ab5362f57823898853d4c3c61450504a1bc857c --- lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision c82d171dbdd8918839e396f2851d6e11b68bb9e8) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/IQbService.java (.../IQbService.java) (revision 6ab5362f57823898853d4c3c61450504a1bc857c) @@ -155,4 +155,6 @@ Collection getQuestionActivities(long qbQuestionUid, Collection toolContentIds); void replaceQuestionInToolActivities(Collection toolContentIds, long oldQbQuestionUid, long newQbQuestionUid); + + void fillVersionMap(QbQuestion qbQuestion); } Index: lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java =================================================================== diff -u -rc82d171dbdd8918839e396f2851d6e11b68bb9e8 -r6ab5362f57823898853d4c3c61450504a1bc857c --- lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision c82d171dbdd8918839e396f2851d6e11b68bb9e8) +++ lams_common/src/java/org/lamsfoundation/lams/qb/service/QbService.java (.../QbService.java) (revision 6ab5362f57823898853d4c3c61450504a1bc857c) @@ -15,6 +15,7 @@ import java.util.Map; import java.util.Map.Entry; import java.util.Set; +import java.util.TreeMap; import java.util.UUID; import java.util.stream.Collectors; @@ -759,6 +760,16 @@ } } + @Override + public void fillVersionMap(QbQuestion qbQuestion) { + List allVersions = getQuestionsByQuestionId(qbQuestion.getQuestionId()); + Map versionMap = new TreeMap<>(); + for (QbQuestion questionVersion : allVersions) { + versionMap.put(questionVersion.getVersion(), questionVersion.getUid()); + } + qbQuestion.setVersionMap(versionMap); + } + private static Integer getUserId() { HttpSession ss = SessionManager.getSession(); UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);