Yeah -- basically, I'm trying to stick to the MVC idea, in the sense that the view is just for displaying data, and the controller fetches the data before rendering the view. I'm treating any erb file is a view, and hooks.rb as the controller.

Imagine that we were building an alternative view, perhaps an API, so that people could request to see a version as either HTML or JSON. We would want to display these stats (number required, number completed, etc) in exactly the same way in both cases. Therefore we should not put this code in the view, because we'd have to duplicate it for every representation (HTML, JSON, XML, whatever) we want to provide.

In fact I think the best way would be to add a message to `VersionPatch` called `release_notes_stats` which returns a hash like the one above. Then in the controller, we do `context[:stats] = version.release_notes_stats`, and that gives us a variable in the view called `stats`.

I think cf_none_value and cf_name can probably be left alone for now -- safer to refactor one bit at a time.