Index: lams_admin/web/statistics.jsp
===================================================================
diff -u -r6b759dda2b1837d0da0b214bbfabbfa6deddc3bb -r5673dee0463e48751112f1e516b92c9da78f6363
--- lams_admin/web/statistics.jsp (.../statistics.jsp) (revision 6b759dda2b1837d0da0b214bbfabbfa6deddc3bb)
+++ lams_admin/web/statistics.jsp (.../statistics.jsp) (revision 5673dee0463e48751112f1e516b92c9da78f6363)
@@ -89,9 +89,10 @@
Index: lams_common/src/java/org/lamsfoundation/lams/statistics/dto/StatisticsDTO.java
===================================================================
diff -u -r2dd947ef3812e8d41a9e4be552f54e71ecd1558a -r5673dee0463e48751112f1e516b92c9da78f6363
--- lams_common/src/java/org/lamsfoundation/lams/statistics/dto/StatisticsDTO.java (.../StatisticsDTO.java) (revision 2dd947ef3812e8d41a9e4be552f54e71ecd1558a)
+++ lams_common/src/java/org/lamsfoundation/lams/statistics/dto/StatisticsDTO.java (.../StatisticsDTO.java) (revision 5673dee0463e48751112f1e516b92c9da78f6363)
@@ -6,83 +6,74 @@
* Class representing the overall statistics for the server
*
* @author lfoxton
- *
+ *
*/
public class StatisticsDTO {
-
- private long users;
- private long groups;
- private long subGroups;
- private long sequences;
- private long lessons;
- private long activities;
- private long completedActivities;
-
- ArrayList groupStatistics;
-
- public StatisticsDTO() {}
- public long getUsers() {
- return users;
- }
+ private long users;
+ private long groups;
+ private long subGroups;
+ private long sequences;
+ private long lessons;
+ private long activities;
+ private long completedActivities;
- public void setUsers(long users) {
- this.users = users;
- }
+ public StatisticsDTO() {
+ }
- public long getGroups() {
- return groups;
- }
+ public long getUsers() {
+ return users;
+ }
- public void setGroups(long groups) {
- this.groups = groups;
- }
+ public void setUsers(long users) {
+ this.users = users;
+ }
- public long getSubGroups() {
- return subGroups;
- }
+ public long getGroups() {
+ return groups;
+ }
- public void setSubGroups(long subGroups) {
- this.subGroups = subGroups;
- }
+ public void setGroups(long groups) {
+ this.groups = groups;
+ }
- public long getSequences() {
- return sequences;
- }
+ public long getSubGroups() {
+ return subGroups;
+ }
- public void setSequences(long sequences) {
- this.sequences = sequences;
- }
+ public void setSubGroups(long subGroups) {
+ this.subGroups = subGroups;
+ }
- public long getLessons() {
- return lessons;
- }
+ public long getSequences() {
+ return sequences;
+ }
- public void setLessons(long lessons) {
- this.lessons = lessons;
- }
+ public void setSequences(long sequences) {
+ this.sequences = sequences;
+ }
- public long getActivities() {
- return activities;
- }
+ public long getLessons() {
+ return lessons;
+ }
- public void setActivities(long activities) {
- this.activities = activities;
- }
+ public void setLessons(long lessons) {
+ this.lessons = lessons;
+ }
- public long getCompletedActivities() {
- return completedActivities;
- }
+ public long getActivities() {
+ return activities;
+ }
- public void setCompletedActivities(long completedActivities) {
- this.completedActivities = completedActivities;
- }
+ public void setActivities(long activities) {
+ this.activities = activities;
+ }
- public ArrayList getGroupStatistics() {
- return groupStatistics;
- }
+ public long getCompletedActivities() {
+ return completedActivities;
+ }
- public void setGroupStatistics(ArrayList groupStatistics) {
- this.groupStatistics = groupStatistics;
- }
+ public void setCompletedActivities(long completedActivities) {
+ this.completedActivities = completedActivities;
+ }
}
Index: lams_common/src/java/org/lamsfoundation/lams/statistics/service/IStatisticsService.java
===================================================================
diff -u -r2dd947ef3812e8d41a9e4be552f54e71ecd1558a -r5673dee0463e48751112f1e516b92c9da78f6363
--- lams_common/src/java/org/lamsfoundation/lams/statistics/service/IStatisticsService.java (.../IStatisticsService.java) (revision 2dd947ef3812e8d41a9e4be552f54e71ecd1558a)
+++ lams_common/src/java/org/lamsfoundation/lams/statistics/service/IStatisticsService.java (.../IStatisticsService.java) (revision 5673dee0463e48751112f1e516b92c9da78f6363)
@@ -1,8 +1,29 @@
package org.lamsfoundation.lams.statistics.service;
+import java.util.Map;
+
+import org.lamsfoundation.lams.statistics.dto.GroupStatisticsDTO;
import org.lamsfoundation.lams.statistics.dto.StatisticsDTO;
public interface IStatisticsService {
+ /**
+ * Get the overall statistics for the server
+ * @return
+ */
public StatisticsDTO getOverallStatistics();
+
+ /**
+ * Get the statistics for the specified group
+ * @param orgId
+ * @return
+ * @throws Exception
+ */
+ public GroupStatisticsDTO getGroupStatisticsDTO(Integer orgId) throws Exception;
+
+ /**
+ * Get a map of orgname,orgid for the drop down menu
+ * @return
+ */
+ public Map getGroupMap();
}
Index: lams_common/src/java/org/lamsfoundation/lams/statistics/service/StatisticsService.java
===================================================================
diff -u -r2dd947ef3812e8d41a9e4be552f54e71ecd1558a -r5673dee0463e48751112f1e516b92c9da78f6363
--- lams_common/src/java/org/lamsfoundation/lams/statistics/service/StatisticsService.java (.../StatisticsService.java) (revision 2dd947ef3812e8d41a9e4be552f54e71ecd1558a)
+++ lams_common/src/java/org/lamsfoundation/lams/statistics/service/StatisticsService.java (.../StatisticsService.java) (revision 5673dee0463e48751112f1e516b92c9da78f6363)
@@ -3,6 +3,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.lamsfoundation.lams.dao.IBaseDAO;
@@ -23,8 +24,8 @@
private IBaseDAO baseDAO;
private IUserManagementService userService;
- /**
- * Get the overall statistics for the server
+ /* (non-Javadoc)
+ * @see org.lamsfoundation.lams.statistics.service.IStatisticsService#getOverallStatistics()
*/
public StatisticsDTO getOverallStatistics() {
@@ -46,46 +47,62 @@
statisticsDTO.setLessons(baseDAO.countAll(Lesson.class));
statisticsDTO.setSequences(baseDAO.countAll(LearningDesign.class));
statisticsDTO.setUsers(baseDAO.countAll(User.class));
+ return statisticsDTO;
- // Getting the stats for all the groups and sub-groups
- ArrayList groupStatsList = new ArrayList();
- List groups = (List) userService.findByProperty(Organisation.class, "organisationType.organisationTypeId",
- OrganisationType.COURSE_TYPE);
- if (groups != null) {
- for (Organisation group : groups) {
- GroupStatisticsDTO groupStats = new GroupStatisticsDTO();
- groupStats.setName(group.getName());
- groupStats.setLessons(group.getLessons().size());
- groupStats.setTotalUsers(userService.getAllUsers(group.getOrganisationId()).size());
- groupStats.setAuthors(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.AUTHOR, false, false).size());
- groupStats.setMonitors(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.MONITOR, false, false).size());
- groupStats.setLearners(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.LEARNER, false, false).size());
+ }
- Set subGroups = (Set) group.getChildOrganisations();
+ /* (non-Javadoc)
+ * @see org.lamsfoundation.lams.statistics.service.IStatisticsService#getGroupStatisticsDTO(java.lang.Integer)
+ */
+ public GroupStatisticsDTO getGroupStatisticsDTO(Integer orgId) throws Exception {
- ArrayList subGroupStatsList = new ArrayList();
- if (subGroups != null) {
- for (Organisation subGroup : subGroups) {
- GroupStatisticsDTO subGroupStats = new GroupStatisticsDTO();
- subGroupStats.setName(subGroup.getName());
- subGroupStats.setLessons(subGroup.getLessons().size());
- subGroupStats.setTotalUsers(userService.getAllUsers(subGroup.getOrganisationId()).size());
- subGroupStats.setAuthors(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.AUTHOR, false, false).size());
- subGroupStats.setMonitors(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.MONITOR, false, false).size());
- subGroupStats.setLearners(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.LEARNER, false, false).size());
- subGroupStatsList.add(subGroupStats);
- }
- }
- groupStats.setSubGroups(subGroupStatsList);
+ Organisation group = (Organisation) baseDAO.find(Organisation.class, orgId);
+ GroupStatisticsDTO groupStats = new GroupStatisticsDTO();
+ if (group != null) {
- groupStatsList.add(groupStats);
+ groupStats.setName(group.getName());
+ groupStats.setLessons(group.getLessons().size());
+ groupStats.setTotalUsers(userService.getAllUsers(group.getOrganisationId()).size());
+ groupStats.setAuthors(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.AUTHOR, false, false).size());
+ groupStats.setMonitors(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.MONITOR, false, false).size());
+ groupStats.setLearners(userService.getUsersFromOrganisationByRole(group.getOrganisationId(), Role.LEARNER, false, false).size());
+
+ Set subGroups = (Set) group.getChildOrganisations();
+
+ ArrayList subGroupStatsList = new ArrayList();
+ if (subGroups != null) {
+ for (Organisation subGroup : subGroups) {
+ GroupStatisticsDTO subGroupStats = new GroupStatisticsDTO();
+ subGroupStats.setName(subGroup.getName());
+ subGroupStats.setLessons(subGroup.getLessons().size());
+ subGroupStats.setTotalUsers(userService.getAllUsers(subGroup.getOrganisationId()).size());
+ subGroupStats.setAuthors(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.AUTHOR, false, false).size());
+ subGroupStats.setMonitors(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.MONITOR, false, false).size());
+ subGroupStats.setLearners(userService.getUsersFromOrganisationByRole(subGroup.getOrganisationId(), Role.LEARNER, false, false).size());
+ subGroupStatsList.add(subGroupStats);
+ }
}
+ groupStats.setSubGroups(subGroupStatsList);
+
+ } else {
+ throw new Exception("Tried to fetch data for null group with id: " + orgId);
}
- statisticsDTO.setGroupStatistics(groupStatsList);
- return statisticsDTO;
-
+ return groupStats;
}
+
+ public Map getGroupMap() {
+ Map groupMap = new HashMap ();
+
+ List groups = (List)userService.findByProperty(Organisation.class, "organisationType.organisationTypeId",
+ OrganisationType.COURSE_TYPE);
+ if (groups != null) {
+ for (Organisation group : groups) {
+ groupMap.put(group.getName(), group.getOrganisationId());
+ }
+ }
+ return groupMap;
+ }
public void setBaseDAO(IBaseDAO baseDAO) {
this.baseDAO = baseDAO;