A new grading section added to the course mod update form using a single function (similar to standard_coursemodule_elements()) which offers a choice between:
- basic grading (as now) OR
- outcomes
The course outcomes are shown in a multi-select list and any number can be chosen.
For Moodle 1.9 we should not offer both, to keep things simple.
The result of these forms goes to course/mod.php which is able to process them without any further functions from the module itself. Roughly it would use something like grade_get_items to find out what items were already set, and then compare to the new form input to work out what calls to grade_update() need to made to create/update/delete existing grade_items.
Note that not all activities could be upgraded to support this. Assignment is a natural first one to implement for 1.9, then we can see after that.
Potentially even modules without grading could still support outcomes, the columns in the gradebook would just have to be filled in manually, that's all.