issue 912, handle lists of more than 30 references on GAE, thanks Howesc
This commit is contained in:
@@ -1 +1 @@
|
|||||||
Version 2.00.0 (2012-07-28 02:24:05) dev
|
Version 2.00.0 (2012-07-28 19:11:10) dev
|
||||||
|
|||||||
@@ -240,19 +240,19 @@ def site():
|
|||||||
fname = form_update.vars.url
|
fname = form_update.vars.url
|
||||||
|
|
||||||
elif form_update.accepted and form_update.vars.file:
|
elif form_update.accepted and form_update.vars.file:
|
||||||
fname = form_update.vars.file.filename
|
fname = request.vars.file.filename
|
||||||
appname = cleanpath(form_update.vars.name)
|
appname = cleanpath(form_update.vars.name)
|
||||||
installed = app_install(appname, form_update.vars.file.file,
|
installed = app_install(appname, request.vars.file.file,
|
||||||
request, fname,
|
request, fname,
|
||||||
overwrite=form_update.vars.overwrite)
|
overwrite=form_update.vars.overwrite)
|
||||||
if f and installed:
|
if installed:
|
||||||
msg = 'application %(appname)s installed with md5sum: %(digest)s'
|
msg = 'application %(appname)s installed with md5sum: %(digest)s'
|
||||||
if MULTI_USER_MODE:
|
if MULTI_USER_MODE:
|
||||||
db.app.insert(name=appname,owner=auth.user.id)
|
db.app.insert(name=appname,owner=auth.user.id)
|
||||||
log_progress(appname)
|
log_progress(appname)
|
||||||
session.flash = T(msg, dict(appname=appname,
|
session.flash = T(msg, dict(appname=appname,
|
||||||
digest=md5_hash(installed)))
|
digest=md5_hash(installed)))
|
||||||
elif f and form_update.vars.overwrite:
|
elif form_update.vars.overwrite:
|
||||||
msg = 'unable to install application "%(appname)s"'
|
msg = 'unable to install application "%(appname)s"'
|
||||||
session.flash = T(msg, dict(appname=form_update.vars.name))
|
session.flash = T(msg, dict(appname=form_update.vars.name))
|
||||||
|
|
||||||
|
|||||||
+8
-1
@@ -6099,7 +6099,14 @@ def sqlhtml_validators(field):
|
|||||||
def list_ref_repr(ids, row=None, r=referenced, f=ff):
|
def list_ref_repr(ids, row=None, r=referenced, f=ff):
|
||||||
if not ids:
|
if not ids:
|
||||||
return None
|
return None
|
||||||
refs = r._db(r._id.belongs(ids)).select(r._id)
|
if isinstance(r._db._adapter, GoogleDatastoreAdapter):
|
||||||
|
for i in xrange(0, len(ids), 30):
|
||||||
|
if not refs:
|
||||||
|
refs = r._db(r._id.belongs(ids[i:i+30])).select(r._id)
|
||||||
|
else:
|
||||||
|
refs = refs & r._db(r._id.belongs(ids[i:i+30])).select(r._id)
|
||||||
|
else:
|
||||||
|
refs = r._db(r._id.belongs(ids)).select(r._id)
|
||||||
return (refs and ', '.join(str(f(r,ref.id)) for ref in refs) or '')
|
return (refs and ', '.join(str(f(r,ref.id)) for ref in refs) or '')
|
||||||
field.represent = field.represent or list_ref_repr
|
field.represent = field.represent or list_ref_repr
|
||||||
if hasattr(referenced, '_format') and referenced._format:
|
if hasattr(referenced, '_format') and referenced._format:
|
||||||
|
|||||||
Reference in New Issue
Block a user