[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): | ||||
|     # values from the HTTP requests | ||||
|     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['autocomplete'] = request.preferences.get_value('autocomplete') | ||||
|     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['theme'] = get_current_theme_name(override=override_theme) | ||||
| 
 | ||||
|     if 'categories' not in kwargs: | ||||
|         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] | ||||
|     kwargs['all_categories'] = _get_ordered_categories() | ||||
|     kwargs['categories'] = _get_enable_categories(kwargs['all_categories']) | ||||
| 
 | ||||
|     # i18n | ||||
|     kwargs['language_codes'] = languages  # from searx.languages | ||||
| @ -488,12 +498,6 @@ def render(template_name, override_theme=None, **kwargs): | ||||
|     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 | ||||
| def pre_request(): | ||||
|     request.start_time = default_timer()  # pylint: disable=assigning-non-slot | ||||
| @ -605,9 +609,6 @@ def index_error(output_format, error_message): | ||||
| def index(): | ||||
|     """Render index page.""" | ||||
| 
 | ||||
|     # UI | ||||
|     advanced_search = request.preferences.get_value('advanced_search') | ||||
| 
 | ||||
|     # redirect to search if there's a query in the request | ||||
|     if request.form.get('q'): | ||||
|         query = ('?' + request.query_string.decode()) if request.query_string else '' | ||||
| @ -616,7 +617,6 @@ def index(): | ||||
|     return render( | ||||
|         'index.html', | ||||
|         selected_categories=get_selected_categories(request.preferences, request.form), | ||||
|         advanced_search=advanced_search, | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
| @ -642,7 +642,6 @@ def search(): | ||||
|         if output_format == 'html': | ||||
|             return render( | ||||
|                 'index.html', | ||||
|                 advanced_search=request.preferences.get_value('advanced_search'), | ||||
|                 selected_categories=get_selected_categories(request.preferences, request.form), | ||||
|             ) | ||||
|         return index_error(output_format, 'No query'), 400 | ||||
| @ -1008,7 +1007,6 @@ def preferences(): | ||||
|     # | ||||
|     return render('preferences.html', | ||||
|                   selected_categories=get_selected_categories(request.preferences, request.form), | ||||
|                   all_categories=_get_ordered_categories(), | ||||
|                   locales=settings['locales'], | ||||
|                   current_locale=request.preferences.get_value("locale"), | ||||
|                   image_proxy=image_proxy, | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Alexandre Flament
						Alexandre Flament