final Double oldPointsEarned = (agr == null) ? null : agr.getPointsEarned(); final Double newPointsEarned = (points == null) ? null : convertStringToDouble(points); if (alwaysUpdate || (newPointsEarned != null && !newPointsEarned.equals(oldPointsEarned)) || if (agr == null) { if (newPointsEarned != null) { agr = new AssignmentGradeRecord(asn, studentUid, Double.valueOf(newPointsEarned)); } else { agr = new AssignmentGradeRecord(asn, studentUid, null); agr.setPointsEarned(Double.valueOf(newPointsEarned)); } else { agr.setPointsEarned(null); agr.setDateRecorded(now); agr.setGraderId(getUserUid()); log.debug("About to save AssignmentGradeRecord id={}, version={}, studenttId={}, pointsEarned={}", agr.getId(), agr.getVersion(), agr.getStudentId(), agr.getPointsEarned()); session.saveOrUpdate(agr);
/** * Converts points to percentage for the given AssignmentGradeRecords * @param gradebook * @param studentRecordsFromDB * @return */ protected List convertPointsToPercentage(final Gradebook gradebook, final List studentRecordsFromDB) { final List percentageList = new ArrayList(); for(int i=0; i < studentRecordsFromDB.size(); i++) { final AssignmentGradeRecord agr = (AssignmentGradeRecord) studentRecordsFromDB.get(i); if (agr != null) { final Double pointsPossible = agr.getAssignment().getPointsPossible(); if (pointsPossible == null || agr.getPointsEarned() == null) { agr.setPercentEarned(null); percentageList.add(agr); } else { agr.setDateRecorded(agr.getDateRecorded()); agr.setGraderId(agr.getGraderId()); agr.setPercentEarned(calculateEquivalentPercent(pointsPossible, agr.getPointsEarned())); percentageList.add(agr); } } } return percentageList; }
for (final AssignmentGradeRecord record : gradeRecords) { if (!record.getGradableObject().equals(this)) { continue; if (record.getDroppedFromGrade() == null) { throw new GradebookException("record.droppedFromGrade cannot be null"); score = record.getGradeAsPercentage(); final Double points = record.getPointsEarned(); if (score == null && points == null || record.getDroppedFromGrade()) { continue; } else if (score == null) {
@Override public AssignmentGradeRecord clone() { AssignmentGradeRecord agr = new AssignmentGradeRecord(); agr.setDateRecorded(dateRecorded); agr.setGradableObject(gradableObject); agr.setGraderId(graderId); agr.setLetterEarned(letterEarned); agr.setPointsEarned(pointsEarned); agr.setPercentEarned(percentEarned); agr.setStudentId(studentId); return agr; }
/** * Converts points to letter grade for the given AssignmentGradeRecords * @param gradebook * @param studentRecordsFromDB * @return */ protected List convertPointsToLetterGrade(final Gradebook gradebook, final List studentRecordsFromDB) { final List letterGradeList = new ArrayList(); final LetterGradePercentMapping lgpm = getLetterGradePercentMapping(gradebook); for(int i=0; i < studentRecordsFromDB.size(); i++) { final AssignmentGradeRecord agr = (AssignmentGradeRecord) studentRecordsFromDB.get(i); if(agr != null) { final Double pointsPossible = agr.getAssignment().getPointsPossible(); agr.setDateRecorded(agr.getDateRecorded()); agr.setGraderId(agr.getGraderId()); if (pointsPossible == null || agr.getPointsEarned() == null) { agr.setLetterEarned(null); letterGradeList.add(agr); } else { final String letterGrade = lgpm.getGrade(calculateEquivalentPercent(pointsPossible, agr.getPointsEarned())); agr.setLetterEarned(letterGrade); letterGradeList.add(agr); } } } return letterGradeList; }
final Set<String> changedStudents = new HashSet<>(); for (final AssignmentGradeRecord agr : existingScores) { final String studentUid = agr.getStudentId(); previouslyUnscoredStudents.remove(studentUid); final Double oldPointsEarned = agr.getPointsEarned(); final Double newPointsEarned = studentUidsToScores.get(studentUid); if (alwaysUpdate || (newPointsEarned != null && !newPointsEarned.equals(oldPointsEarned)) || (newPointsEarned == null && oldPointsEarned != null)) { agr.setDateRecorded(now); agr.setGraderId(graderId); agr.setPointsEarned(newPointsEarned); session.update(agr); changedStudents.add(studentUid); final AssignmentGradeRecord agr = new AssignmentGradeRecord(assignment, studentUid, newPointsEarned); agr.setDateRecorded(now); agr.setGraderId(graderId); session.save(agr); changedStudents.add(studentUid);
if (CollectionUtils.isNotEmpty(existingGradeRecords)) { for (final AssignmentGradeRecord agr : existingGradeRecords) { studentIdGradeRecordMap.put(agr.getStudentId(), agr); currentExcuse = false; } else { currentExcuse = BooleanUtils.toBoolean(gradeRec.isExcludedFromGrade()); final Double pointsEarned = gradeRec.getPointsEarned(); if ((convertedGrade == null && pointsEarned != null) || (convertedGrade != null && pointsEarned == null) || (excuse != currentExcuse)) { gradeRec.setPointsEarned(convertedGrade); gradeRec.setGraderId(graderUid); gradeRec.setDateRecorded(gradedDate); gradeRec.setExcludedFromGrade(excuse); gradeRecordsToUpdate.add(gradeRec); gradeRec = new AssignmentGradeRecord(assignment, studentId, convertedGrade); gradeRec.setGraderId(graderUid); gradeRec.setDateRecorded(gradedDate); gradeRecordsToUpdate.add(gradeRec); gradeRec.setExcludedFromGrade(excuse);
final Gradebook gradebook, final String commentText) { final GradeDefinition gradeDef = new GradeDefinition(); gradeDef.setStudentUid(gradeRecord.getStudentId()); gradeDef.setGraderUid(gradeRecord.getGraderId()); gradeDef.setDateRecorded(gradeRecord.getDateRecorded()); final int gradeEntryType = gradebook.getGrade_type(); gradeDef.setGradeEntryType(gradeEntryType); String grade = null; if (gradeEntryType == GradebookService.GRADE_TYPE_LETTER) { grade = gradeRecord.getLetterEarned(); } else if (gradeEntryType == GradebookService.GRADE_TYPE_PERCENTAGE) { final Double percentEarned = gradeRecord.getPercentEarned(); grade = percentEarned != null ? percentEarned.toString() : null; } else { final Double pointsEarned = gradeRecord.getPointsEarned(); grade = pointsEarned != null ? pointsEarned.toString() : null; gradeDef.setExcused(gradeRecord.isExcludedFromGrade());
.map(agr -> agr.getAssignment().getId()) .collect(Collectors.toList()); final GradebookAssignment assignment = gradeRecord.getAssignment(); final boolean excluded = BooleanUtils.toBoolean(gradeRecord.isExcludedFromGrade()); if (excluded || assignment.getPointsPossible() == null || gradeRecord.getPointsEarned() == null || !assignment.isCounted() || (!assignment.isReleased() && !includeNonReleasedItems) || gradeRecord.getDroppedFromGrade()) { return true; if (gradeRecords.size() == 1 && gradeRecords.get(0).getAssignment().isExtraCredit()) { return Optional.empty(); final GradebookAssignment assignment = gradeRecord.getAssignment(); final String grade = (gradeRecord.getPointsEarned() != null) ? String.valueOf(gradeRecord.getPointsEarned()) : "0";
if (gradeRecord == null) { gradeRecord = new AssignmentGradeRecord(assignment, studentUid, convertStringToDouble(score)); gradeRecord.setPointsEarned(convertStringToDouble(score)); gradeRecord.setGraderId(graderId); gradeRecord.setDateRecorded(now); session.saveOrUpdate(gradeRecord);
|| gradeRecord.getPointsEarned() == null) { // don't consider grades that have null pointsEarned (this occurs when a gradeRecord.setDroppedFromGrade(false); final GradebookAssignment assignment = gradeRecord.getAssignment(); if (assignment.getUngraded() // GradebookService.GRADE_TYPE_LETTER final String studentId = gradeRecord.getStudentId(); if (!studentIds.contains(studentId)) { studentIds.add(studentId); final Category cat = gradeRecord.getAssignment().getCategory(); if (cat != null) { if (!categories.contains(cat)) { if (gradeRecordsByCatAndStudent != null) { for (final AssignmentGradeRecord agr : gradeRecordsByCatAndStudent) { if (!BooleanUtils.toBoolean(agr.isExcludedFromGrade())) { gradesByCategory.add(agr); final AssignmentGradeRecord highest = Collections.max(gradesByCategory, AssignmentGradeRecord.numericComparator); highest.setDroppedFromGrade(true); gradesByCategory.remove(highest); if (log.isDebugEnabled()) { final AssignmentGradeRecord lowest = Collections.min(gradesByCategory, AssignmentGradeRecord.numericComparator); lowest.setDroppedFromGrade(true);
.map(agr -> agr.getAssignment().getId()) .collect(Collectors.toList()); final GradebookAssignment assignment = gradeRecord.getAssignment(); if(assignment.getPointsPossible() == null || gradeRecord.getPointsEarned() == null || !assignment.isCounted() || !assignment.isReleased() || gradeRecord.getDroppedFromGrade()) { return true; if(gradeRecords.size() == 1 && gradeRecords.get(0).getAssignment().isExtraCredit()) { return Optional.empty(); final GradebookAssignment assignment = gradeRecord.getAssignment(); final String grade = (gradeRecord.getPointsEarned() != null) ? String.valueOf(gradeRecord.getPointsEarned()) : "0";
if (gradeRecord != null && gradeRecord.getStudentId().equals(studentUid)) { final GradebookAssignment assignment = gradeRecord.getAssignment(); if (assignment.isCounted() && !assignment.getUngraded() && assignment.getPointsPossible().doubleValue() > 0.0 && !gradeRecord.getDroppedFromGrade()) { final Double score = gradeRecord.getPointsEarned(); if (score != null) { final BigDecimal bdScore = new BigDecimal(score.toString());
gradeDef.setExcused(false); } else { gradeDef.setDateRecorded(gradeRecord.getDateRecorded()); gradeDef.setGraderUid(gradeRecord.getGraderId()); gradeDef.setGradeComment(commentText); gradeDef.setExcused(gradeRecord.isExcludedFromGrade()); final AssignmentGradeRecord gradeRec = gradeList.get(0); if (gradeRec != null) { gradeDef.setGrade(gradeRec.getLetterEarned()); gradeRecord.getPointsEarned()); if (percent != null) { gradeDef.setGrade(percent.toString()); if (gradeRecord.getPointsEarned() != null) { gradeDef.setGrade(gradeRecord.getPointsEarned().toString());
for (final Iterator iter = records.iterator(); iter.hasNext();) { final AssignmentGradeRecord agr = (AssignmentGradeRecord) iter.next(); if (!agr.isCourseGradeRecord() && agr.getAssignment().isCounted() && !agr.getAssignment().getUngraded()) { if (agr.getPointsEarned() == null) { return true; for (final Iterator iter = records.iterator(); iter.hasNext();) { final AssignmentGradeRecord agr = (AssignmentGradeRecord) iter.next(); if (filteredAssigns.contains(agr.getAssignment().getId()) && !agr.isCourseGradeRecord()) { if (agr.getPointsEarned() == null) { return true;
if (gr.getPointsEarned() != null) { final BigDecimal scoreAsPercentage = (new BigDecimal(gr.getPointsEarned()) .divide(new BigDecimal(originalPointsPossible), GradebookService.MATH_CONTEXT)) .multiply(new BigDecimal(100)); log.debug("scaledScore: " + scaledScore); gr.setPointsEarned(scaledScore); if (gr.getPointsEarned() != null) { final BigDecimal currentGrade = new BigDecimal(gr.getPointsEarned()); final BigDecimal scaledGrade = currentGrade.multiply(factor, GradebookService.MATH_CONTEXT); log.debug("scaledGrade: " + scaledGrade); gr.setPointsEarned(scaledGrade.doubleValue());
final AssignmentGradeRecord agr = (AssignmentGradeRecord) element; if (agr != null) { final String commentText = studentIdCommentTextMap.get(agr.getStudentId()); final GradeDefinition gradeDef = convertGradeRecordToGradeDefinition(agr, gbItem, gradebook, commentText); studentsWithGradeRec.add(agr.getStudentId()); if (!studentsWithGradeRec.contains(studentId)) { final String comment = studentIdCommentTextMap.get(studentId); final AssignmentGradeRecord emptyGradeRecord = new AssignmentGradeRecord(gbItem, studentId, null); final GradeDefinition gradeDef = convertGradeRecordToGradeDefinition(emptyGradeRecord, gbItem, gradebook, comment); studentGrades.add(gradeDef);
public GradebookAssignment getAssignment() { return (GradebookAssignment)getGradableObject(); }
@Override public int compare(AssignmentGradeRecord agr1, AssignmentGradeRecord agr2) { if(agr1 == null && agr2 == null) { return 0; } if(agr1 == null) { return -1; } if(agr2 == null) { return 1; } Double agr1Points = agr1.getPointsEarned(); Double agr2Points = agr2.getPointsEarned(); if (agr1Points == null && agr2Points == null) { return 0; } if (agr1Points == null && agr2Points != null) { return -1; } if (agr1Points != null && agr2Points == null) { return 1; } return agr1Points.compareTo(agr2Points); } };
if (studentUids.contains(gradeRec.getStudentId())) { final String studentId = gradeRec.getStudentId(); List<AssignmentGradeRecord> gradeRecList = filteredGradeRecs.get(studentId); if (gradeRecList == null) {