Index: lams_gradebook/conf/language/lams/ApplicationResources.properties =================================================================== diff -u -rb784c097aa626460dd6fb3c7d4f829c5b791f0f7 -r66731316c708697a11666228c114ae5ce8bf0b23 --- lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision b784c097aa626460dd6fb3c7d4f829c5b791f0f7) +++ lams_gradebook/conf/language/lams/ApplicationResources.properties (.../ApplicationResources.properties) (revision 66731316c708697a11666228c114ae5ce8bf0b23) @@ -118,6 +118,7 @@ label.activity.marks.weighted =(Activity Marks Weighted) gradebook.export.max.time.taken.seconds =Maximum time taken (seconds) gradebook.export.min.time.taken.seconds =Minimum time taken (seconds) +gradebook.export.weight = (weight: {0}%) outcome.authoring.title =Learning outcomes outcome.authoring.input =Search and select by outcome name or code outcome.authoring.existing =Added outcomes Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java =================================================================== diff -u -rc66eb16fd82d488f15aadc9c4c3d615b4493b12e -r66731316c708697a11666228c114ae5ce8bf0b23 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision c66eb16fd82d488f15aadc9c4c3d615b4493b12e) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/dto/GBActivityGridRowDTO.java (.../GBActivityGridRowDTO.java) (revision 66731316c708697a11666228c114ae5ce8bf0b23) @@ -28,6 +28,7 @@ import org.lamsfoundation.lams.gradebook.util.GBGridView; import org.lamsfoundation.lams.gradebook.util.GradebookUtil; import org.lamsfoundation.lams.learningdesign.Activity; +import org.lamsfoundation.lams.learningdesign.ActivityEvaluation; import org.lamsfoundation.lams.learningdesign.CompetenceMapping; import org.lamsfoundation.lams.learningdesign.ToolActivity; import org.springframework.web.util.HtmlUtils; @@ -39,6 +40,8 @@ private String competences; + private Integer weight; + // Properties for user view private String activityUrl; // private Date startDate; defined in GradebookGridRowDTO @@ -92,6 +95,12 @@ String competenceMappingsStr = ""; if (activity.isToolActivity()) { ToolActivity toolActivity = (ToolActivity) activity; + + ActivityEvaluation eval = toolActivity.getEvaluation(); + if (eval != null && eval.getWeight() != null) { + this.weight = eval.getWeight(); + } + //Constructs the competences for this activity. Set competenceMappings = toolActivity.getCompetenceMappings(); @@ -105,15 +114,14 @@ competenceMappingsStr = competenceMappingsStr.substring(0, competenceMappingsStr.lastIndexOf(",")); } } - } this.competences = competenceMappingsStr; } @Override public ArrayList toStringArray(GBGridView view) { - ArrayList ret = new ArrayList(); + ArrayList ret = new ArrayList<>(); ret.add(id.toString()); if (view == GBGridView.MON_USER) { @@ -172,6 +180,14 @@ this.competences = competences; } + public Integer getWeight() { + return weight; + } + + public void setWeight(Integer weight) { + this.weight = weight; + } + public String getActivityUrl() { return activityUrl; } @@ -187,5 +203,4 @@ public void setMonitorUrl(String monitorUrl) { this.monitorUrl = monitorUrl; } - } Index: lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java =================================================================== diff -u -r746369b4989a3ccae7c71d6a07bbb79ab4f47689 -r66731316c708697a11666228c114ae5ce8bf0b23 --- lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 746369b4989a3ccae7c71d6a07bbb79ab4f47689) +++ lams_gradebook/src/java/org/lamsfoundation/lams/gradebook/service/GradebookService.java (.../GradebookService.java) (revision 66731316c708697a11666228c114ae5ce8bf0b23) @@ -771,39 +771,39 @@ /* * TODO Method is not in use. Remove it? - * + * * private void updateUserActivityGradebookMark(Lesson lesson, Activity activity, User learner) { * ToolSession toolSession = toolService.getToolSessionByLearner(learner, activity); - * + * * if ((toolSession == null) || (toolSession == null) || (learner == null) || (lesson == null) * || (activity == null) || !(activity instanceof ToolActivity) * || (((ToolActivity) activity).getEvaluation() == null)) { * return; * } * ToolActivity toolActivity = (ToolActivity) activity; - * + * * // Getting the first activity evaluation * ActivityEvaluation eval = toolActivity.getEvaluation(); - * + * * try { * ToolOutput toolOutput = toolService.getOutputFromTool(eval.getToolOutputDefinition(), toolSession, * learner.getUserId()); - * + * * if (toolOutput != null) { * ToolOutputValue outputVal = toolOutput.getValue(); * if (outputVal != null) { * Double outputDouble = outputVal.getDouble(); - * + * * GradebookUserActivity gradebookUserActivity = getGradebookUserActivity(toolActivity.getActivityId(), * learner.getUserId()); - * + * * // Only set the mark if it hasnt previously been set by a teacher * if ((gradebookUserActivity == null) || !gradebookUserActivity.getMarkedInGradebook()) { * updateGradebookUserActivityMark(lesson, learner, toolActivity, outputDouble, false, false); * } * } * } - * + * * } catch (ToolException e) { * logger.debug( * "Runtime exception when attempted to get outputs for activity: " + toolActivity.getActivityId(), e); @@ -1160,7 +1160,12 @@ GBActivityGridRowDTO activityRow = (GBActivityGridRowDTO) it.next(); // Add the activity average data ExcelRow activityDataRow = summarySheet.initRow(); - activityDataRow.addCell(activityRow.getRowName()); // this is the problem entry + String activityName = activityRow.getRowName(); + if (isWeighted) { + activityName += " " + getMessage("gradebook.export.weight", + new Object[] { activityRow.getWeight() == null ? 0 : activityRow.getWeight() }); + } + activityDataRow.addCell(activityName); activityDataRow.addCell(activityRow.getCompetences()); activityDataRow.addCell(activityRow.getMedianTimeTakenSeconds()); activityDataRow.addCell(activityRow.getAverageMark()); @@ -1223,14 +1228,21 @@ headerRow = summarySheet.initRow(); headerRow.addEmptyCells(3); for (Activity activity : filteredActivityToUserDTOMap.keySet()) { - headerRow.addCell(activity.getTitle(), true); // this one works + String activityName = activity.getTitle(); + if (isWeighted && activity.isToolActivity()) { + ActivityEvaluation eval = ((ToolActivity) activity).getEvaluation(); + activityName += " " + getMessage("gradebook.export.weight", + new Object[] { eval == null || eval.getWeight() == null ? 0 : eval.getWeight() }); + } + + headerRow.addCell(activityName, true); } headerRow = summarySheet.initRow(); headerRow.addCell(getMessage("gradebook.export.last.name"), true); headerRow.addCell(getMessage("gradebook.export.first.name"), true); headerRow.addCell(getMessage("gradebook.export.login"), true); - for (Activity activity : filteredActivityToUserDTOMap.keySet()) { + for (int columnCount = 0; columnCount < filteredActivityToUserDTOMap.keySet().size(); columnCount++) { headerRow.addCell(getMessage("gradebook.columntitle.mark"), true); } headerRow.addCell(getMessage("gradebook.export.total.mark"), true); @@ -1270,8 +1282,16 @@ for (Activity activity : activityToUserDTOMap.keySet()) { ExcelRow activityTitleRow = activitySheet.initRow(); - activityTitleRow.addCell(activity.getTitle(), true); + String activityName = activity.getTitle(); + if (isWeighted && activity.isToolActivity()) { + ActivityEvaluation eval = ((ToolActivity) activity).getEvaluation(); + activityName += " " + getMessage("gradebook.export.weight", + new Object[] { eval == null || eval.getWeight() == null ? 0 : eval.getWeight() }); + } + + activityTitleRow.addCell(activityName, true); + ExcelRow titleRow = activitySheet.initRow(); titleRow.addCell(getMessage("gradebook.export.last.name"), true); titleRow.addCell(getMessage("gradebook.export.first.name"), true); @@ -1353,6 +1373,13 @@ String activityRowName = (groupName != null && groupId != null) ? activity.getTitle() + " (" + groupName + ")" : activity.getTitle(); + + if (isWeighted && activity.isToolActivity()) { + ActivityEvaluation eval = activity.getEvaluation(); + activityRowName += " " + getMessage("gradebook.export.weight", + new Object[] { eval == null || eval.getWeight() == null ? 0 : eval.getWeight() }); + } + activityIdToName.put(activity.getActivityId(), activityRowName); String startDate = (userDto.getStartDate() == null) ? "" @@ -1883,15 +1910,15 @@ /* * TODO Method is not in use. Remove it? - * + * * public void updateActivityMark(Double mark, String feedback, Integer userID, Long toolSessionID, * Boolean markedInGradebook) { * ToolSession toolSession = toolService.getToolSessionById(toolSessionID); * User learner = (User) userService.findById(User.class, userID); * if ((learner != null) && (toolSession != null)) { * ToolActivity activity = toolSession.getToolActivity(); * GradebookUserActivity gradebookUserActivity = getGradebookUserActivity(activity.getActivityId(), userID); - * + * * // If gradebook user activity is null or the mark is set by teacher or was set previously by user - save the * // mark and feedback * if ((gradebookUserActivity == null) || markedInGradebook || !gradebookUserActivity.getMarkedInGradebook()) {