Chris McDonough
2012-02-22 0db4a157083d51251b4d3f574a1699fc76359c9d
refs
author Chris McDonough <chrism@plope.com>
Wednesday, February 22, 2012 21:37 +0100
committer Chris McDonough <chrism@plope.com>
Wednesday, February 22, 2012 21:37 +0100
commit0db4a157083d51251b4d3f574a1699fc76359c9d
tree 9edb3e9a9c23ab4e2d7c4b8c31484bca357f224d tree | zip | gz
parent 3f7681efc96f815008abc30e152cd906851b00b0 view | diff
- New API: ``pyramid.config.Configurator.add_notfound_view``.  This is a
wrapper for ``pyramid.Config.configurator.add_view`` which provides easy
append_slash support. It should be preferred over calling ``add_view``
directly with ``context=HTTPNotFound`` as was previously recommended.

- New API: ``pyramid.view.notfound_view_config``. This is a decorator
constructor like ``pyramid.view.view_config`` that calls
``pyramid.config.Configurator.add_notfound_view`` when scanned. It should
be preferred over using ``pyramid.view.view_config`` with
``context=HTTPNotFound`` as was previously recommended.

- The older deprecated ``set_notfound_view`` Configurator method is now an
alias for the new ``add_notfound_view`` Configurator method. This has the
following impact: the ``context`` sent to views with a ``(context,
request)`` call signature registered via the deprecated
``add_notfound_view``/``set_notfound_view`` will now be the HTTPNotFound
exception object instead of the actual resource context found. Use
``request.context`` to get the actual resource context. It's also
recommended to disuse ``set_notfound_view`` in favor of
``add_notfound_view``, despite the aliasing.

- The API documentation for ``pyramid.view.append_slash_notfound_view`` and
``pyramid.view.AppendSlashNotFoundViewFactory`` was removed. These names
still exist and are still importable, but they are no longer APIs. Use
``pyramid.config.Configurator.add_notfound_view(append_slash=True)`` or
``pyramid.view.notfound_view_config(append_slash=True)`` to get the same
behavior.

- The ``set_forbidden_view`` method of the Configurator was removed from the
documentation. It has been deprecated since Pyramid 1.1.

- The AppendSlashNotFoundViewFactory used request.path to match routes. This
was wrong because request.path contains the script name, and this would
cause it to fail in circumstances where the script name was not empty. It
should have used request.path_info, and now does.

- Updated the "Registering a Not Found View" section of the "Hooks" chapter,
replacing explanations of registering a view using ``add_view`` or
``view_config`` with ones using ``add_notfound_view`` or
``notfound_view_config``.

- Updated the "Redirecting to Slash-Appended Routes" section of the "URL
Dispatch" chapter, replacing explanations of registering a view using
``add_view`` or ``view_config`` with ones using ``add_notfound_view`` or
``notfound_view_config``
1 files added
13 files modified
613 ■■■■ changed files
CHANGES.txt 52 ●●●●● diff | view | raw | blame | history
TODO.txt 10 ●●●● diff | view | raw | blame | history
docs/api/config.rst 3 ●●●● diff | view | raw | blame | history
docs/api/view.rst 6 ●●●● diff | view | raw | blame | history
docs/narr/hooks.rst 81 ●●●● diff | view | raw | blame | history
docs/narr/renderers.rst 2 ●●● diff | view | raw | blame | history
docs/narr/urldispatch.rst 145 ●●●● diff | view | raw | blame | history
pyramid/config/util.py 3 ●●●● diff | view | raw | blame | history
pyramid/config/views.py 97 ●●●●● diff | view | raw | blame | history
pyramid/tests/pkgs/notfoundview/__init__.py 30 ●●●●● diff | view | raw | blame | history
pyramid/tests/test_config/test_views.py 28 ●●●● diff | view | raw | blame | history
pyramid/tests/test_integration.py 17 ●●●●● diff | view | raw | blame | history
pyramid/tests/test_view.py 48 ●●●●● diff | view | raw | blame | history
pyramid/view.py 91 ●●●●● diff | view | raw | blame | history