summaryrefslogtreecommitdiff
path: root/TODO.txt
blob: 15ce6ef054bc24748d53224482fa74520cecd57c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
Pyramid TODOs
=============

Must-Have (before 1.0)
----------------------

- Write a "Whats New" (delta from BFG 1.3)

- Consider deprecations for ``model`` and ``resource`` APIs.

- Re-make testing.setUp() and testing.tearDown() the canonical APIs for test
  configuration.

- Document ``decorator=`` and ``view_mapper`` parameters to add_view and
  ``@view_config``.

- Allow ``decorator=`` and ``view_mapper=`` to be passed via ZCML.

- Document ``Configurator.set_view_mapper``.

- Document ``__view_mapper__`` attribute for view callable view mapper
  preference.

- ZCML directive for view mapper (or just use "utility", but it's not eager).

- Decide whether ``self.decorated_view(view)`` is in the right place in the
  view deriver chain.

- API docs for ``pyramid.views.action``.

- Use a commit veto when configuring repoze.tm2 in paster templates for
  non-1X, 2X, or 3X responses.

Should-Have
-----------

- Convert paster template and tutorial HTML templates to use
  ``request.static_url('{{package}}:static/foo.css')`` rather than
  ``${request.application_url}/static/foo.css``.

- Add notes about renderer response attrs to request docs.

- Add an example of using a cascade to serve static assets from the root.

- Explore static file return from handler action using wsgiapp2 + fileapp.

- Static (URL-generation only) routes.

- Add narrative docs for wsgiapp and wsgiapp2.

- translationdir ZCML directive use of ``path_spec`` should maybe die.

- Change "Cleaning up After a Request" in the urldispatch chapter to
  use ``request.add_response_callback``.

- Provide a response_set_cookie method on the request for rendered responses
  that can be used as input to response.set_cookie?

Nice-to-Have
------------

- Better "Extending" chapter.

- Try to make test suite pass on IronPython.

- Non-bwcompat use of threadlocals that need to be documented or ameliorated:

  security.principals_allowed_by_permission

  resource.OverrideProvider._get_overrides: can't credibly be removed,
  because it stores an overrideprovider as a module-scope global.

  traversal.traverse: this API is a stepchild, and needs to be changed.

  Configurator.add_translation_dirs: not passed any context but a message,
  can't credibly be removed.

- Supply ``X-Vhm-Host`` support.

- Basic WSGI documentation (pipeline / app / server).

- Fix message catalog extraction / compilation documentation.

- Change docs about creating a venusian decorator to not use ZCA.

- Try to better explain the relationship between a renderer and a
  template in the templates chapter and elsewhere.  Scan the
  documentation for reference to a renderer as *only* view
  configuration (it's a larger concept now).

- Create a ``render_view`` that works by using config.derive_view
  against an existing view instead of querying the registry.

- Create a function which performs a recursive request.

- Debug option to print view matching decision.

- Script or paster command that prints, for a given URL, the views
  that might match.  Underneath each potentially matching route, list
  the predicates required.  Underneath each route+predicate set, print
  each view that might match and its predicates.  E.g. with the input
  URL ``/foo``::

    '/foo' (foo_xhr)
       xhr = True
         (no view predicates)
           mypackage.views.MyXHRFooView.__call__

    '/{action}' (action_route)
       request_method = 'POST'
         action = '^foo$'
           mypackage.views.MyView.foo_POST
       request_method = 'GET'
         action = '^foo$'
           mypackage.views.MyView.foo_GET

- Raise an exception when a value in response_headerlist is not a
  string or decide to encode.

- Update App engine chapter with less creaky directions.

- Add functionality that mocks the behavior of ``repoze.browserid``.