Skip to content

Commit 91bf451

Browse files
committed
Small fix in fields and filters
1 parent a4bc542 commit 91bf451

File tree

1 file changed

+12
-9
lines changed

1 file changed

+12
-9
lines changed

graphene_mongo/fields.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,9 +86,10 @@ def is_filterable(k):
8686
return False
8787
if isinstance(converted, (ConnectionField, Dynamic)):
8888
return False
89-
if callable(getattr(converted, 'type', None)) and isinstance(converted.type(),
90-
(FileFieldType, PointFieldType,
91-
MultiPolygonFieldType, graphene.Union)):
89+
if callable(getattr(converted, 'type', None)) \
90+
and isinstance(
91+
converted.type(),
92+
(FileFieldType, PointFieldType, MultiPolygonFieldType, graphene.Union)):
9293
return False
9394
return True
9495

@@ -188,10 +189,12 @@ def default_resolver(self, _root, info, **args):
188189
connection.list_length = list_length
189190
return connection
190191

191-
def chained_resolver(self, resolver, root, info, **args):
192-
resolved = resolver(root, info, **args)
193-
if resolved is not None:
194-
return resolved
192+
def chained_resolver(self, resolver, is_partial, root, info, **args):
193+
if not bool(args) or not is_partial:
194+
# XXX: Filter nested args
195+
resolved = resolver(root, info, **args)
196+
if resolved is not None:
197+
return resolved
195198
return self.default_resolver(root, info, **args)
196199

197200
@classmethod
@@ -209,5 +212,5 @@ def connection_resolver(cls, resolver, connection_type, root, info, **args):
209212
def get_resolver(self, parent_resolver):
210213
super_resolver = self.resolver or parent_resolver
211214
resolver = partial(
212-
self.chained_resolver, super_resolver)
213-
return partial(self.connection_resolver, resolver, self.type)
215+
self.chained_resolver, super_resolver, isinstance(super_resolver, partial))
216+
return partial(self.connection_resolver, resolver, self.type)

0 commit comments

Comments
 (0)