@@ -86,7 +86,8 @@ class CommonModelApi(ModelResource):
86
86
null = True ,
87
87
full = True )
88
88
owner = fields .ToOneField (OwnersResource , 'owner' , full = True )
89
- tkeywords = fields .ToManyField (ThesaurusKeywordResource , 'tkeywords' , null = True )
89
+ tkeywords = fields .ToManyField (
90
+ ThesaurusKeywordResource , 'tkeywords' , null = True )
90
91
VALUES = [
91
92
# fields in the db
92
93
'id' ,
@@ -186,21 +187,23 @@ def filter_group(self, queryset, request):
186
187
187
188
try :
188
189
anonymous_group = Group .objects .get (name = 'anonymous' )
189
- except :
190
+ except BaseException :
190
191
anonymous_group = None
191
192
192
193
if is_admin :
193
194
filtered = queryset
194
195
elif request .user :
195
196
groups = request .user .groups .all ()
196
197
if anonymous_group :
197
- filtered = queryset .filter (
198
- Q ( group__isnull = True ) | Q ( group__in = groups ) | Q (group = anonymous_group ))
198
+ filtered = queryset .filter (Q ( group__isnull = True ) | Q (
199
+ group__in = groups ) | Q (group = anonymous_group ))
199
200
else :
200
- filtered = queryset .filter (Q (group__isnull = True ) | Q (group__in = groups ))
201
+ filtered = queryset .filter (
202
+ Q (group__isnull = True ) | Q (group__in = groups ))
201
203
else :
202
204
if anonymous_group :
203
- filtered = queryset .filter (Q (group__isnull = True ) | Q (group = anonymous_group ))
205
+ filtered = queryset .filter (
206
+ Q (group__isnull = True ) | Q (group = anonymous_group ))
204
207
else :
205
208
filtered = queryset .filter (Q (group__isnull = True ))
206
209
return filtered
@@ -432,7 +435,8 @@ def get_search(self, request, **kwargs):
432
435
is_staff = request .user .is_staff if request .user else False
433
436
434
437
# Get the list of objects the user has access to
435
- filter_set = get_objects_for_user (request .user , 'base.view_resourcebase' )
438
+ filter_set = get_objects_for_user (
439
+ request .user , 'base.view_resourcebase' )
436
440
if settings .ADMIN_MODERATE_UPLOADS :
437
441
if not is_admin and not is_staff :
438
442
filter_set = filter_set .filter (is_published = True )
@@ -442,7 +446,7 @@ def get_search(self, request, **kwargs):
442
446
443
447
try :
444
448
anonymous_group = Group .objects .get (name = 'anonymous' )
445
- except :
449
+ except BaseException :
446
450
anonymous_group = None
447
451
448
452
if settings .GROUP_PRIVATE_RESOURCES :
@@ -451,22 +455,24 @@ def get_search(self, request, **kwargs):
451
455
elif request .user :
452
456
groups = request .user .groups .all ()
453
457
if anonymous_group :
454
- filter_set = filter_set .filter (
455
- Q ( group__isnull = True ) | Q ( group__in = groups ) | Q (group = anonymous_group ))
458
+ filter_set = filter_set .filter (Q ( group__isnull = True ) | Q (
459
+ group__in = groups ) | Q (group = anonymous_group ))
456
460
else :
457
- filter_set = filter_set .filter (Q (group__isnull = True ) | Q (group__in = groups ))
461
+ filter_set = filter_set .filter (
462
+ Q (group__isnull = True ) | Q (group__in = groups ))
458
463
else :
459
464
if anonymous_group :
460
- filter_set = filter_set .filter (Q (group__isnull = True ) | Q (group = anonymous_group ))
465
+ filter_set = filter_set .filter (
466
+ Q (group__isnull = True ) | Q (group = anonymous_group ))
461
467
else :
462
468
filter_set = filter_set .filter (Q (group__isnull = True ))
463
469
464
470
filter_set_ids = filter_set .values_list ('id' )
465
471
# Do the query using the filterset and the query term. Facet the
466
472
# results
467
473
if len (filter_set ) > 0 :
468
- sqs = sqs .filter (id__in = filter_set_ids ).facet ('type' ).facet ('subtype' ).facet ('owner' )\
469
- .facet ('keywords' ).facet ('regions' ).facet ('category' )
474
+ sqs = sqs .filter (id__in = filter_set_ids ).facet ('type' ).facet ('subtype' ).facet (
475
+ 'owner' ) .facet ('keywords' ).facet ('regions' ).facet ('category' )
470
476
else :
471
477
sqs = None
472
478
else :
@@ -509,23 +515,24 @@ def get_search(self, request, **kwargs):
509
515
objects = []
510
516
511
517
object_list = {
512
- "meta" : {
518
+ "meta" : {
513
519
"limit" : settings .API_LIMIT_PER_PAGE ,
514
520
"next" : next_page ,
515
521
"offset" : int (getattr (request .GET , 'offset' , 0 )),
516
522
"previous" : previous_page ,
517
523
"total_count" : total_count ,
518
524
"facets" : facets ,
519
525
},
520
- "objects" : map (lambda x : self .get_haystack_api_fields (x ), objects ),
526
+ "objects" : map (lambda x : self .get_haystack_api_fields (x ), objects ),
521
527
}
522
528
523
529
self .log_throttled_access (request )
524
530
return self .create_response (request , object_list )
525
531
526
532
def get_haystack_api_fields (self , haystack_object ):
527
- object_fields = dict ((k , v ) for k , v in haystack_object .get_stored_fields ().items ()
528
- if not re .search ('_exact$|_sortable$' , k ))
533
+ object_fields = dict (
534
+ (k , v ) for k , v in haystack_object .get_stored_fields ().items () if not re .search (
535
+ '_exact$|_sortable$' , k ))
529
536
return object_fields
530
537
531
538
def get_list (self , request , ** kwargs ):
@@ -558,7 +565,8 @@ def get_list(self, request, **kwargs):
558
565
request ,
559
566
to_be_serialized )
560
567
561
- return self .create_response (request , to_be_serialized , response_objects = objects )
568
+ return self .create_response (
569
+ request , to_be_serialized , response_objects = objects )
562
570
563
571
def format_objects (self , objects ):
564
572
"""
@@ -579,20 +587,24 @@ def create_response(
579
587
Mostly a useful shortcut/hook.
580
588
"""
581
589
582
- # If an user does not have at least view permissions, he won't be able to see the resource at all.
590
+ # If an user does not have at least view permissions, he won't be able
591
+ # to see the resource at all.
583
592
filtered_objects_ids = None
584
593
if response_objects :
585
- filtered_objects_ids = [item .id for item in response_objects if
586
- request .user .has_perm ('view_resourcebase' , item .get_self_resource ())]
594
+ filtered_objects_ids = [
595
+ item .id for item in response_objects if request .user .has_perm (
596
+ 'view_resourcebase' , item .get_self_resource ())]
587
597
588
598
if isinstance (
589
599
data ,
590
600
dict ) and 'objects' in data and not isinstance (
591
601
data ['objects' ],
592
602
list ):
593
603
if filtered_objects_ids :
594
- data ['objects' ] = [x for x in list (self .format_objects (data ['objects' ]))
595
- if x ['id' ] in filtered_objects_ids ]
604
+ data ['objects' ] = [
605
+ x for x in list (
606
+ self .format_objects (
607
+ data ['objects' ])) if x ['id' ] in filtered_objects_ids ]
596
608
else :
597
609
data ['objects' ] = list (self .format_objects (data ['objects' ]))
598
610
@@ -609,7 +621,7 @@ def prepend_urls(self):
609
621
return [
610
622
url (r"^(?P<resource_name>%s)/search%s$" % (
611
623
self ._meta .resource_name , trailing_slash ()
612
- ),
624
+ ),
613
625
self .wrap_view ('get_search' ), name = "api_get_search" ),
614
626
]
615
627
else :
0 commit comments