[enh] group engines in preference tabs

This commit is contained in:
Martin Fischer 2021-12-28 14:51:21 +01:00
parent b02f762687
commit 31e206361f
3 changed files with 25 additions and 2 deletions

View file

@ -348,7 +348,11 @@
<th scope="col" class="text-right">{{ _("Allow") }}</th>
{% endif %}
</tr>
{% for search_engine in engines_by_category[categ] %}
{% for group, engines in engines_by_category[categ] | group_engines_in_tab %}
{% if loop.length > 1 %}
<tr><th colspan="9">{{_(group)}}</th></tr>
{% endif %}
{% for search_engine in engines %}
{% if not search_engine.private %}
<tr>
{% if not rtl %}
@ -382,6 +386,7 @@
{% endif %}
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
</div>

View file

@ -289,7 +289,11 @@
<th>{{ _("Max time") }}</th>
<th>{{ _("Reliability") }}</th>
</tr>
{% for search_engine in engines_by_category[categ] %}
{% for group, engines in engines_by_category[categ] | group_engines_in_tab %}
{% if loop.length > 1 %}
<tr><th colspan="9">{{_(group)}}</th></tr>
{% endif %}
{% for search_engine in engines %}
{% if not search_engine.private %}
{% set engine_id = 'engine_' + search_engine.name|replace(' ', '_') + '__' + categ|replace(' ', '_') %}
<tr>
@ -305,6 +309,7 @@
</tr>
{% endif %}
{% endfor %}
{% endfor %}
</table>
</div>
{{ tab_footer() }}

View file

@ -59,9 +59,11 @@ from searx.settings_defaults import OUTPUT_FORMATS
from searx.settings_loader import get_default_settings_path
from searx.exceptions import SearxParameterException
from searx.engines import (
DEFAULT_GROUP_NAME,
categories,
engines,
engine_shortcuts,
group_engines_in_tab,
)
from searx.webutils import (
UnicodeWriter,
@ -152,6 +154,7 @@ app = Flask(__name__, static_folder=settings['ui']['static_path'], template_fold
app.jinja_env.trim_blocks = True
app.jinja_env.lstrip_blocks = True
app.jinja_env.add_extension('jinja2.ext.loopcontrols') # pylint: disable=no-member
app.jinja_env.filters['group_engines_in_tab'] = group_engines_in_tab # pylint: disable=no-member
app.secret_key = settings['server']['secret_key']
babel = Babel(app)
@ -169,6 +172,16 @@ _category_names = (
gettext('map'),
gettext('onions'),
gettext('science'),
# non-tab categories
gettext('apps'),
gettext('dictionaries'),
gettext('lyrics'),
gettext('packages'),
gettext('q&a'),
gettext('repos'),
gettext('software wikis'),
gettext('web'),
gettext(DEFAULT_GROUP_NAME),
)
_simple_style = (gettext('auto'), gettext('light'), gettext('dark'))