Index: lams_build/lib/lams/lams.jar =================================================================== RCS file: /usr/local/cvsroot/lams_build/lib/lams/lams.jar,v diff -u -r1.420.2.28 -r1.420.2.29 Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java,v diff -u -r1.13 -r1.13.18.1 --- lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java 9 May 2007 01:07:27 -0000 1.13 +++ lams_common/src/java/org/lamsfoundation/lams/tool/dao/IToolSessionDAO.java 14 Sep 2015 10:20:44 -0000 1.13.18.1 @@ -76,4 +76,11 @@ public List getToolSessionByActivity(final Activity activity); public void updateToolSession(ToolSession toolSession); + + /** + * Get a count of all the possible users for an activity connected to a tool session, where + * it is a GroupedToolSession ie discriminator-value="1". Don't call on any other type of + * tool session. + */ + public Integer getCountUsersGrouped(final long toolSessionId); } Index: lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java,v diff -u -r1.16.18.2 -r1.16.18.3 --- lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java 8 Dec 2014 21:50:14 -0000 1.16.18.2 +++ lams_common/src/java/org/lamsfoundation/lams/tool/dao/hibernate/ToolSessionDAO.java 14 Sep 2015 10:20:44 -0000 1.16.18.3 @@ -55,7 +55,9 @@ "from ToolSession s where s.toolActivity = :activity"; protected static final String LOAD_TOOL_SESSION_BY_LESSON = "from ToolSession s where s.lesson = :lesson"; - + private final static String COUNT_GROUPED_LEARNERS_SQL = "select count(*) from lams_user_group ug, lams_tool_session s " + + " where ug.group_id = s.group_id and s.tool_session_id = :toolSessionId"; + /** * Retrieves the ToolSession * @param toolSessionId identifies the ToolSession to get @@ -138,6 +140,17 @@ getSession().update(toolSession); } + /** + * Get a count of all the possible users for an activity connected to a tool session, where + * it is a GroupedToolSession ie discriminator-value="1". Don't call on any other type of + * tool session. + */ + public Integer getCountUsersGrouped(final long toolSessionId) { + Query query = getSession().createSQLQuery(ToolSessionDAO.COUNT_GROUPED_LEARNERS_SQL); + query.setLong("toolSessionId", toolSessionId); + Object value = query.uniqueResult(); + return new Integer(((Number) value).intValue()); + } } Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsToolService.java,v diff -u -r1.26 -r1.26.2.1 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsToolService.java 8 Jan 2014 17:45:17 -0000 1.26 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsToolService.java 14 Sep 2015 10:20:44 -0000 1.26.2.1 @@ -99,4 +99,18 @@ * @return */ Long getLeaderUserId(Long toolSessionId, Integer learnerId); + + /** + * Get all the potential users for an Activity - they may or may not have joined the lesson. + * Works for both grouped, non-grouped and whole class activities. + * @param toolSessionId + * @return + */ + Set getUsersForActivity(Long toolSessionId); + + /** + * Get a count of all the users that would be returned by getUsersForActivity(Long toolSessionId); + */ + Integer getCountUsersForActivity(Long toolSessionId); + } Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java,v diff -u -r1.29.2.1 -r1.29.2.2 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java 18 Aug 2015 08:25:39 -0000 1.29.2.1 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsToolService.java 14 Sep 2015 10:20:44 -0000 1.29.2.2 @@ -249,6 +249,24 @@ return null; } + @Override + public Set getUsersForActivity(Long toolSessionId) { + ToolSession session = toolSessionDAO.getToolSession(toolSessionId); + return session != null ? session.getLearners() : new HashSet(); + } + + @Override + public Integer getCountUsersForActivity(Long toolSessionId) { + + ToolSession session = toolSessionDAO.getToolSession(toolSessionId); + if ( session.getToolSessionTypeId() == ToolSession.GROUPED_TYPE ) { + return toolSessionDAO.getCountUsersGrouped(toolSessionId); + } else { + // expect it to be 0 or 1 + return session.getLearners().size(); + } + } + /** * @return Returns the toolDAO. */