• 
      

    Update ConditionsWidget to support Django 1.6 and higher.

    Review Request #8681 — Created Jan. 30, 2017 and submitted — Latest diff uploaded

    Information

    Djblets
    release-0.10.x
    c427899...

    Reviewers

    ConditionsWidget was previously passing in choices to the render method
    for the choice widgets, which is no longer supported on modern versions
    of Django. To provide the same behavior, we need to temporarily update
    the widget's list of choices to be those that we want to render on the
    page.
    
    This introduces a new internal context manager and some small logic
    changes to temporarily append new choices to the widgets for rendering
    purposes, reverting them after render is complete. This should be safe,
    as we should be working off of a local copy of the widget and its state
    and not the global version.

    Unit tests pass on Django 1.6, 1.7, 1.8, 1.9, and 1.10.

    Tested manually against 1.6 that the widgets were still rendering and
    performing validation correctly.