This post was originally written at the beginning of December 2009 and I just found it now, so I’m publishing it 🙂
Our original steps for the Notes system implementation went as follows:
- Design the model.
- Create mock-ups of the user interface.
- In parallel, design the Notes tab and the modal dialog interfaces (for groupings).
- Extend this functionality to assignments and to students once the notes system is solid for groupings.
We have completed the first three steps, including unit and functional tests. Thanks to the polymorphic, “noteable” idea that we used for the relationship between a note and a grouping, the only work necessary to have notes on a different object type is to:
- add a “display_for_note” method to the model, like we did for groupings – this allows us to display these notes
- modify the create a note form in the Notes tab to allow for other types of noteable objects than just groupings
- add a link to the modal dialog in an appropriate location for the object type
For now, I can’t see the best place to place a link to a modal dialog to create a note associated to an assignment or to a student, so I would recommend just adding that functionality to the Notes tab.