forked from zaclys/searxng
[fix] make BooleanChoices only set cookies that vary from the default
The bug was inadvertently introduced by the refactor in
180d4d068b
.
Fixes #746.
This commit is contained in:
parent
687bdef410
commit
d9709df740
|
@ -205,6 +205,7 @@ class BooleanChoices:
|
||||||
self.name = name
|
self.name = name
|
||||||
self.choices = choices
|
self.choices = choices
|
||||||
self.locked = locked
|
self.locked = locked
|
||||||
|
self.default_choices = dict(choices)
|
||||||
|
|
||||||
def transform_form_items(self, items):
|
def transform_form_items(self, items):
|
||||||
# pylint: disable=no-self-use
|
# pylint: disable=no-self-use
|
||||||
|
@ -241,8 +242,10 @@ class BooleanChoices:
|
||||||
|
|
||||||
def save(self, resp: flask.Response):
|
def save(self, resp: flask.Response):
|
||||||
"""Save cookie in the HTTP reponse obect"""
|
"""Save cookie in the HTTP reponse obect"""
|
||||||
resp.set_cookie('disabled_{0}'.format(self.name), ','.join(self.disabled), max_age=COOKIE_MAX_AGE)
|
disabled_changed = (k for k in self.disabled if self.default_choices[k])
|
||||||
resp.set_cookie('enabled_{0}'.format(self.name), ','.join(self.enabled), max_age=COOKIE_MAX_AGE)
|
enabled_changed = (k for k in self.enabled if not self.default_choices[k])
|
||||||
|
resp.set_cookie('disabled_{0}'.format(self.name), ','.join(disabled_changed), max_age=COOKIE_MAX_AGE)
|
||||||
|
resp.set_cookie('enabled_{0}'.format(self.name), ','.join(enabled_changed), max_age=COOKIE_MAX_AGE)
|
||||||
|
|
||||||
def get_disabled(self):
|
def get_disabled(self):
|
||||||
return self.transform_values(list(self.disabled))
|
return self.transform_values(list(self.disabled))
|
||||||
|
|
Loading…
Reference in New Issue