The current user grade report for students is fairly confusing if grade categories are used, especially if they are nested; it is very difficult to understand what category totals go with which grades. I was inspired by the nested and colored visualization Nicolas Connault provided for the categories and weights settings page in
MDL-15680. As a way of understanding a bit better how the gradebook code works I decided to alter the user report to mimic his style.
Attached is a first patch that implements the screenshot seen as User-Report-New0.png. The original view of the report is seen as User-Report-1.9.x.png.
This patch (against 1.9.3+) uses the gradebook tree data structure and a recursive table_fill function to create an intermediate data structure which is then printed out. I threw away the tablelib code (as it seemed poorly documented and limited as to how I needed to use it (using colspan and rowspan table cells extensively).
Future versions could possibly reveal more information to the user (statistics on each graded item, due dates on future assignments, etc.)
The one clear and known bug is hidden grades at the user level have not been implemented as the existing code looked hackish and it was noted that it needed to be improved for 2.0.
Looking for feedback...