33from django .shortcuts import render_to_response as render
44from django .template import RequestContext
55
6- def settings (request , new_enough = - 1 , expires_soon = - 1 , full_draft = "" ):
6+ def settings (request , new_enough = - 1 , expires_soon = - 1 , full_draft = "" , left_menu = "" ):
77 if new_enough < 0 :
88 if "new_enough" in request .COOKIES and request .COOKIES ["new_enough" ].isdigit ():
99 new_enough = int (request .COOKIES ["new_enough" ])
@@ -21,11 +21,19 @@ def settings(request, new_enough = -1, expires_soon = -1, full_draft = ""):
2121 full_draft = "off"
2222 else :
2323 full_draft = "off"
24+ if left_menu == "" :
25+ if "left_menu" in request .COOKIES :
26+ left_menu = request .COOKIES ["left_menu" ]
27+ if left_menu != 'on' and left_menu != 'off' :
28+ left_menu = "on"
29+ else :
30+ left_menu = "on"
2431 return render ("cookies/settings.html" ,
2532 {
2633 "new_enough" : new_enough ,
2734 "expires_soon" : expires_soon ,
28- "full_draft" : full_draft
35+ "full_draft" : full_draft ,
36+ "left_menu" : left_menu ,
2937 }, context_instance = RequestContext (request ))
3038
3139def new_enough (request , days = "14" ):
@@ -35,7 +43,7 @@ def new_enough(request, days="14"):
3543 days = 0
3644 if days == 0 :
3745 days = 14
38- response = settings (request , days , - 1 )
46+ response = settings (request , new_enough = days )
3947 response .set_cookie ("new_enough" , days , 315360000 )
4048 return response
4149
@@ -46,13 +54,24 @@ def expires_soon(request, days="14"):
4654 days = 0
4755 if days == 0 :
4856 days = 14
49- response = settings (request , - 1 , days )
57+ response = settings (request , expires_soon = days )
5058 response .set_cookie ("expires_soon" , days , 315360000 )
5159 return response
5260
5361def full_draft (request , enabled = "off" ):
5462 if enabled != "on" and enabled != "off" :
5563 enabled = "off"
56- response = settings (request , - 1 , - 1 , enabled )
64+ response = settings (request , full_draft = enabled )
5765 response .set_cookie ("full_draft" , enabled , 315360000 )
5866 return response
67+
68+ def left_menu (request , enabled = "on" ):
69+ if enabled != "on" and enabled != "off" :
70+ enabled = "on"
71+ # Propagate the new setting immediately, to render the settings page
72+ # iteself according to the setting:
73+ request .COOKIES ["left_menu" ] = enabled
74+ response = settings (request , left_menu = enabled )
75+ response .set_cookie ("left_menu" , enabled , 315360000 )
76+ return response
77+
0 commit comments