Should course.credits be required? A lot of TC courses have credits=None, which causes this ugliness:
Traceback (most recent call last):
File "/opt/sword/ecwsp/sis/models.py", line 486, in _calculate_grade_for_single_course
credit = float(course.credits) / float(course.marking_period.count())
TypeError: float() argument must be a string or a number
We deal with this now by doing try/except: pass, essentially treating these courses as if they had zero credits. I'd argue that we should force registrars to consciously set the field to 0.