@@ -355,17 +355,12 @@ def render(template_name, override_theme=None, **kwargs):
355 if (engine_name, category) not in disabled_engines)
355 if (engine_name, category) not in disabled_engines)
357 if 'categories' not in kwargs:
357 if 'categories' not in kwargs:
358− kwargs['categories'] = ['general']
358+ kwargs['categories'] = [x for x in
359− kwargs['categories'].extend(x for x in
359+ _get_ordered_categories()
360− sorted(categories.keys())
362− and x in enabled_categories)
360+ if x in enabled_categories]
364 if 'all_categories' not in kwargs:
362 if 'all_categories' not in kwargs:
365− kwargs['all_categories'] = ['general']
363+ kwargs['all_categories'] = _get_ordered_categories()
366− kwargs['all_categories'].extend(x for x in
367− sorted(categories.keys())
370 if 'selected_categories' not in kwargs:
365 if 'selected_categories' not in kwargs:
371 kwargs['selected_categories'] = []
366 kwargs['selected_categories'] = []
@@ -430,6 +425,7 @@ def render(template_name, override_theme=None, **kwargs):
430 kwargs['brand'] = brand
425 kwargs['brand'] = brand
432 kwargs['scripts'] = set()
427 kwargs['scripts'] = set()
428+ kwargs['endpoint'] = 'results' if 'q' in kwargs else request.endpoint
433 for plugin in request.user_plugins:
429 for plugin in request.user_plugins:
434 for script in plugin.js_dependencies:
430 for script in plugin.js_dependencies:
435 kwargs['scripts'].add(script)
431 kwargs['scripts'].add(script)
@@ -443,6 +439,17 @@ def render(template_name, override_theme=None, **kwargs):
443 '{}/{}'.format(kwargs['theme'], template_name), **kwargs)
439 '{}/{}'.format(kwargs['theme'], template_name), **kwargs)
442+def _get_ordered_categories():
443+ ordered_categories = []
444+ if 'categories_order' not in settings['ui']:
445+ ordered_categories = ['general']
446+ ordered_categories.extend(x for x in sorted(categories.keys()) if x != 'general')
447+ return ordered_categories
448+ ordered_categories = settings['ui']['categories_order']
449+ ordered_categories.extend(x for x in sorted(categories.keys()) if x not in ordered_categories)
450+ return ordered_categories
446@app.before_request
453@app.before_request
447def pre_request():
454def pre_request():
448 request.start_time = time()
455 request.start_time = time()