lp:~fgallina/python-timeline-django/no-query-fix
- Get this branch:
- bzr branch lp:~fgallina/python-timeline-django/no-query-fix
Branch merges
- James Westby (community): Approve
-
Diff: 37 lines (+9/-1)2 files modifiedtimeline_django/filters.py (+1/-1)
timeline_django/tests/test_filters.py (+8/-0)
Branch information
Recent revisions
- 22. By Fabián Ezequiel Gallina
-
Properly handle absence of query in filters
This fixes a TypeError that triggered because django-statsd db patches
caused a max recursion exception that propagated up until the filters,
rendering the query parameter of them as None. Because of this, while
the error was really passed through oops, the final error reported to
the user was related to django-timeline. - 20. By James Westby
-
Save the environ before sending the wsgi_request_
started signal. Code that listens to the wsgi_request_
started signal may want to use the
environ, but instead of using the one passed to the signal, it may
call get_environ() to get the saved version. That has to be the
current request's environ, not any previous request, so save the environ
before triggering the signal. - 19. By James Westby
-
Add signals for the start of the wsgi request and start of the response.
The django signal for request-finished fires when the client has consumed
the response. However, when generating an oops it can be done before this
meaning that the timeline doesn't have a reference for an end point.
This defines a response-started signal that fires when start_response
is called in the wsgi stack, making it more likely that there will be
an end point in the timeline. - 18. By James Westby
-
Drop the model signal handlers.
They cause a lot of noise in the timeline, and slow down all requests,
for little benefit. The context they provide for db queries can
just as easily be inferred from the backtraces on the queries. - 14. By James Westby
-
Move to a wsgi-based capture of the timeline for non-request events.
Overhaul how the timeline object is found to permit capturing the
request_start event, handle situations where no timeline is available
at all and a few mild cleanups.The middleware doesn't get invoked before request_start, so a timeline
was never captured, and things went downhill from there. By capturing
at the wsgi layer this is avoided. - 13. By Robert Collins
-
[r=james-w],[bug=1050852] Provide the action name when raising in _post_action, to allow triangulation of the cause.
Branch metadata
- Branch format:
- Branch format 7
- Repository format:
- Bazaar repository format 2a (needs bzr 1.16 or later)
- Stacked on:
- lp:python-timeline-django