Started documenting ExerciseSummary and realized that get_max_points and bunch of other methods shouldn't be a method of the ExerciseSummary. Starting this refactoring with a commit that removes this method.
Merge branch 'master' into faster_summaries
Removed methods from ExerciseSummary that didn't in my opinion fit to the class's purpose. Moved some of those to the BaseExercise model.
I think the names of ExerciseSummary, ExerciseRoundSummary and CourseSummary are missleading as it does not distinct those classes from the summarised data of all submissions, that is, the name doesn't shot that it's user-related summary. This commit changes the name of ExerciseSummary to UserExerciseSummary. The two other names will be changed in the following commits.
- Changed the names of CourseSummary, ExerciseRoundSummary and CategorySummary by prefixing them all with "User" (see the previous commit message for more information).
- Changed the way that UserExerciseSummary takes the kwargs submission_count, best_submission and generate as I think they should be invisible to public callers as they are meant to be used in UserCourseSummary only really.
- Documented UserExerciseSummary.
Converted old style classes to new style classes.
- Edited UserExerciseSummary documentation.
- Edited UserExerciseRoundSummary documentation.
- Edited UserExerciseRoundSummary.__init__ the same way as UserExerciseSummary.__init__ in the previous commits.
Forgot to check the calls of UserExerciseRoundSummary.__init__ in the previous commit. Fixed the one call the broke.
Merge branch 'master' into faster_summaries
I wrote some general documentation about the design of the UserCourseSummary.
Moved UserCourseSummary._generate_summary
I wrote more inline documentation that should help the reader of the code to understand the design of the UserCourseSummary.
Template filter for getting the classes needed in the view_instance for each course_module.
- Some convenient getter methods for CourseModule
- PEP8
- few new TODO items
Fixed the bugged course_module_classes template filter.
The summary classes in exercise_summary.py had two separate purposes: 1 to summarise the submissions to a course/category/round/exerice by some particular user and 2 to help to construct the html of view_instance.html. These purposes are clearly separate so I didn't want the summary classes to be responsible for both and I thus removed the responsibility related to the html construction.

In this commit, the exercise_summary.py is now pretty much done except that I might come back to edit some docstrings/comments in it.

The html of view_instance.html is now constructed by using the "exercise_tree" which is a datastructure which contains all the exercises (and their summaries) structured under categories and rounds in a way that is convenient for constructing the html of the view_instance.html.  The datastructure is assembled by the corresponding view, view_instance, in course.views. This commit contains a working draft of views.py and view_instance.html but it's still very messy and difficult to understand.
Merge commit 'cea063684fa94e65ccf34be762b26474d0c7d479' into faster_summaries
Began the work for documentation of the view_instance view.
Fixed the ExerciseRoundSummary's _generate_summary method.
Changed the way of giving the special kwargs generate and exercise_summaries to UserCategorySummary also to the new style.