Save the user's CSS theme in a cookie so it stays across pages.
This commit is contained in:
		
							parent
							
								
									804afe912f
								
							
						
					
					
						commit
						193c8645ed
					
				
					 1 changed files with 20 additions and 4 deletions
				
			
		|  | @ -12,7 +12,6 @@ from . import jinja_filters | |||
| from . import jsonify | ||||
| from . import sessions | ||||
| 
 | ||||
| 
 | ||||
| root_dir = pathclass.Path(__file__).parent.parent | ||||
| 
 | ||||
| TEMPLATE_DIR = root_dir.with_child('templates') | ||||
|  | @ -108,13 +107,30 @@ def P_user_id(user_id): | |||
| 
 | ||||
| def render_template(request, *args, **kwargs): | ||||
|     session = session_manager.get(request) | ||||
|     ret = flask.render_template( | ||||
| 
 | ||||
|     old_theme = request.cookies.get('etiquette_theme', None) | ||||
|     new_theme = request.args.get('theme', None) | ||||
|     theme = '' if new_theme == '' else new_theme or old_theme | ||||
| 
 | ||||
|     response = flask.render_template( | ||||
|         session=session, | ||||
|         theme=request.args.get('theme'), | ||||
|         theme=theme, | ||||
|         *args, | ||||
|         **kwargs, | ||||
|     ) | ||||
|     return ret | ||||
| 
 | ||||
|     if not isinstance(response, sessions.RESPONSE_TYPES): | ||||
|         response = flask.Response(response) | ||||
| 
 | ||||
|     if new_theme is None: | ||||
|         pass | ||||
|     elif new_theme == '': | ||||
|         print('Deleting theme cookie.') | ||||
|         response.set_cookie('etiquette_theme', value='', expires=0) | ||||
|     elif new_theme != old_theme: | ||||
|         response.set_cookie('etiquette_theme', value=new_theme, expires=2147483647) | ||||
| 
 | ||||
|     return response | ||||
| 
 | ||||
| def back_url(): | ||||
|     return request.args.get('goto') or request.referrer or '/' | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue