Skip to content

Commit 93e758d

Browse files
committed
Reverting previous commit following comments by @syrusakbary
1 parent 880807d commit 93e758d

File tree

9 files changed

+26
-25
lines changed

9 files changed

+26
-25
lines changed

graphene/contrib/django/filter/__init__.py

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
1-
from graphene.contrib.django import settings
1+
from graphene.contrib.django.utils import DJANGO_FILTER_INSTALLED
22

3-
if not settings.GRAPHENE_ENABLE_FILTERING:
3+
if not DJANGO_FILTER_INSTALLED:
44
raise Exception(
5-
"To make use of filtering you configure "
6-
"GRAPHENE_ENABLE_FILTERING=True. This will also require "
7-
"django-filter be installed"
5+
"Use of django filtering requires the django-filter package "
6+
"be installed. You can do so using `pip install django-filter`"
87
)
98

109
from .fields import DjangoFilterConnectionField

graphene/contrib/django/filter/filterset.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
11
import six
2+
from django.conf import settings
23
from django.db import models
34
from django.utils.text import capfirst
45
from django_filters import Filter, MultipleChoiceFilter
56
from django_filters.filterset import FilterSetMetaclass, FilterSet
67
from graphql_relay.node.node import from_global_id
78

8-
from graphene.contrib.django import settings
99
from graphene.contrib.django.forms import GlobalIDFormField, GlobalIDMultipleChoiceField
1010

1111

@@ -25,6 +25,9 @@ def filter(self, qs, value):
2525
return super(GlobalIDMultipleChoiceFilter, self).filter(qs, gids)
2626

2727

28+
ORDER_BY_FIELD = getattr(settings, 'GRAPHENE_ORDER_BY_FIELD', 'order_by')
29+
30+
2831
GRAPHENE_FILTER_SET_OVERRIDES = {
2932
models.AutoField: {
3033
'filter_class': GlobalIDFilter,
@@ -51,7 +54,7 @@ def __new__(cls, name, bases, attrs):
5154

5255

5356
class GrapheneFilterSetMixin(object):
54-
order_by_field = settings.GRAPHENE_ORDER_BY_FIELD
57+
order_by_field = ORDER_BY_FIELD
5558

5659
@classmethod
5760
def filter_for_reverse_field(cls, f, name):

graphene/contrib/django/options.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
from graphene.contrib.django import settings
1+
from .utils import DJANGO_FILTER_INSTALLED
22
from ...core.classtypes.objecttype import ObjectTypeOptions
33
from ...relay.types import Node
44
from ...relay.utils import is_node
55

66
VALID_ATTRS = ('model', 'only_fields', 'exclude_fields')
77

8-
if settings.GRAPHENE_ENABLE_FILTERING:
8+
if DJANGO_FILTER_INSTALLED:
99
VALID_ATTRS += ('filter_fields', 'filter_order_by')
1010

1111

graphene/contrib/django/settings.py

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +0,0 @@
1-
from graphene.contrib.django import settings
2-
3-
# Force filtering for tests
4-
settings.GRAPHENE_ENABLE_FILTERING = True

graphene/contrib/django/tests/filter/test_fields.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import pytest
22

33
from graphene import ObjectType, Schema
4-
from graphene.contrib.django import settings
4+
from graphene.contrib.django.utils import DJANGO_FILTER_INSTALLED
55
from graphene.relay import NodeField
66

77

@@ -10,7 +10,7 @@
1010
from graphene.contrib.django.tests.models import Article, Pet, Reporter
1111

1212
pytestmark = []
13-
if settings.GRAPHENE_ENABLE_FILTERING:
13+
if DJANGO_FILTER_INSTALLED:
1414
import django_filters
1515
from graphene.contrib.django.filter import (GlobalIDFilter, DjangoFilterConnectionField,
1616
GlobalIDMultipleChoiceFilter)

graphene/contrib/django/tests/filter/test_resolvers.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,17 @@
11
import pytest
22
from django.core.exceptions import ImproperlyConfigured
33

4-
from graphene.contrib.django import settings
5-
from graphene.contrib.django.tests.models import Reporter, Article
6-
from graphene.contrib.django.tests.test_resolvers import ReporterNode, ArticleNode
4+
from graphene.contrib.django.utils import DJANGO_FILTER_INSTALLED
75

8-
if settings.GRAPHENE_ENABLE_FILTERING:
6+
if DJANGO_FILTER_INSTALLED:
97
from graphene.contrib.django.filter.resolvers import FilterConnectionResolver
108
from graphene.contrib.django.tests.filter.filters import ReporterFilter, ArticleFilter
119
else:
1210
pytestmark = pytest.mark.skipif(True, reason='django_filters not installed')
1311

12+
from graphene.contrib.django.tests.models import Reporter, Article
13+
from graphene.contrib.django.tests.test_resolvers import ReporterNode, ArticleNode
14+
1415

1516
def test_filter_get_filterset_class_explicit():
1617
reporter = Reporter(id=1, first_name='Cookie Monster')

graphene/contrib/django/types.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,9 +3,9 @@
33
import six
44
from django.db import models
55

6-
from graphene.contrib.django import settings
76
from ...core.classtypes.objecttype import ObjectType, ObjectTypeMeta
87
from ...relay.types import Connection, Node, NodeMeta
8+
from .utils import DJANGO_FILTER_INSTALLED
99
from .converter import convert_django_field
1010
from .options import DjangoOptions
1111
from .utils import get_reverse_fields, maybe_queryset
@@ -104,7 +104,7 @@ def from_list(cls, iterable, *args, **kwargs):
104104

105105
django_node_meta_bases = (DjangoObjectTypeMeta, NodeMeta)
106106
# Only include filter functionality if available
107-
if settings.GRAPHENE_ENABLE_FILTERING:
107+
if DJANGO_FILTER_INSTALLED:
108108
django_node_meta_bases = (DjangoFilterObjectTypeMeta,) + django_node_meta_bases
109109

110110

graphene/contrib/django/utils.py

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,12 @@
77

88
from graphene import Argument, String
99

10+
try:
11+
import django_filters # noqa
12+
DJANGO_FILTER_INSTALLED = True
13+
except ImportError:
14+
DJANGO_FILTER_INSTALLED = False
15+
1016

1117
def get_type_for_model(schema, model):
1218
schema = schema

0 commit comments

Comments
 (0)