Index: lams_build/lib/lams/lams-gradebook.jar =================================================================== diff -u -r2485ce33e55a921bdcde94e4f242da5da3cf1fc4 -r294a26345c2dec685d6a5fe5aa37ab9ce1433dab Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r0ed9749f00a1e1f92b989b270857d7f3c3f237cb -r294a26345c2dec685d6a5fe5aa37ab9ce1433dab Binary files differ Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180629.sql =================================================================== diff -u --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180629.sql (revision 0) +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch20180629.sql (revision 294a26345c2dec685d6a5fe5aa37ab9ce1433dab) @@ -0,0 +1,24 @@ +-- Turn off autocommit, so nothing is committed if there is an error +SET AUTOCOMMIT = 0; +SET FOREIGN_KEY_CHECKS=0; +----------------------Put all sql statements below here------------------------- + +-- LDEV-4609 Bind archived activity marks in batches +DELETE FROM lams_gradebook_user_activity_archive; +DELETE FROM lams_gradebook_user_lesson_archive; + +ALTER TABLE lams_gradebook_user_lesson_archive ADD COLUMN archive_date DATETIME; +ALTER TABLE lams_gradebook_user_activity_archive ADD COLUMN archive_date DATETIME; + +DELETE FROM lams_progress_attempted_archive; +DELETE FROM lams_progress_completed_archive; +DELETE FROM lams_learner_progress_archive; + +ALTER TABLE lams_learner_progress_archive ADD COLUMN archive_date DATETIME; + +----------------------Put all sql statements above here------------------------- + +-- If there were no errors, commit and restore autocommit to on +COMMIT; +SET AUTOCOMMIT = 1; +SET FOREIGN_KEY_CHECKS=1; \ No newline at end of file Index: lams_gradebook/web/gradebookMonitor.jsp =================================================================== diff -u -r9fe27f7e744dd1c97f0b0226679d8c6f5cb516b7 -r294a26345c2dec685d6a5fe5aa37ab9ce1433dab --- lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 9fe27f7e744dd1c97f0b0226679d8c6f5cb516b7) +++ lams_gradebook/web/gradebookMonitor.jsp (.../gradebookMonitor.jsp) (revision 294a26345c2dec685d6a5fe5aa37ab9ce1433dab) @@ -172,7 +172,8 @@ "", "", "", - 'portraitId' + 'portraitId', + 'hasArchivedMarks' ], colModel:[ {name:'id', index:'id', sortable:false, editable:false, hidden:true, search:false, hidedlg:true}, @@ -183,19 +184,21 @@ {name:'finishDate',index:'finishDate', sortable:false, editable:false, hidden:false, search:false, width:85, align:"left"}, {name:'feedback',index:'feedback', sortable:true, editable:true, edittype:'textarea', editoptions:{rows:'4',cols:'20'}, search:false }, {name:'mark',index:'mark', sortable:true, editable:true, editrules:{number:true}, search:false, width:50, align:"center"}, - {name:'portraitId', index:'portraitId', width:0, hidden: true} + {name:'portraitId', index:'portraitId', width:0, hidden: true}, + {name:'hasArchivedMarks', index:'hasArchivedMarks', width:0, hidden: true} ], loadError: function(xhr,st,err) { jQuery("#userView").clearGridData(); alert(""); }, subGrid: true, subGridRowExpanded: function(subgrid_id, row_id) { - var subgrid_table_id; - var userID = jQuery("#userView").getRowData(row_id)["id"]; - subgrid_table_id = subgrid_id+"_t"; + var subgrid_table_id = subgrid_id+"_t", + rowData = jQuery("#userView").getRowData(row_id), + userID = rowData["id"], + hasArchivedMarks = rowData["hasArchivedMarks"] == "true"; jQuery("#"+subgrid_id).html("
"); - jQuery("#"+subgrid_table_id).jqGrid({ + jQuery("#"+subgrid_table_id).jqGrid({ guiStyle: "bootstrap", iconSet: 'fontAwesome', autoencode:false, @@ -305,7 +308,81 @@ }, gridComplete: function(){ fixPagerInCenter(subgrid_table_id+"_pager", 1); - } + }, + subGrid : hasArchivedMarks, + subGridRowExpanded: function(subgrid_id, row_id) { + var subgrid_table_id = subgrid_id + "_t", + rowData = jQuery("#" + subgrid_id.substring(0, subgrid_id.lastIndexOf('_'))).getRowData(row_id), + activityID = rowData["id"].split("_")[0]; + jQuery("#"+subgrid_id).html("
"); + jQuery("#"+subgrid_table_id).jqGrid({ + guiStyle: "bootstrap", + iconSet: 'fontAwesome', + autoencode:false, + datatype: "xml", + url: "/gradebook/gradebook.do?dispatch=getActivityArchiveGridData&lessonID=${lessonDetails.lessonID}&activityID=" + + activityID + "&view=monUserView&userID=" + userID, + height: "100%", + autowidth:true, + cellEdit:false, + pager: false, + colNames: [ + "", + "", + "", + "", + "", + "", + "", + "", + "" + ], + colModel: [ + {name:'id', index:'id', sortable:false, editable: false ,width:40, align:"right"}, + {name:'restart',index:'restart', sortable:false, editable: false, width:60,align:"left"}, + {name:'lessonMark', index:'lessonMark', sortable:false, editable: false, width:50, align:"center" }, + {name:'status', index:'status', sortable:false, editable:false, width:50, align:"center"}, + {name:'timeTaken',index:'timeTaken', sortable:false, editable: false, width:80, align:"center"}, + {name:'startDate',index:'startDate', sortable:false, editable:false, search:false, width:85, align:"left"}, + {name:'finishDate',index:'finishDate', sortable:false, editable:false, search:false, width:85, align:"left"}, + {name:'feedback', index:'feedback', sortable:false, editable: false, width:200, hidden:true}, + {name:'mark', index:'mark', sortable:false, editable: false, width:50, align:"center" } + ], + loadError: function(xhr,st,err) { + jQuery("#"+subgrid_table_id).clearGridData(); + alert(""); + }, + formatCell: function(rowid, cellname,value, iRow, iCol) { + if (cellname == "mark") { + + var rowData = jQuery("#"+subgrid_table_id).getRowData(rowid); + var string = removeHTMLTags(rowData["mark"]); + + + if (string.indexOf("-") != -1) + { + string = " "; + + } else if (string.indexOf("/") != -1) { + splits = string.split("/"); + + if(splits.length == 2) { + tempMark = splits[0]; + string = " "; + } else { + string = " "; + } + } + + return string; + + } + }, + gridComplete: function(){ + toolTip($(".jqgrow"), "jqgridTooltip"); + } + }); + } }).navGrid("#"+subgrid_table_id+"_pager", {edit:false,add:false,del:false,search:false}); // applying refresh button },