Merge pull request #2328 from manma83/remove-admin-session-query

remove last_query session in admin to prevent massive join when sorting tables in multiple browser tabs #2326
This commit is contained in:
mdipierro
2020-06-13 23:10:55 -07:00
committed by GitHub
7 changed files with 9 additions and 14 deletions
@@ -194,8 +194,6 @@ def select():
request.vars.query = '%s.%s.%s==%s' % (request.args[0], request.vars.query = '%s.%s.%s==%s' % (request.args[0],
match.group('table'), match.group('field'), match.group('table'), match.group('field'),
match.group('value')) match.group('value'))
else:
request.vars.query = session.last_query
query = get_query(request) query = get_query(request)
if request.vars.start: if request.vars.start:
start = int(request.vars.start) start = int(request.vars.start)
@@ -222,7 +220,6 @@ def select():
else: else:
orderby = '~' + orderby orderby = '~' + orderby
session.last_orderby = orderby session.last_orderby = orderby
session.last_query = request.vars.query
form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px', form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px',
_name='query', _value=request.vars.query or '', _class='form-control', _name='query', _value=request.vars.query or '', _class='form-control',
requires=IS_NOT_EMPTY( requires=IS_NOT_EMPTY(
+1 -1
View File
@@ -82,7 +82,7 @@
<div style="overflow:auto; width:80%;"> <div style="overflow:auto; width:80%;">
{{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}} {{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}}
{{upload=URL('download',args=request.args[0])}} {{upload=URL('download',args=request.args[0])}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}} {{=SQLTABLE(rows,linkto,upload,orderby=True,query=query,_class='table table-striped table-bordered sortable')}}
</div> </div>
{{pass}} {{pass}}
<br/><br/> <br/><br/>
@@ -194,8 +194,6 @@ def select():
request.vars.query = '%s.%s.%s==%s' % (request.args[0], request.vars.query = '%s.%s.%s==%s' % (request.args[0],
match.group('table'), match.group('field'), match.group('table'), match.group('field'),
match.group('value')) match.group('value'))
else:
request.vars.query = session.last_query
query = get_query(request) query = get_query(request)
if request.vars.start: if request.vars.start:
start = int(request.vars.start) start = int(request.vars.start)
@@ -222,7 +220,6 @@ def select():
else: else:
orderby = '~' + orderby orderby = '~' + orderby
session.last_orderby = orderby session.last_orderby = orderby
session.last_query = request.vars.query
form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px', form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px',
_name='query', _value=request.vars.query or '', _class='form-control', _name='query', _value=request.vars.query or '', _class='form-control',
requires=IS_NOT_EMPTY( requires=IS_NOT_EMPTY(
+1 -1
View File
@@ -82,7 +82,7 @@
<div style="overflow:auto; width:80%;"> <div style="overflow:auto; width:80%;">
{{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}} {{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}}
{{upload=URL('download',args=request.args[0])}} {{upload=URL('download',args=request.args[0])}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}} {{=SQLTABLE(rows,linkto,upload,orderby=True,query=query,_class='table table-striped table-bordered sortable')}}
</div> </div>
{{pass}} {{pass}}
<br/><br/> <br/><br/>
@@ -194,8 +194,6 @@ def select():
request.vars.query = '%s.%s.%s==%s' % (request.args[0], request.vars.query = '%s.%s.%s==%s' % (request.args[0],
match.group('table'), match.group('field'), match.group('table'), match.group('field'),
match.group('value')) match.group('value'))
else:
request.vars.query = session.last_query
query = get_query(request) query = get_query(request)
if request.vars.start: if request.vars.start:
start = int(request.vars.start) start = int(request.vars.start)
@@ -222,7 +220,6 @@ def select():
else: else:
orderby = '~' + orderby orderby = '~' + orderby
session.last_orderby = orderby session.last_orderby = orderby
session.last_query = request.vars.query
form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px', form = FORM(TABLE(TR(T('Query:'), '', INPUT(_style='width:400px',
_name='query', _value=request.vars.query or '', _class='form-control', _name='query', _value=request.vars.query or '', _class='form-control',
requires=IS_NOT_EMPTY( requires=IS_NOT_EMPTY(
+1 -1
View File
@@ -82,7 +82,7 @@
<div style="overflow:auto; width:80%;"> <div style="overflow:auto; width:80%;">
{{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}} {{linkto = lambda f, t, r: URL('update', args=[request.args[0], r, f]) if f else "#"}}
{{upload=URL('download',args=request.args[0])}} {{upload=URL('download',args=request.args[0])}}
{{=SQLTABLE(rows,linkto,upload,orderby=True,_class='table table-striped table-bordered sortable')}} {{=SQLTABLE(rows,linkto,upload,orderby=True,query=query,_class='table table-striped table-bordered sortable')}}
</div> </div>
{{pass}} {{pass}}
<br/><br/> <br/><br/>
+6 -2
View File
@@ -3393,6 +3393,7 @@ class SQLTABLE(TABLE):
linkto: URL (or lambda to generate a URL) to edit individual records linkto: URL (or lambda to generate a URL) to edit individual records
upload: URL to download uploaded files upload: URL to download uploaded files
orderby: Add an orderby link to column headers. orderby: Add an orderby link to column headers.
query: Query string to support orderby headers.
headers: dictionary of headers to headers redefinions headers: dictionary of headers to headers redefinions
headers can also be a string to generate the headers from data headers can also be a string to generate the headers from data
for now only headers="fieldname:capitalize", for now only headers="fieldname:capitalize",
@@ -3428,6 +3429,7 @@ class SQLTABLE(TABLE):
linkto=None, linkto=None,
upload=None, upload=None,
orderby=None, orderby=None,
query='',
headers={}, headers={},
truncate=16, truncate=16,
columns=None, columns=None,
@@ -3499,8 +3501,10 @@ class SQLTABLE(TABLE):
attrcol.update(_class=coldict['class']) attrcol.update(_class=coldict['class'])
row.append(TH(coldict['label'], **attrcol)) row.append(TH(coldict['label'], **attrcol))
elif orderby: elif orderby:
row.append(TH(A(headers.get(c, c), link = th_link + '?orderby=' + c
_href=th_link + '?orderby=' + c, cid=cid))) if query:
link += '&query=' + query
row.append(TH(A(headers.get(c, c), _href=link, cid=cid)))
else: else:
row.append(TH(headers.get(c, re.sub(self.REGEX_ALIAS_MATCH, r'\2', c)))) row.append(TH(headers.get(c, re.sub(self.REGEX_ALIAS_MATCH, r'\2', c))))