mirror of
https://github.com/postgres/pgweb.git
synced 2025-08-10 00:42:06 +00:00
Make filters in admin be sticky, according to:
http://code.djangoproject.com/ticket/3777
This commit is contained in:
@ -42,7 +42,34 @@ class PgMiddleware(object):
|
||||
|
||||
return None
|
||||
|
||||
# Thread local store for username, see comment at the top of this file
|
||||
def process_request(self, request):
|
||||
# Thread local store for username, see comment at the top of this file
|
||||
_thread_locals.user = getattr(request, 'user', None)
|
||||
|
||||
# Per django ticket #3777, make filters in admin be sticky
|
||||
path = request.path
|
||||
if path.find('/admin/') != -1:
|
||||
query_string = request.META['QUERY_STRING']
|
||||
if not request.META.has_key('HTTP_REFERER'):
|
||||
return None
|
||||
session = request.session
|
||||
if session.get('redirected', False):
|
||||
del session['redirected']
|
||||
return None
|
||||
referrer = request.META['HTTP_REFERER'].split('?')[0]
|
||||
referrer = referrer[referrer.find('/admin'):len(referrer)]
|
||||
key = 'key'+path.replace('/','_')
|
||||
if path == referrer:
|
||||
if query_string == '':
|
||||
if session.get(key,False):
|
||||
del session[key]
|
||||
return None
|
||||
request.session[key] = query_string
|
||||
else:
|
||||
if session.get(key,False):
|
||||
query_string=request.session.get(key)
|
||||
redirect_to = path+'?'+query_string
|
||||
request.session['redirected'] = True
|
||||
return HttpResponseRedirect(redirect_to)
|
||||
else:
|
||||
return None
|
||||
|
Reference in New Issue
Block a user