on master help sign in
Merge pull request #2327 from renyhp/master

Add preference for displaying advanced settings

commit6ada5bac60f44a09198c9fec642d5c5939982f88 authorAlexandre Flament <alex@al-f.net> dateThu 26 Nov 2020, 17:37 (6 years ago) parentaec6a260323606
3 files changed+25−4
searx/preferences.py+11 searx/templates/oscar/preferences.html+9 searx/webapp.py+5−4
searx/preferences.py+11
@@ -395,6 +395,17 @@ class Preferences:
395395 settings['ui'].get('theme_args', {}).get('oscar_style', 'logicodev'),
396396 is_locked('oscar-style'),
397397 choices=['', 'logicodev', 'logicodev-dark', 'pointhi']),
398+ 'advanced_search': MapSetting(
399+ settings['ui'].get('advanced_search', False),
400+ is_locked('advanced_search'),
401+ map={
402+ '0': False,
403+ '1': True,
404+ 'False': False,
405+ 'True': True,
406+ 'on': True,
407+ }
408+ ),
398409 }
399410
400411 self.engines = EnginesSetting('engines', choices=engines)
searx/templates/oscar/preferences.html+9
@@ -140,6 +140,15 @@
140140 {{ preferences_item_footer(info, label, rtl) }}
141141 {% endif %}
142142
143+ {% set label = _('Show advanced settings') %}
144+ {% set info = _('Show advanced settings panel in the home page by default') %}
145+ {{ preferences_item_header(info, label, rtl, 'advanced_search') }}
146+ <select class="form-control {{ custom_select_class(rtl) }}" name="advanced_search" id="advanced_search">
147+ <option value="1" {% if preferences.get_value('advanced_search')%}selected="selected"{% endif %}>{{ _('On') }}</option>
148+ <option value="0" {% if not preferences.get_value('advanced_search')%}selected="selected"{% endif %}>{{ _('Off')}}</option>
149+ </select>
150+ {{ preferences_item_footer(info, label, rtl) }}
151+
143152 {% if 'doi_resolver' not in locked_preferences %}
144153 {% set label = _('Open Access DOI resolver') %}
145154 {% set info = _('Redirect to open-access versions of publications when available (plugin required)') %}
searx/webapp.py+5−4
@@ -544,6 +544,9 @@ def index_error(output_format, error_message):
544544def index():
545545 """Render index page."""
546546
547+ # UI
548+ advanced_search = request.preferences.get_value('advanced_search')
549+
547550 # redirect to search if there's a query in the request
548551 if request.form.get('q'):
549552 query = ('?' + request.query_string.decode()) if request.query_string else ''
@@ -552,6 +555,7 @@ def index():
552555 return render(
553556 'index.html',
554557 selected_categories=get_selected_categories(request.preferences, request.form),
558+ advanced_search=advanced_search,
555559 )
556560
557561
@@ -572,6 +576,7 @@ def search():
572576 if output_format == 'html':
573577 return render(
574578 'index.html',
579+ advanced_search=request.preferences.get_value('advanced_search'),
575580 selected_categories=get_selected_categories(request.preferences, request.form),
576581 )
577582 else:
@@ -605,9 +610,6 @@ def search():
605610 if result_container.redirect_url:
606611 return redirect(result_container.redirect_url)
607612
608− # UI
609− advanced_search = request.form.get('advanced_search', None)
610−
611613 # Server-Timing header
612614 request.timings = result_container.get_timings()
613615
@@ -716,7 +718,6 @@ def search():
716718 pageno=search_query.pageno,
717719 time_range=search_query.time_range,
718720 number_of_results=format_decimal(number_of_results),
719− advanced_search=advanced_search,
720721 suggestions=suggestion_urls,
721722 answers=result_container.answers,
722723 corrections=correction_urls,