[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
	
	Block a user