Summary of Gradebook API Changes

Summary of Gradebook API Changes

Summary of API Changes

Files to be modified

Assignment.java

AssignmentGradeRecord.java

Category.java

Category.hbm.xml

CourseGrade.java

GradeableObject.hbm.xml

BaseHibernateManager.java

GradebookManager.java

GradebookManagerHibernateImpl.java

GradeRecord.hbm.xml

Looks like almost all the calculation changes we will have to make will be in the GradebookManagerHibernateImpl class. As a result of signature changes in that class, there may be some knock-on changes in BaseHibernateManager, which it extends, and GradebookManager, which it implements... but my best guess is that we won't have to change any signatures on the public methods, and can restrict ourselves to modifying a small number of private methods in GradebookManagerHibernateImpl. Whether this is the best place to implement these calculations may be up for some debate, and I've pinged Berkeley to see if I'm correct in thinking that we may want to break these out into a non-'Hibernate' based class. From Josh and Ray's responses, it sounds like this code is stuff that Indiana has added and that we'll need to discuss with them.

So that's the good news. The bad news is that the drop lowest grade calculations look very ugly, and may push us to significant re-write some methods that are central to the presentation of grades, and so will require very rigorous testing to be confident that these changes haven't broken anything.

The rest of the changes are fairly minor and involve adding extra properties or methods to data model objects, like Assignment, AssignmentGradeRecord, Category, CourseGrade, GradeableObject, and GradeRecord.