fixed limitby in sqlhtml grid, thanks Paolo
This commit is contained in:
+12
-10
@@ -699,18 +699,20 @@ class AutocompleteWidget(object):
|
|||||||
if isinstance(field, Field.Virtual):
|
if isinstance(field, Field.Virtual):
|
||||||
records = []
|
records = []
|
||||||
table_rows = self.db(self.db[field.tablename]).select(orderby=self.orderby)
|
table_rows = self.db(self.db[field.tablename]).select(orderby=self.orderby)
|
||||||
count = 0
|
count = self.limitby[1] if self.limitby else -1
|
||||||
for row in table_rows:
|
for row in table_rows:
|
||||||
if self.at_beginning:
|
if self.at_beginning:
|
||||||
if row[field.name].lower().startswith(kword):
|
if row[field.name].lower().startswith(kword):
|
||||||
count += 1
|
count -= 1
|
||||||
records.append(row)
|
records.append(row)
|
||||||
else:
|
else:
|
||||||
if kword in row[field.name].lower():
|
if kword in row[field.name].lower():
|
||||||
count += 1
|
count -= 1
|
||||||
records.append(row)
|
records.append(row)
|
||||||
if count == 10:
|
if count == 0:
|
||||||
break
|
break
|
||||||
|
if self.limitby and self.limitby[0]:
|
||||||
|
records = records[self.limitby[0]:]
|
||||||
rows = Rows(self.db, records, table_rows.colnames,
|
rows = Rows(self.db, records, table_rows.colnames,
|
||||||
compact=table_rows.compact)
|
compact=table_rows.compact)
|
||||||
elif settings and settings.global_settings.web2py_runtime_gae:
|
elif settings and settings.global_settings.web2py_runtime_gae:
|
||||||
@@ -1090,7 +1092,7 @@ def formstyle_bootstrap3_inline_factory(col_label_size=3):
|
|||||||
|
|
||||||
# bootstrap 4
|
# bootstrap 4
|
||||||
def formstyle_bootstrap4_stacked(form, fields):
|
def formstyle_bootstrap4_stacked(form, fields):
|
||||||
""" bootstrap 3 format form layout
|
""" bootstrap 4 format form layout
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
Experimental!
|
Experimental!
|
||||||
@@ -1139,7 +1141,7 @@ def formstyle_bootstrap4_stacked(form, fields):
|
|||||||
|
|
||||||
|
|
||||||
def formstyle_bootstrap4_inline_factory(col_label_size=3):
|
def formstyle_bootstrap4_inline_factory(col_label_size=3):
|
||||||
""" bootstrap 3 horizontal form layout
|
""" bootstrap 4 horizontal form layout
|
||||||
|
|
||||||
Note:
|
Note:
|
||||||
Experimental!
|
Experimental!
|
||||||
@@ -2855,9 +2857,9 @@ class SQLFORM(FORM):
|
|||||||
if paginate and dbset._db._adapter.dbengine == 'google:datastore' and use_cursor:
|
if paginate and dbset._db._adapter.dbengine == 'google:datastore' and use_cursor:
|
||||||
cursor = request.vars.cursor or True
|
cursor = request.vars.cursor or True
|
||||||
limitby = (0, paginate)
|
limitby = (0, paginate)
|
||||||
page = safe_int(request.vars.page, 1) - 1
|
page = safe_int(request.vars.page or 1, 1) - 1
|
||||||
elif paginate and paginate < nrows:
|
elif paginate and paginate < nrows:
|
||||||
page = safe_int(request.vars.page, 1) - 1
|
page = safe_int(request.vars.page or 1, 1) - 1
|
||||||
limitby = (paginate * page, paginate * (page + 1))
|
limitby = (paginate * page, paginate * (page + 1))
|
||||||
else:
|
else:
|
||||||
limitby = None
|
limitby = None
|
||||||
@@ -2899,7 +2901,7 @@ class SQLFORM(FORM):
|
|||||||
paginator = UL()
|
paginator = UL()
|
||||||
if paginate and dbset._db._adapter.dbengine == 'google:datastore' and use_cursor:
|
if paginate and dbset._db._adapter.dbengine == 'google:datastore' and use_cursor:
|
||||||
# this means we may have a large table with an unknown number of rows.
|
# this means we may have a large table with an unknown number of rows.
|
||||||
page = safe_int(request.vars.page, 1) - 1
|
page = safe_int(request.vars.page or 1, 1) - 1
|
||||||
paginator.append(LI('page %s' % (page + 1)))
|
paginator.append(LI('page %s' % (page + 1)))
|
||||||
if next_cursor:
|
if next_cursor:
|
||||||
d = dict(page=page + 2, cursor=next_cursor)
|
d = dict(page=page + 2, cursor=next_cursor)
|
||||||
@@ -2918,7 +2920,7 @@ class SQLFORM(FORM):
|
|||||||
npages, reminder = divmod(nrows, paginate)
|
npages, reminder = divmod(nrows, paginate)
|
||||||
if reminder:
|
if reminder:
|
||||||
npages += 1
|
npages += 1
|
||||||
page = safe_int(request.vars.page, 1) - 1
|
page = safe_int(request.vars.page or 1, 1) - 1
|
||||||
|
|
||||||
def self_link(name, p):
|
def self_link(name, p):
|
||||||
d = dict(page=p + 1)
|
d = dict(page=p + 1)
|
||||||
|
|||||||
Reference in New Issue
Block a user