Skip to content

Commit 32b08ab

Browse files
authored
Merge pull request #167 from arunsureshkumar/support-monogengine-field-enum
Support monogengine field enum
2 parents 8c9661d + bd8be20 commit 32b08ab

File tree

3 files changed

+32
-15
lines changed

3 files changed

+32
-15
lines changed

graphene_mongo/converter.py

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import sys
2+
13
import graphene
24
import mongoengine
35
import uuid
@@ -82,22 +84,26 @@ def convert_field_to_jsonstring(field, registry=None):
8284

8385
@convert_mongoengine_field.register(mongoengine.PointField)
8486
def convert_point_to_field(field, registry=None):
85-
return graphene.Field(advanced_types.PointFieldType, required=field.required)
87+
return graphene.Field(advanced_types.PointFieldType, description=get_field_description(field, registry),
88+
required=field.required)
8689

8790

8891
@convert_mongoengine_field.register(mongoengine.PolygonField)
8992
def convert_polygon_to_field(field, registry=None):
90-
return graphene.Field(advanced_types.PolygonFieldType, required=field.required)
93+
return graphene.Field(advanced_types.PolygonFieldType, description=get_field_description(field, registry),
94+
required=field.required)
9195

9296

9397
@convert_mongoengine_field.register(mongoengine.MultiPolygonField)
94-
def convert_multipolygon_to_field(field, register=None):
95-
return graphene.Field(advanced_types.MultiPolygonFieldType, required=field.required)
98+
def convert_multipolygon_to_field(field, registry=None):
99+
return graphene.Field(advanced_types.MultiPolygonFieldType, description=get_field_description(field, registry),
100+
required=field.required)
96101

97102

98103
@convert_mongoengine_field.register(mongoengine.FileField)
99104
def convert_file_to_field(field, registry=None):
100-
return graphene.Field(advanced_types.FileFieldType, required=field.required)
105+
return graphene.Field(advanced_types.FileFieldType, description=get_field_description(field, registry),
106+
required=field.required)
101107

102108

103109
@convert_mongoengine_field.register(mongoengine.ListField)
@@ -421,3 +427,11 @@ def dynamic_type():
421427
)
422428

423429
return graphene.Dynamic(dynamic_type)
430+
431+
432+
if sys.version_info[0] > 3.5:
433+
@convert_mongoengine_field.register(mongoengine.EnumField)
434+
def convert_field_to_enum(field, registry=None):
435+
return graphene.Field(graphene.Enum.from_enum(field._enum_cls),
436+
description=get_field_description(field, registry), required=field.required
437+
)

graphene_mongo/fields.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,9 @@ def chained_resolver(self, resolver, is_partial, root, info, **args):
394394
self.filter_args.keys()):
395395
args_copy.pop(arg_name)
396396
if arg_name == '_id' and isinstance(arg, dict):
397+
args_copy['pk__in'] = arg['$in']
398+
elif "$ne" in arg:
399+
args_copy['pk__ne'] = arg['$ne']
397400
operation = list(arg.keys())[0]
398401
args_copy['pk' + operation.replace('$', '__')] = arg[operation]
399402
if '.' in arg_name:

requirements.txt

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
coveralls==1.11.1; python_version <= '3.4'
2-
coveralls==2.1.2; python_version > '3.4'
1+
coveralls==1.11.1; python_version <= '3.5'
2+
coveralls==2.1.2; python_version > '3.5'
33
flake8==3.7.9
44
flake8-per-file-ignores==0.6
55
future==0.18.2
66
graphene>=2.1.8,<3
77
iso8601==0.1.13
8-
mongoengine==0.19.1; python_version <= '3.4'
9-
mongoengine==0.20.0; python_version > '3.4'
10-
mongomock==3.21.0
11-
pymongo==3.11.0
12-
pytest==4.6.11; python_version <= '3.4'
13-
pytest==6.1.2; python_version > '3.4'
14-
pytest-cov==2.8.1; python_version == '3.4'
15-
pytest-cov==2.10.1; python_version < '3.4' or python_version > '3.4'
8+
mongoengine==0.19.1; python_version <= '3.5'
9+
mongoengine==0.22.1; python_version > '3.5'
10+
mongomock==3.22.0
11+
pymongo==3.11.2
12+
pytest==4.6.11; python_version <= '3.5'
13+
pytest==6.2.1; python_version > '3.5'
14+
pytest-cov==2.8.1; python_version == '3.5' or python_version == '3.4'
15+
pytest-cov==2.10.1; python_version < '3.4' or python_version > '3.5'
1616
singledispatch==3.4.0.3
1717
# https://stackoverflow.com/a/58189684/9041712
1818
attrs==20.2.0

0 commit comments

Comments
 (0)