on master help sign in
[enh] make custom oscar option configurable from url
e060aedAdam Tauber
searx/preferences.py+4
@@ -305,6 +305,8 @@ class Preferences(object):
305 elif user_setting_name == 'disabled_plugins':
305 elif user_setting_name == 'disabled_plugins':
306 self.plugins.parse_cookie((input_data.get('disabled_plugins', ''),
306 self.plugins.parse_cookie((input_data.get('disabled_plugins', ''),
307 input_data.get('enabled_plugins', '')))
307 input_data.get('enabled_plugins', '')))
308+ else:
309+ self.unknown_params[user_setting_name] = user_setting
308
310
309 def parse_form(self, input_data):
311 def parse_form(self, input_data):
310 disabled_engines = []
312 disabled_engines = []
@@ -329,6 +331,8 @@ class Preferences(object):
329 def get_value(self, user_setting_name):
331 def get_value(self, user_setting_name):
330 if user_setting_name in self.key_value_settings:
332 if user_setting_name in self.key_value_settings:
331 return self.key_value_settings[user_setting_name].get_value()
333 return self.key_value_settings[user_setting_name].get_value()
334+ if user_setting_name in self.unknown_params:
335+ return self.unknown_params[user_setting_name]
332
336
333 def save(self, resp):
337 def save(self, resp):
334 for user_setting_name, user_setting in self.key_value_settings.items():
338 for user_setting_name, user_setting in self.key_value_settings.items():
searx/templates/oscar/base.html+2−2
@@ -13,8 +13,8 @@
13 <title>{% block title %}{% endblock %}{{ instance_name }}</title>
13 <title>{% block title %}{% endblock %}{{ instance_name }}</title>
14
14
15 <link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" />
15 <link rel="stylesheet" href="{{ url_for('static', filename='css/bootstrap.min.css') }}" type="text/css" />
16− {% if cookies['oscar-style'] %}
16+ {% if preferences.get_value('oscar-style') %}
17− <link rel="stylesheet" href="{{ url_for('static', filename='css/'+cookies['oscar-style']+'.min.css') }}" type="text/css" />
17+ <link rel="stylesheet" href="{{ url_for('static', filename='css/'+preferences.get_value('oscar-style')+'.min.css') }}" type="text/css" />
18 {% else %}
18 {% else %}
19 <link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
19 <link rel="stylesheet" href="{{ url_for('static', filename='css/logicodev.min.css') }}" type="text/css" />
20 {% endif %}
20 {% endif %}
searx/templates/oscar/preferences.html+2−2
@@ -106,8 +106,8 @@
106 {{ preferences_item_header(_('Choose style for this theme'), _('Style'), rtl) }}
106 {{ preferences_item_header(_('Choose style for this theme'), _('Style'), rtl) }}
107 <select class="form-control" name='oscar-style'>
107 <select class="form-control" name='oscar-style'>
108 <option value="logicodev" >Logicodev</option>
108 <option value="logicodev" >Logicodev</option>
109− <option value="pointhi" {% if cookies['oscar-style'] == 'pointhi' %}selected="selected"{% endif %}>Pointhi</option>
109+ <option value="pointhi" {% if preferences.get_value('oscar-style') == 'pointhi' %}selected="selected"{% endif %}>Pointhi</option>
110− <option value="logicodev-dark" {% if cookies['oscar-style'] == 'logicodev-dark' %}selected="selected"{% endif %}>Logicodev dark</option>
110+ <option value="logicodev-dark" {% if preferences.get_value('oscar-style') == 'logicodev-dark' %}selected="selected"{% endif %}>Logicodev dark</option>
111 </select>
111 </select>
112 {{ preferences_item_footer(_('Choose style for this theme'), _('Style'), rtl) }}
112 {{ preferences_item_footer(_('Choose style for this theme'), _('Style'), rtl) }}
113
113
searx/webapp.py+2
@@ -376,6 +376,8 @@ def render(template_name, override_theme=None, **kwargs):
376
376
377 kwargs['unicode'] = unicode
377 kwargs['unicode'] = unicode
378
378
379+ kwargs['preferences'] = request.preferences
380+
379 kwargs['scripts'] = set()
381 kwargs['scripts'] = set()
380 for plugin in request.user_plugins:
382 for plugin in request.user_plugins:
381 for script in plugin.js_dependencies:
383 for script in plugin.js_dependencies: