From d66aa074a6606be0f359f95f55903c3a3560acd8 Mon Sep 17 00:00:00 2001 From: Yacine Filali Date: Fri, 24 Feb 2017 13:41:00 -0800 Subject: [PATCH 1/2] Added iterable and length to the SQLAlchemyConnectionField --- graphene_sqlalchemy/fields.py | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/graphene_sqlalchemy/fields.py b/graphene_sqlalchemy/fields.py index de1d301f..1ea9df53 100644 --- a/graphene_sqlalchemy/fields.py +++ b/graphene_sqlalchemy/fields.py @@ -1,16 +1,14 @@ from functools import partial -from sqlalchemy.orm.query import Query - from graphene.relay import ConnectionField from graphene.relay.connection import PageInfo from graphql_relay.connection.arrayconnection import connection_from_list_slice +from sqlalchemy.orm.query import Query from .utils import get_query class SQLAlchemyConnectionField(ConnectionField): - @property def model(self): return self.type._meta.node._meta.model @@ -28,7 +26,7 @@ def connection_resolver(cls, resolver, connection, model, root, args, context, i _len = iterable.count() else: _len = len(iterable) - return connection_from_list_slice( + connection = connection_from_list_slice( iterable, args, slice_start=0, @@ -38,6 +36,9 @@ def connection_resolver(cls, resolver, connection, model, root, args, context, i pageinfo_type=PageInfo, edge_type=connection.Edge, ) + connection.iterable = iterable + connection.length = _len + return connection def get_resolver(self, parent_resolver): return partial(self.connection_resolver, parent_resolver, self.type, self.model) From d17c2848a3dfcfc5985a5a2ffddbd88d7b07da0d Mon Sep 17 00:00:00 2001 From: Yacine Filali Date: Fri, 24 Feb 2017 13:43:56 -0800 Subject: [PATCH 2/2] formatting fix --- graphene_sqlalchemy/fields.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/graphene_sqlalchemy/fields.py b/graphene_sqlalchemy/fields.py index 1ea9df53..1cf7a9ae 100644 --- a/graphene_sqlalchemy/fields.py +++ b/graphene_sqlalchemy/fields.py @@ -1,14 +1,16 @@ from functools import partial +from sqlalchemy.orm.query import Query + from graphene.relay import ConnectionField from graphene.relay.connection import PageInfo from graphql_relay.connection.arrayconnection import connection_from_list_slice -from sqlalchemy.orm.query import Query from .utils import get_query class SQLAlchemyConnectionField(ConnectionField): + @property def model(self): return self.type._meta.node._meta.model