diff --git a/ietf/cookies/urls.py b/ietf/cookies/urls.py index 10ee92629..bec6a2fe5 100644 --- a/ietf/cookies/urls.py +++ b/ietf/cookies/urls.py @@ -11,4 +11,6 @@ urlpatterns = patterns('', (r'^expires_soon/', views.expires_soon), (r'^full_draft/(?P.*)$', views.full_draft), (r'^full_draft/', views.full_draft), + (r'^left_menu/(?P.*)$', views.left_menu), + (r'^left_menu/', views.left_menu), ) diff --git a/ietf/cookies/views.py b/ietf/cookies/views.py index 10d2c69b8..738bbde06 100644 --- a/ietf/cookies/views.py +++ b/ietf/cookies/views.py @@ -3,7 +3,7 @@ from django.shortcuts import render_to_response as render from django.template import RequestContext -def settings(request, new_enough = -1, expires_soon = -1, full_draft = ""): +def settings(request, new_enough = -1, expires_soon = -1, full_draft = "", left_menu=""): if new_enough < 0: if "new_enough" in request.COOKIES and request.COOKIES["new_enough"].isdigit(): new_enough = int(request.COOKIES["new_enough"]) @@ -21,11 +21,19 @@ def settings(request, new_enough = -1, expires_soon = -1, full_draft = ""): full_draft = "off" else: full_draft = "off" + if left_menu == "": + if "left_menu" in request.COOKIES: + left_menu = request.COOKIES["left_menu"] + if left_menu != 'on' and left_menu != 'off': + left_menu = "on" + else: + left_menu = "on" return render("cookies/settings.html", { "new_enough" : new_enough, "expires_soon" : expires_soon, - "full_draft" : full_draft + "full_draft" : full_draft, + "left_menu": left_menu, }, context_instance=RequestContext(request)) def new_enough(request, days="14"): @@ -35,7 +43,7 @@ def new_enough(request, days="14"): days = 0 if days == 0: days = 14 - response = settings(request, days, -1) + response = settings(request, new_enough=days) response.set_cookie("new_enough", days, 315360000) return response @@ -46,13 +54,24 @@ def expires_soon(request, days="14"): days = 0 if days == 0: days = 14 - response = settings(request, -1, days) + response = settings(request, expires_soon=days) response.set_cookie("expires_soon", days, 315360000) return response def full_draft(request, enabled="off"): if enabled != "on" and enabled != "off": enabled = "off" - response = settings(request, -1, -1, enabled) + response = settings(request, full_draft=enabled) response.set_cookie("full_draft", enabled, 315360000) return response + +def left_menu(request, enabled="on"): + if enabled != "on" and enabled != "off": + enabled = "on" + # Propagate the new setting immediately, to render the settings page + # iteself according to the setting: + request.COOKIES["left_menu"] = enabled + response = settings(request, left_menu=enabled) + response.set_cookie("left_menu", enabled, 315360000) + return response + diff --git a/ietf/templates/base.html b/ietf/templates/base.html index b0063c686..a5b9f907d 100644 --- a/ietf/templates/base.html +++ b/ietf/templates/base.html @@ -92,8 +92,7 @@ {% endif %} - - {% if not hide_menu %} {# ugly hack for the more or less unported meeting agenda edit pages #} + {% if request.COOKIES.left_menu != "off" and not hide_menu %} {# ugly hack for the more or less unported meeting agenda edit pages #}
+

Show the left-hand menu?

+ +

Show the left-hand menu on all regular pages? This defaults to on.

+ +
+ Off + On +
+ + + {% endblock %}