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