edx/edx-ora2 — pull request #415 by wedaly (2014-06-06 20:45:48+00:00)
Title: Will/workflow api refactor

Refactor of the Workflow API to better encapsulate it from the assessment API implementations.

* Use Django settings to configure the assessment types and associated Python modules.
* Use Django settings to determine priority of assessments for generating a score.
* Introduces a new assessment API function `on_start` that replaces the `create_*_workflow()` functions in `peer` and `student_training`.
* Remove unused event logging code.
* Move workflow errors into a separate module.
* General docstring / comments cleanup.

@stephensanchez I decided to use Django settings rather than the other approaches we discussed because:
(a) It will allow people to inject new assessments without requiring changes to edx-ora2. For example, the Solutions team could develop a new assessment type in a different repo and configure it to work in an open assessment problem just by updating the LMS settings.
(b) If we ever decide to spin the workflow API off into an independent HTTP service, we'd just add these settings to that Django instance.
(c) It requires far fewer changes to our existing implementation, which I feel safer about.

The `ORA2_ASSESSMENT_SCORE_PRIORITY` is a little bit brittle, but I don't want to create too general a solution until we've pinned down how much complexity we need to support in scoring.