[enh] cleaner category/engine selection from GET/POST param - closes #289

This commit is contained in:
Adam Tauber 2015-05-12 08:21:39 +02:00
parent e34166168c
commit b6de23f540
1 changed files with 15 additions and 2 deletions

View File

@ -382,9 +382,19 @@ class Search(object):
# otherwise, using defined categories to
# calculate which engines should be used
else:
# set used categories
# set categories/engines
load_default_categories = True
for pd_name, pd in self.request_data.items():
if pd_name.startswith('category_'):
if pd_name == 'categories':
self.categories.extend(categ for categ in pd.split(',') if categ in categories)
elif pd_name == 'engines':
pd_engines = [{'category': engines[engine].categories[0],
'name': engine}
for engine in pd.split(',') if engine in engines]
if pd_engines:
self.engines.extend(pd_engines)
load_default_categories = False
elif pd_name.startswith('category_'):
category = pd_name[9:]
# if category is not found in list, skip
@ -398,6 +408,9 @@ class Search(object):
# remove category from list if property is set to 'off'
self.categories.remove(category)
if not load_default_categories:
return
# if no category is specified for this search,
# using user-defined default-configuration which
# (is stored in cookie)