summaryrefslogtreecommitdiffstats
path: root/middleware/pagesize.py
diff options
context:
space:
mode:
authorMike Chen <chagel@gmail.com>2009-07-05 10:23:06 +0800
committerMike Chen <chagel@gmail.com>2009-07-05 10:23:06 +0800
commit2acb62174ab2cac9c7a88faafcb5f0a22a54db6f (patch)
tree93e9d22d6fb8a6c882e3915a8511a3ac542a1e67 /middleware/pagesize.py
downloadaskbot-2acb62174ab2cac9c7a88faafcb5f0a22a54db6f.tar.gz
askbot-2acb62174ab2cac9c7a88faafcb5f0a22a54db6f.tar.bz2
askbot-2acb62174ab2cac9c7a88faafcb5f0a22a54db6f.zip
initiliaze git rep
Diffstat (limited to 'middleware/pagesize.py')
-rw-r--r--middleware/pagesize.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/middleware/pagesize.py b/middleware/pagesize.py
new file mode 100644
index 00000000..bb6c7aa3
--- /dev/null
+++ b/middleware/pagesize.py
@@ -0,0 +1,29 @@
+# used in questions
+QUESTIONS_PAGE_SIZE = 10
+class QuestionsPageSizeMiddleware(object):
+ def process_request(self, request):
+ # Set flag to False by default. If it is equal to True, then need to be saved.
+ pagesize_changed = False
+ # get pagesize from session, if failed then get default value
+ user_page_size = request.session.get("pagesize", QUESTIONS_PAGE_SIZE)
+ # set pagesize equal to logon user specified value in database
+ if request.user.is_authenticated() and request.user.questions_per_page > 0:
+ user_page_size = request.user.questions_per_page
+
+ try:
+ # get new pagesize from UI selection
+ pagesize = int(request.GET.get('pagesize', user_page_size))
+ if pagesize <> user_page_size:
+ pagesize_changed = True
+
+ except ValueError:
+ pagesize = user_page_size
+
+ # save this pagesize to user database
+ if pagesize_changed:
+ if request.user.is_authenticated():
+ user = request.user
+ user.questions_per_page = pagesize
+ user.save()
+ # put pagesize into session
+ request.session["pagesize"] = pagesize \ No newline at end of file