@@ -521,6 +521,7 @@ def do_search(self, request):
521
521
search_programming = request .GET .getlist ('programming' )
522
522
search_type = request .GET .getlist ('type' )
523
523
search_license = request .GET .getlist ('license' )
524
+ search_suffix = request .GET .getlist ('suffix' )
524
525
525
526
# collect filters
526
527
search_mapping = {
@@ -540,6 +541,7 @@ def do_search(self, request):
540
541
'programming' : search_programming ,
541
542
'type' : search_type ,
542
543
'license' : search_license ,
544
+ 'suffix' : search_suffix ,
543
545
}
544
546
545
547
if not any (search_mapping .values ()) and not any (search_fg ):
@@ -632,6 +634,18 @@ def do_search(self, request):
632
634
licenses = License .objects .filter (slug__in = search_license )
633
635
search_tags .extend ( SearchTag (request .GET , 'license' , 'Licenses' , license .slug , license .name ) for license in licenses )
634
636
pass
637
+
638
+ # search - suffixes
639
+ if search_suffix :
640
+ # HACK Xapian doesn't supports 'endswith', so we'll do it the old fashioned way
641
+ #systems = System.objects.filter(reduce(lambda x, y: x | y, [Q(name__endswith=suffix) for suffix in search_suffix]))
642
+ #for system in systems:
643
+ #print(system.name)
644
+ #sqs = sqs.filter(name__regex=system.name)
645
+ for suffix in search_suffix :
646
+ sqs = sqs .filter (lowercase_name__contains = suffix )
647
+ search_tags .extend (SearchTag (request .GET , 'suffix' , 'Suffix' , 'suffix' , suffix ) for suffix in search_suffix )
648
+ pass
635
649
636
650
# convert feature option slugs to IDs to do search by filtering
637
651
filter_option_ids = set ()
@@ -650,8 +664,8 @@ def do_search(self, request):
650
664
for row in FeatureOption .objects .filter (id__in = filter_option_ids ).values_list ('feature__slug' ,'feature__label' ,'slug' ,'value' )
651
665
)
652
666
653
- for st in search_tags :
654
- print ('-' , st )
667
+ # for st in search_tags:
668
+ # print('-', st)
655
669
return (sqs , search_mapping , search_tags )
656
670
657
671
def handle_old_urls (self , request ):
0 commit comments