Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/service/Attic/GradeBookService.java,v diff -u -r1.4 -r1.5 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java 20 Mar 2009 04:54:48 -0000 1.4 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/service/GradeBookService.java 24 Mar 2009 23:35:32 -0000 1.5 @@ -131,9 +131,9 @@ * @return Collection */ @SuppressWarnings("unchecked") - public List getUserGradeBookActivityDTOs(Lesson lesson, Activity activity) { + public List getUserGradeBookActivityDTOs(Lesson lesson, Activity activity) { - List gradeBookUserDTOs = new ArrayList(); + List gradeBookUserDTOs = new ArrayList(); Set learners = (Set) lesson.getAllLearners(); @@ -584,16 +584,29 @@ } public String getLessonStatusStr(LearnerProgress learnerProgress) { - String status = "NOT STARTED"; +// String status = "NOT STARTED"; +// +// if (learnerProgress != null) { +// if (learnerProgress.isComplete()) { +// status = "FINISHED"; +// } else if (learnerProgress.getAttemptedActivities() != null +// && learnerProgress.getAttemptedActivities().size() > 0) { +// status = "STARTED"; +// } +// } + + String status = "-"; if (learnerProgress != null) { if (learnerProgress.isComplete()) { - status = "FINISHED"; + status = ""; } else if (learnerProgress.getAttemptedActivities() != null && learnerProgress.getAttemptedActivities().size() > 0) { - status = "STARTED"; + status = ""; } } + + return status; } @@ -603,15 +616,13 @@ if (learnerProgress != null) { byte statusByte = learnerProgress.getProgressState(activity); if (statusByte == LearnerProgress.ACTIVITY_ATTEMPTED) { - return "ATTEMPTED"; + return ""; } else if (statusByte == LearnerProgress.ACTIVITY_COMPLETED) { - return "COMPLETED"; - } else { - return "NOT ATTEMPTED"; - } - } else { - return "NOT ATTEMPTED"; - } + return ""; + } + } + + return "-"; } Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/service/Attic/IGradeBookService.java,v diff -u -r1.3 -r1.4 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java 20 Mar 2009 04:54:48 -0000 1.3 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/service/IGradeBookService.java 24 Mar 2009 23:35:32 -0000 1.4 @@ -40,7 +40,7 @@ public List getUserGradeBookActivityDTOs(Lesson lesson, User learner); - public List getUserGradeBookActivityDTOs(Lesson lesson, Activity activity); + public List getUserGradeBookActivityDTOs(Lesson lesson, Activity activity); public List getUserGradeBookActivityDTOsActivityView(Lesson lesson, User learner); Index: lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/Attic/GradeBookMonitoringAction.java,v diff -u -r1.4 -r1.5 --- lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java 20 Mar 2009 04:54:48 -0000 1.4 +++ lams_central/src/java/org/lamsfoundation/lams/gradebook/web/action/GradeBookMonitoringAction.java 24 Mar 2009 23:35:32 -0000 1.5 @@ -24,6 +24,7 @@ package org.lamsfoundation.lams.gradebook.web.action; import java.io.PrintWriter; +import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -135,20 +136,36 @@ * @throws Exception */ @SuppressWarnings("unchecked") - public ActionForward getUserViewLessonGradeBookData(ActionMapping mapping, ActionForm form, HttpServletRequest request, + public ActionForward getGradeBookUserRows(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { initServices(); int page = WebUtil.readIntParam(request, GradeBookConstants.PARAM_PAGE); int rowLimit = WebUtil.readIntParam(request, GradeBookConstants.PARAM_ROWS); String sortOrder = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SORD); String sortBy = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SIDX, true); Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); + + String method = WebUtil.readStrParam(request, "method"); Lesson lesson = lessonService.getLesson(lessonID); if (lesson != null) { + // Get the user gradebook list from the db - List gradeBookUserDTOs = gradeBookService.getGradeBookLessonData(lesson); + List gradeBookUserDTOs = new ArrayList(); + + if (method.equals("userView")) { + gradeBookUserDTOs = gradeBookService.getGradeBookLessonData(lesson); + } else if (method.equals("activityView")) { + Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID); + + Activity activity = monitoringService.getActivityById(activityID); + if(activity != null) { + gradeBookUserDTOs = gradeBookService.getUserGradeBookActivityDTOs(lesson, activity); + } else { + // TODO: handle error + } + } // Sort the list appropriately if (sortBy != null) { @@ -185,10 +202,19 @@ } - String ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, page, totalPages, GradeBookUtil.GRID_TYPE_MONITOR_USER_VIEW); + String ret = ""; + + if (method.equals("userView")) { + ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, page, totalPages, GradeBookUtil.GRID_TYPE_MONITOR_USER_VIEW); + } else if (method.equals("activityView")) { + ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, page, totalPages, GradeBookUtil.GRID_TYPE_MONITOR_ACTIVITY_VIEW); + } + response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.print(ret); + } else { + // TODO: handle error } return null; @@ -218,34 +244,58 @@ String sortOrder = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SORD); String sortBy = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SIDX, true); Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); + String method = WebUtil.readStrParam(request, "method"); Lesson lesson = lessonService.getLesson(lessonID); if (lesson != null) { + + List gradeBookActivityDTOs = new ArrayList(); + // Get the user gradebook list from the db - List gradeBookUserDTOs = gradeBookService.getActivityGradeBookUserDTOs(lesson); - + // A slightly different list is needed for userview or activity view + if (method.equals("userView")) { + String login = WebUtil.readStrParam(request, GradeBookConstants.PARAM_LOGIN); + User learner = userService.getUserByLogin(login); + if (learner != null) { + gradeBookActivityDTOs = gradeBookService.getUserGradeBookActivityDTOs(lesson, learner); + } else { + // TODO: handle error + } + } else if (method.equals("activityView")) { + gradeBookActivityDTOs = gradeBookService.getActivityGradeBookUserDTOs(lesson); + } + + // Work out the sublist to fetch based on rowlimit and current page. int totalPages = 1; - if (rowLimit < gradeBookUserDTOs.size()) { + if (rowLimit < gradeBookActivityDTOs.size()) { - totalPages = new Double(Math.ceil(new Integer(gradeBookUserDTOs.size()).doubleValue() + totalPages = new Double(Math.ceil(new Integer(gradeBookActivityDTOs.size()).doubleValue() / new Integer(rowLimit).doubleValue())).intValue(); int firstRow = (page - 1) * rowLimit; int lastRow = firstRow + rowLimit; - if (lastRow > gradeBookUserDTOs.size()) { - gradeBookUserDTOs = gradeBookUserDTOs.subList(firstRow, gradeBookUserDTOs.size()); + if (lastRow > gradeBookActivityDTOs.size()) { + gradeBookActivityDTOs = gradeBookActivityDTOs.subList(firstRow, gradeBookActivityDTOs.size()); } else { - gradeBookUserDTOs = gradeBookUserDTOs.subList(firstRow, lastRow); + gradeBookActivityDTOs = gradeBookActivityDTOs.subList(firstRow, lastRow); } } - - String ret = GradeBookUtil.toGridXML(gradeBookUserDTOs, page, totalPages, GradeBookUtil.GRID_TYPE_MONITOR_ACTIVITY_VIEW); + + String ret = ""; + if (method.equals("userView")) { + ret = GradeBookUtil.toGridXML(gradeBookActivityDTOs, page, rowLimit, GradeBookUtil.GRID_TYPE_MONITOR_USER_VIEW); + } else if (method.equals("activityView")){ + ret = GradeBookUtil.toGridXML(gradeBookActivityDTOs, page, totalPages, GradeBookUtil.GRID_TYPE_MONITOR_ACTIVITY_VIEW); + } + response.setContentType("text/xml"); PrintWriter out = response.getWriter(); out.print(ret); + } else { + // TODO: handle error } return null; @@ -353,35 +403,35 @@ * @return * @throws Exception */ - public ActionForward getUserGradeBookActivitiesForActivityView(ActionMapping mapping, ActionForm form, - HttpServletRequest request, HttpServletResponse response) throws Exception { - initServices(); - int page = WebUtil.readIntParam(request, GradeBookConstants.PARAM_PAGE); - int rowLimit = WebUtil.readIntParam(request, GradeBookConstants.PARAM_ROWS); - String sortOrder = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SORD); - String sortBy = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SIDX, true); - Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); - Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID); +// public ActionForward getUserGradeBookActivitiesForActivityView(ActionMapping mapping, ActionForm form, +// HttpServletRequest request, HttpServletResponse response) throws Exception { +// initServices(); +// int page = WebUtil.readIntParam(request, GradeBookConstants.PARAM_PAGE); +// int rowLimit = WebUtil.readIntParam(request, GradeBookConstants.PARAM_ROWS); +// String sortOrder = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SORD); +// String sortBy = WebUtil.readStrParam(request, GradeBookConstants.PARAM_SIDX, true); +// Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID); +// Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID); +// +// Lesson lesson = lessonService.getLesson(lessonID); +// Activity activity = monitoringService.getActivityById(activityID); +// +// if (lesson != null && activity != null) { +// +// List gradeBookActivityDTOs = gradeBookService.getUserGradeBookActivityDTOs(lesson, activity); +// String ret = GradeBookUtil.toGridXML(gradeBookActivityDTOs, page, rowLimit, GradeBookUtil.GRID_TYPE_MONITOR_ACTIVITY_VIEW); +// +// response.setContentType("text/xml"); +// PrintWriter out = response.getWriter(); +// out.print(ret); +// +// } else { +// // Handle error +// } +// +// return null; +// } - Lesson lesson = lessonService.getLesson(lessonID); - Activity activity = monitoringService.getActivityById(activityID); - - if (lesson != null && activity != null) { - - List gradeBookActivityDTOs = gradeBookService.getUserGradeBookActivityDTOs(lesson, activity); - String ret = GradeBookUtil.toGridXML(gradeBookActivityDTOs, page, rowLimit, GradeBookUtil.GRID_TYPE_MONITOR_ACTIVITY_VIEW); - - response.setContentType("text/xml"); - PrintWriter out = response.getWriter(); - out.print(ret); - - } else { - // Handle error - } - - return null; - } - private UserDTO getUser() { HttpSession ss = SessionManager.getSession(); return (UserDTO) ss.getAttribute(AttributeNames.USER); Index: lams_central/web/gradebook/gradeBookMonitor.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_central/web/gradebook/Attic/gradeBookMonitor.jsp,v diff -u -r1.4 -r1.5 --- lams_central/web/gradebook/gradeBookMonitor.jsp 20 Mar 2009 04:54:48 -0000 1.4 +++ lams_central/web/gradebook/gradeBookMonitor.jsp 24 Mar 2009 23:35:32 -0000 1.5 @@ -25,9 +25,9 @@ jQuery("#userView").jqGrid({ caption: "Learner View", datatype: "xml", - url: "/gradebook/gradebookMonitoring.do?dispatch=getUserViewLessonGradeBookData&lessonID=${lessonDetails.lessonID}", + url: "/gradebook/gradebookMonitoring.do?dispatch=getGradeBookUserRows&method=userView&lessonID=${lessonDetails.lessonID}", height: "100%", - width: 707, + width: 990, cellEdit: true, sortorder: "asc", sortname: "fullName", @@ -39,7 +39,7 @@ colModel:[ {name:'login', index:'login', sortable:false, editable:false, hidden:true}, {name:'fullName',index:'fullName', sortable:true, editable:false}, - {name:'status',index:'status', sortable:false, editable:false}, + {name:'status',index:'status', align:'center', width:30, sortable:false, editable:false}, {name:'feedback',index:'feedback', sortable:false, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'} }, {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}} ], @@ -49,20 +49,22 @@ var subgrid_table_id; var userName = jQuery("#userView").getRowData(row_id)["login"]; subgrid_table_id = subgrid_id+"_t"; - jQuery("#"+subgrid_id).html("
"); + jQuery("#"+subgrid_id).html("
"); jQuery("#"+subgrid_table_id).jqGrid({ datatype: "xml", - url: "/gradebook/gradebook.do?dispatch=getUserGradeBookActivitiesForUserView&lessonID=${lessonDetails.lessonID}&login=" + userName, + url: "/gradebook/gradebookMonitoring.do?dispatch=getActivityViewLessonGradeBookData&lessonID=${lessonDetails.lessonID}&method=userView&login=" + userName, height: "100%", - width: 650, + width: 920, cellEdit:true, + pager: subgrid_table_id + "_pager", + rowList:[5,10,20,30], + rowNum:10, cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserActivityGradeBookData&lessonID=${lessonDetails.lessonID}&method=userView&login=" + userName, - ExpandColumn: "Outputs", colNames: ['Id','Activity','Progress','Outputs', 'Competences', 'Activity FeedBack', 'Mark'], colModel: [ {name:'activityId', width:10, index:'activityId', sortable:false, hidden:true}, {name:'activityTitle', width:60, index:'activityTitle', sortable:false, editable: false}, - {name:'status', width:100, index:'status', sortable:false, editable:false}, + {name:'status', align:'center', width:30, index:'status', sortable:false, editable:false}, {name:'output', width:250, index:'output', sortable:false, editable: false}, {name:'competences', width:250, index:'competences', sortable:false, editable: false}, {name:'feedback', width:250, index:'feedback', sortable:false, editable: true, edittype:'textarea', editoptions:{rows:'4',cols:'20'}}, @@ -88,15 +90,21 @@ imgpath: 'includes/javascript/jqgrid/themes/basic/images' }) } - }); + }).navGrid("#userViewPager", {edit:false,add:false,del:false,search:false}); + + + jQuery("#activityView").jqGrid({ caption: "Activity View", datatype: "xml", - url: "/gradebook/gradebookMonitoring.do?dispatch=getActivityViewLessonGradeBookData&lessonID=${lessonDetails.lessonID}", + url: "/gradebook/gradebookMonitoring.do?dispatch=getActivityViewLessonGradeBookData&method=activityView&lessonID=${lessonDetails.lessonID}", height: "100%", - width: 707, + width: 990, cellEdit: true, + pager: "activityViewPager", + rowList:[5,10,20,30], + rowNum:10, sortorder: "asc", sortname: "activityId", colNames:["", 'Activity Name', 'Competences', 'Average Mark'], @@ -112,21 +120,25 @@ var subgrid_table_id; var activityID = jQuery("#activityView").getRowData(row_id)["activityId"]; subgrid_table_id = subgrid_id+"_t"; - jQuery("#"+subgrid_id).html("
"); - jQuery("#"+subgrid_table_id).jqGrid({ + jQuery("#"+subgrid_id).html("
"); + jQuery("#"+subgrid_table_id).jqGrid({ datatype: "xml", - url: "/gradebook/gradebookMonitoring.do?dispatch=getUserGradeBookActivitiesForActivityView&lessonID=${lessonDetails.lessonID}&activityID=" + activityID, + url: "/gradebook/gradebookMonitoring.do?dispatch=getGradeBookUserRows&method=activityView&lessonID=${lessonDetails.lessonID}&activityID=" + activityID, height: "100%", - width: 650, + width: 920, cellEdit:true, cellurl: "/gradebook/gradebookMonitoring.do?dispatch=updateUserActivityGradeBookData&lessonID=${lessonDetails.lessonID}&method=activityView&activityID=" + activityID, - ExpandColumn: "Outputs", - colNames: ['','Full Name','Status','Outputs', 'Activity Feedback', 'Mark'], + sortorder: "asc", + sortname: "fullName", + pager: subgrid_table_id + "_pager", + rowList:[5,10,20,30], + rowNum:10, + colNames: ['','Full Name','Progress','Outputs', 'Activity Feedback', 'Mark'], colModel:[ {name:'login', index:'login', sortable:false, editable:false, hidden:true}, {name:'fullName',index:'fullName', sortable:true, editable:false}, - {name:'status',index:'status', sortable:false, editable:false}, - {name:'output', index:'output', sortable:false, editable: false}, + {name:'status', align:'center', width:30, index:'status', sortable:false, editable:false}, + {name:'output', width:220, index:'output', sortable:false, editable: false}, {name:'feedback',index:'feedback', sortable:false, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'} }, {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}} ], @@ -159,11 +171,7 @@ imgpath: 'includes/javascript/jqgrid/themes/basic/images' }) } - }) - - - - + }).navGrid("#activityViewPager", {edit:false,add:false,del:false,search:false}); }); function launchPopup(url,title) { @@ -184,9 +192,9 @@

GradeBook for ${lessonDetails.lessonName}

-
+

-
+
@@ -195,8 +203,8 @@
+
-