Pull out diff-related data into a "diff context" object and initialize models from it.

Review Request #4618 — Created Sept. 21, 2013 and submitted — Latest diff uploaded

Information

Review Board
master

Reviewers

Pull out diff-related data into a "diff context" object and initialize models from it.

The diff viewer needs a bunch of bits of data, which we render in a django
template as info in a <script> tag and then consume from javascript. This
change centralizes all of that info into a "diff_context" object which is
rendered using the json_dumps filter tag. This object is then consumed by a new
DiffViewerPageModel, which will parse the high-level object and create/update a
bunch of child models, which are then consumed by the various views that make
up the diff viewer UI.

Coming soon, we'll be able to consume this diff context either from the
javascript rendered into the template, as well as when it comes from an API
payload.

  • Tested various pieces of the diff viewer UI to make sure that the initial
    data was still correct.
  • Used this in conjunction with other changes that load different parts of the
    diff viewer without reloads.
  • Ran unit tests.