@@ -79,7 +79,7 @@ def registry(self):
79
79
def args (self ):
80
80
return to_arguments (
81
81
self ._base_args or OrderedDict (),
82
- dict (dict (self .field_args , ** self .reference_args ), ** self .filter_args ),
82
+ dict (dict (self .field_args , ** self .advance_args ), ** self .filter_args ),
83
83
)
84
84
85
85
@args .setter
@@ -149,28 +149,31 @@ def filter_args(self):
149
149
if self ._type ._meta .filter_fields :
150
150
for field , filter_collection in self ._type ._meta .filter_fields .items ():
151
151
for each in filter_collection :
152
- filter_type = getattr (
153
- graphene ,
154
- str (self ._type ._meta .fields [field ].type ).replace ("!" , "" ),
155
- )
152
+ if str (self ._type ._meta .fields [field ].type ) == 'PointFieldType' :
153
+ if each == 'max_distance' :
154
+ filter_type = graphene .Int
155
+ else :
156
+ filter_type = PointFieldInputType
157
+ else :
158
+ filter_type = getattr (
159
+ graphene ,
160
+ str (self ._type ._meta .fields [field ].type ).replace ("!" , "" ),
161
+ )
156
162
# handle special cases
157
163
advanced_filter_types = {
158
164
"in" : graphene .List (filter_type ),
159
165
"nin" : graphene .List (filter_type ),
160
166
"all" : graphene .List (filter_type ),
161
- "max_distance" : graphene .Int
162
167
}
163
-
164
168
filter_type = advanced_filter_types .get (each , filter_type )
165
169
filter_args [field + "__" + each ] = graphene .Argument (
166
170
type = filter_type
167
171
)
168
-
169
172
return filter_args
170
173
171
174
@property
172
- def reference_args (self ):
173
- def get_reference_field (r , kv ):
175
+ def advance_args (self ):
176
+ def get_advance_field (r , kv ):
174
177
field = kv [1 ]
175
178
mongo_field = getattr (self .model , kv [0 ], None )
176
179
if isinstance (mongo_field , mongoengine .PointField ):
@@ -196,7 +199,7 @@ def get_reference_field(r, kv):
196
199
197
200
return r
198
201
199
- return reduce (get_reference_field , self .fields .items (), {})
202
+ return reduce (get_advance_field , self .fields .items (), {})
200
203
201
204
@property
202
205
def fields (self ):
0 commit comments