'Returns an OrderedDict that maps an assignment type to a dict of
subsection-headers and average-header.'

@lazy
def graded_assignments(self):

    grading_cxt = grading_context(self.course_structure)
    graded_assignments_map = OrderedDict()
    for (assignment_type_name, subsection_infos) in grading_cxt['all_graded_subsections_by_type'].iteritems():
        graded_subsections_map = OrderedDict()
        for (subsection_index, subsection_info) in enumerate(subsection_infos, start=1):
            subsection = subsection_info['subsection_block']
            header_name = u'{assignment_type}    {subsection_index}:    {subsection_name}'.format(assignment_type=assignment_type_name, subsection_index=subsection_index, subsection_name=subsection.display_name)
            graded_subsections_map[subsection.location] = header_name
        average_header = u'{assignment_type}'.format(assignment_type=assignment_type_name)
        separate_subsection_avg_headers = (len(subsection_infos) > 1)
        if separate_subsection_avg_headers:
            average_header += u'    (Avg)'
        graded_assignments_map[assignment_type_name] = {'subsection_headers': graded_subsections_map, 'average_header': average_header, 'separate_subsection_avg_headers': separate_subsection_avg_headers}
    return graded_assignments_map
