lml/ost — pull request #311 by kevinburleigh75 (2013-09-18 09:22:07+00:00)
Title: Create LCPC/LCFC and LCDPC/LCDFC

This PR creates the following models to decouple PC/FC from LC:
`LearningConiditionPresentationCondition`
`LearningConditionFeedbackCondition`
These models act like orderable containers around PCs/FCs inside LCs. They are essentially invisible to the user.

This PR also creates the following models to enable viewing/editing of the LC's default PC/FC:
`LearningConditionDefaultPresentationCondition`
`LearningConditionDefaultFeedbackCondition`
The instances of these associated with a LC cannot be deleted by the user.

This PR also removed BFC (`BasicFeedbackCondition`) and related models, controllers, views, etc., from the codebase. Most of that functionality is now in FC.

The necessary database migrations are included, and should modify all existing data in a backward-compatible manner. It is important that `db:load` be done on a current `master` branch, then a switch to the new branch can be made before doing `db:migrate` (don't try to load a current db using code from this PR).

Extra information and notes have been added to the LC page to (hopefully) head off most user questions/errors related to the new features.

This PR will require fairly extensive testing of LC/PC/FC-related functionality including:
- creating a new Klass
- adding/editing/deleting PCs/LCs
- reordering PCs/LCs
- assignment preview
- assignment distribution/completion
- feedback notifications and viewing

To help test notifications, the PR adds commented-out configuration settings in `config/environments/development.rb` to enable MailCatcher. This will allow cron jobs to send emails to a local email server/client for review. See http://mailcatcher.me/ for details.