mirror of https://github.com/searxng/searxng.git
[mod] refactor searx.webapp.render
render automatically adds these variables to the template context: * advanced_search * all_categories * categories before render was checking if the variable was already set but it is actually never set by the callers
This commit is contained in:
parent
70bbd14b1a
commit
2a109d0a5f
|
@ -415,6 +415,22 @@ def get_translations():
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
def _get_ordered_categories():
|
||||||
|
ordered_categories = list(settings['ui']['categories_order'])
|
||||||
|
ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories)
|
||||||
|
return ordered_categories
|
||||||
|
|
||||||
|
|
||||||
|
def _get_enable_categories(all_categories):
|
||||||
|
disabled_engines = request.preferences.engines.get_disabled()
|
||||||
|
enabled_categories = set(category for engine_name in engines
|
||||||
|
for category in engines[engine_name].categories
|
||||||
|
if (engine_name, category) not in disabled_engines)
|
||||||
|
return [x for x in
|
||||||
|
all_categories
|
||||||
|
if x in enabled_categories]
|
||||||
|
|
||||||
|
|
||||||
def render(template_name, override_theme=None, **kwargs):
|
def render(template_name, override_theme=None, **kwargs):
|
||||||
# values from the HTTP requests
|
# values from the HTTP requests
|
||||||
kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
|
kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
|
||||||
|
@ -426,17 +442,11 @@ def render(template_name, override_theme=None, **kwargs):
|
||||||
kwargs['method'] = request.preferences.get_value('method')
|
kwargs['method'] = request.preferences.get_value('method')
|
||||||
kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
|
kwargs['autocomplete'] = request.preferences.get_value('autocomplete')
|
||||||
kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
|
kwargs['results_on_new_tab'] = request.preferences.get_value('results_on_new_tab')
|
||||||
|
kwargs['advanced_search'] = request.preferences.get_value('advanced_search')
|
||||||
kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
|
kwargs['safesearch'] = str(request.preferences.get_value('safesearch'))
|
||||||
kwargs['theme'] = get_current_theme_name(override=override_theme)
|
kwargs['theme'] = get_current_theme_name(override=override_theme)
|
||||||
|
kwargs['all_categories'] = _get_ordered_categories()
|
||||||
if 'categories' not in kwargs:
|
kwargs['categories'] = _get_enable_categories(kwargs['all_categories'])
|
||||||
disabled_engines = request.preferences.engines.get_disabled()
|
|
||||||
enabled_categories = set(category for engine_name in engines
|
|
||||||
for category in engines[engine_name].categories
|
|
||||||
if (engine_name, category) not in disabled_engines)
|
|
||||||
kwargs['categories'] = [x for x in
|
|
||||||
_get_ordered_categories()
|
|
||||||
if x in enabled_categories]
|
|
||||||
|
|
||||||
# i18n
|
# i18n
|
||||||
kwargs['language_codes'] = languages # from searx.languages
|
kwargs['language_codes'] = languages # from searx.languages
|
||||||
|
@ -488,12 +498,6 @@ def render(template_name, override_theme=None, **kwargs):
|
||||||
return result
|
return result
|
||||||
|
|
||||||
|
|
||||||
def _get_ordered_categories():
|
|
||||||
ordered_categories = list(settings['ui']['categories_order'])
|
|
||||||
ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories)
|
|
||||||
return ordered_categories
|
|
||||||
|
|
||||||
|
|
||||||
@app.before_request
|
@app.before_request
|
||||||
def pre_request():
|
def pre_request():
|
||||||
request.start_time = default_timer() # pylint: disable=assigning-non-slot
|
request.start_time = default_timer() # pylint: disable=assigning-non-slot
|
||||||
|
@ -605,9 +609,6 @@ def index_error(output_format, error_message):
|
||||||
def index():
|
def index():
|
||||||
"""Render index page."""
|
"""Render index page."""
|
||||||
|
|
||||||
# UI
|
|
||||||
advanced_search = request.preferences.get_value('advanced_search')
|
|
||||||
|
|
||||||
# redirect to search if there's a query in the request
|
# redirect to search if there's a query in the request
|
||||||
if request.form.get('q'):
|
if request.form.get('q'):
|
||||||
query = ('?' + request.query_string.decode()) if request.query_string else ''
|
query = ('?' + request.query_string.decode()) if request.query_string else ''
|
||||||
|
@ -616,7 +617,6 @@ def index():
|
||||||
return render(
|
return render(
|
||||||
'index.html',
|
'index.html',
|
||||||
selected_categories=get_selected_categories(request.preferences, request.form),
|
selected_categories=get_selected_categories(request.preferences, request.form),
|
||||||
advanced_search=advanced_search,
|
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -642,7 +642,6 @@ def search():
|
||||||
if output_format == 'html':
|
if output_format == 'html':
|
||||||
return render(
|
return render(
|
||||||
'index.html',
|
'index.html',
|
||||||
advanced_search=request.preferences.get_value('advanced_search'),
|
|
||||||
selected_categories=get_selected_categories(request.preferences, request.form),
|
selected_categories=get_selected_categories(request.preferences, request.form),
|
||||||
)
|
)
|
||||||
return index_error(output_format, 'No query'), 400
|
return index_error(output_format, 'No query'), 400
|
||||||
|
@ -1008,7 +1007,6 @@ def preferences():
|
||||||
#
|
#
|
||||||
return render('preferences.html',
|
return render('preferences.html',
|
||||||
selected_categories=get_selected_categories(request.preferences, request.form),
|
selected_categories=get_selected_categories(request.preferences, request.form),
|
||||||
all_categories=_get_ordered_categories(),
|
|
||||||
locales=settings['locales'],
|
locales=settings['locales'],
|
||||||
current_locale=request.preferences.get_value("locale"),
|
current_locale=request.preferences.get_value("locale"),
|
||||||
image_proxy=image_proxy,
|
image_proxy=image_proxy,
|
||||||
|
|
Loading…
Reference in New Issue