'Returns the list of available course tabs in their canonical order.'

@classmethod
def get_tab_types(cls):

    def compare_tabs(first_type, second_type):
        'Compares    two    course    tabs,    for    use    in    sorting.'
        first_priority = first_type.priority
        second_priority = second_type.priority
        if (first_priority != second_priority):
            if (first_priority is None):
                return 1
            elif (second_priority is None):
                return (-1)
            else:
                return (first_priority - second_priority)
        first_type = first_type.type
        second_type = second_type.type
        if (first_type < second_type):
            return (-1)
        elif (first_type == second_type):
            return 0
        else:
            return 1
    tab_types = cls.get_available_plugins().values()
    tab_types.sort(cmp=compare_tabs)
    return tab_types
