• 
      

    Add support for custom context processors, and make them and apps ref-counted.

    Review Request #5024 — Created Nov. 23, 2013 and submitted

    Information

    Djblets
    master

    Reviewers

    Add support for custom context processors, and make them and apps ref-counted.

    This introduces a new Extension.context_processors list, which defines
    context processors the extension wants to have available for all
    templates.

    It also adds protection for both context_processors and apps.
    Previously, extensions were assumed to never list an app that another
    extension may list, or that the main application lists. Otherwise,
    disabling the extension would remove the main item from that list.

    The list of context processors and apps are now ref-counted.
    ExtensionManager wraps its own access to
    settings.TEMPLATE_CONTEXT_PROCESSORS and settings.INSTALLED_APPS.
    It won't add new entries if they already exist, and won't remove
    entries unless the ref count drops to 0.

    Tested this with an extension reusing some apps from another.

    Unit tests pass.

    Description From Last Updated

    In order to be more consistent with python lists, extend() instead of add_list()?

    daviddavid
    david
    1. 
        
    2. djblets/extensions/manager.py (Diff revision 1)
       
       
      Show all issues

      In order to be more consistent with python lists, extend() instead of add_list()?

      1. What about remove_list?

        I'm okay making it like the list API, but I don't know that it's necessary for it to be the same. It's internal anyway.

      2. Just a suggestion. Feel free to ignore it.

      3. I'm totally fine changing the name, but the lack of a counterpart for removing a list irks me :)

    3. 
        
    chipx86
    Review request changed
    Status:
    Completed