Skip to content

Commit 3517c20

Browse files
committed
Working on suffix name search
1 parent 8617eec commit 3517c20

File tree

1 file changed

+16
-2
lines changed

1 file changed

+16
-2
lines changed

dbdb/core/views.py

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,7 @@ def do_search(self, request):
521521
search_programming = request.GET.getlist('programming')
522522
search_type = request.GET.getlist('type')
523523
search_license = request.GET.getlist('license')
524+
search_suffix = request.GET.getlist('suffix')
524525

525526
# collect filters
526527
search_mapping = {
@@ -540,6 +541,7 @@ def do_search(self, request):
540541
'programming': search_programming,
541542
'type': search_type,
542543
'license': search_license,
544+
'suffix': search_suffix,
543545
}
544546

545547
if not any(search_mapping.values()) and not any(search_fg):
@@ -632,6 +634,18 @@ def do_search(self, request):
632634
licenses = License.objects.filter(slug__in=search_license)
633635
search_tags.extend( SearchTag(request.GET, 'license', 'Licenses', license.slug, license.name) for license in licenses )
634636
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
635649

636650
# convert feature option slugs to IDs to do search by filtering
637651
filter_option_ids = set()
@@ -650,8 +664,8 @@ def do_search(self, request):
650664
for row in FeatureOption.objects.filter(id__in=filter_option_ids).values_list('feature__slug','feature__label','slug','value')
651665
)
652666

653-
for st in search_tags:
654-
print('-', st)
667+
#for st in search_tags:
668+
#print('-', st)
655669
return (sqs, search_mapping, search_tags)
656670

657671
def handle_old_urls(self, request):

0 commit comments

Comments
 (0)