From 78bb8e9b261145459252f2e40b8ae976c28befe2 Mon Sep 17 00:00:00 2001 From: Giovanni Barillari Date: Tue, 19 Apr 2016 17:24:09 +0200 Subject: [PATCH] Updated to latest pydal, fixed IS_IN_DB validator for new pydal --- gluon/packages/dal | 2 +- gluon/validators.py | 5 ++--- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/gluon/packages/dal b/gluon/packages/dal index 63dcebbf..b07edb59 160000 --- a/gluon/packages/dal +++ b/gluon/packages/dal @@ -1 +1 @@ -Subproject commit 63dcebbf2d980dbad376342874c77bd821880354 +Subproject commit b07edb5914393cb871a5f9106018849f0889029c diff --git a/gluon/validators.py b/gluon/validators.py index 54e03cbd..af6496f2 100644 --- a/gluon/validators.py +++ b/gluon/validators.py @@ -645,11 +645,10 @@ class IS_IN_DB(Validator): if not [v for v in values if v not in self.theset]: return (values, None) else: - from pydal.adapters import GoogleDatastoreAdapter - def count(values, s=self.dbset, f=field): return s(f.belongs(map(int, values))).count() - if GoogleDatastoreAdapter is not None and isinstance(self.dbset.db._adapter, GoogleDatastoreAdapter): + + if self.dbset.db._adapter.dbengine == "google:datastore": range_ids = range(0, len(values), 30) total = sum(count(values[i:i + 30]) for i in range_ids) if total == len(values):