summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-04-26 05:39:02 -0400
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2013-04-26 05:39:02 -0400
commit2ce7b2d3a2313b5be3e765dd7507d14d0062f1c8 (patch)
tree016eef57cec7d87247aed1207fe87277563b800b
parente3640e5dde07a736d50f3712c8874c90a87cb50a (diff)
downloadaskbot-2ce7b2d3a2313b5be3e765dd7507d14d0062f1c8.tar.gz
askbot-2ce7b2d3a2313b5be3e765dd7507d14d0062f1c8.tar.bz2
askbot-2ce7b2d3a2313b5be3e765dd7507d14d0062f1c8.zip
seems to work on django 1.5
-rw-r--r--askbot/doc/source/changelog.rst1
-rw-r--r--askbot/models/post.py5
-rw-r--r--askbot/startup_procedures.py3
-rw-r--r--askbot/tests/page_load_tests.py44
-rw-r--r--askbot/utils/functions.py28
-rw-r--r--askbot/views/meta.py7
-rw-r--r--askbot/views/readers.py23
-rw-r--r--askbot/views/users.py7
8 files changed, 58 insertions, 60 deletions
diff --git a/askbot/doc/source/changelog.rst b/askbot/doc/source/changelog.rst
index faedeebf..38153404 100644
--- a/askbot/doc/source/changelog.rst
+++ b/askbot/doc/source/changelog.rst
@@ -3,6 +3,7 @@ Changes in Askbot
Development version
-------------------
+* Support for Django 1.5
* Auto-tweet option for questions and answers
* Added Chech and Croatian translations
* Disable/enable best answer feature
diff --git a/askbot/models/post.py b/askbot/models/post.py
index 2f410b27..6b5055de 100644
--- a/askbot/models/post.py
+++ b/askbot/models/post.py
@@ -866,11 +866,8 @@ class Post(models.Model):
def __unicode__(self):
if self.is_question():
return self.thread.title
- elif self.is_answer() or self.is_reject_reason():
+ else:
return self.html
- elif self.is_comment():
- return self.text
- raise NotImplementedError
def save(self, *args, **kwargs):
if self.is_answer() and self.is_anonymous:
diff --git a/askbot/startup_procedures.py b/askbot/startup_procedures.py
index 2c8b1eb4..621c9e8b 100644
--- a/askbot/startup_procedures.py
+++ b/askbot/startup_procedures.py
@@ -356,7 +356,8 @@ class SettingsTester(object):
* required_value (optional)
* error_message
"""
- self.settings = load_module(os.environ['DJANGO_SETTINGS_MODULE'])
+ settings_module = os.environ['DJANGO_SETTINGS_MODULE']
+ self.settings = load_module(settings_module.encode('utf-8'))
self.messages = list()
self.requirements = requirements
diff --git a/askbot/tests/page_load_tests.py b/askbot/tests/page_load_tests.py
index f76d94a2..2620d6b8 100644
--- a/askbot/tests/page_load_tests.py
+++ b/askbot/tests/page_load_tests.py
@@ -111,25 +111,23 @@ class PageLoadTestCase(AskbotTestCase):
self.assertEqual(r.status_code, status_code)
if template and status_code != 302:
- if isinstance(r.template, coffin.template.Template):
- self.assertEqual(r.template.name, template)
- elif isinstance(r.template, list):
+ if hasattr(r, 'template'):
+ if isinstance(r.template, coffin.template.Template):
+ self.assertEqual(r.template.name, template)
+ return
+
+ if hasattr(r, 'template'):
+ templates = r.template
+ elif hasattr(r, 'templates'):
+ templates = r.templates
+ else:
+ raise NotImplementedError()
+
+ if isinstance(templates, list):
#asuming that there is more than one template
- template_names = ','.join([t.name for t in r.template])
- print 'templates are %s' % template_names
- # The following code is no longer relevant because we're using
- # additional templates for cached fragments [e.g. thread.get_summary_html()]
-# if follow == False:
-# self.fail(
-# ('Have issue accessing %s. '
-# 'This should not have happened, '
-# 'since you are not expecting a redirect '
-# 'i.e. follow == False, there should be only '
-# 'one template') % url
-# )
-#
-# self.assertEqual(r.template[0].name, template)
- self.assertIn(template, [t.name for t in r.template])
+ template_names = [t.name for t in templates]
+ print 'templates are %s' % ','.join(template_names)
+ self.assertIn(template, template_names)
else:
raise Exception('unexpected error while runnig test')
@@ -141,8 +139,14 @@ class PageLoadTestCase(AskbotTestCase):
self.failUnless(len(response.redirect_chain) == 1)
redirect_url = response.redirect_chain[0][0]
self.failUnless(unicode(redirect_url).endswith('/questions/'))
- self.assertTrue(isinstance(response.template, list))
- self.assertIn('main_page.html', [t.name for t in response.template])
+ if hasattr(response, 'template'):
+ templates = response.template
+ elif hasattr(response, 'templates'):
+ templates = response.templates
+ else:
+ raise NotImplementedError()
+ self.assertTrue(isinstance(templates, list))
+ self.assertIn('main_page.html', [t.name for t in templates])
def proto_test_ask_page(self, allow_anonymous, status_code):
prev_setting = askbot_settings.ALLOW_POSTING_BEFORE_LOGGING_IN
diff --git a/askbot/utils/functions.py b/askbot/utils/functions.py
index 2579728b..592dcf43 100644
--- a/askbot/utils/functions.py
+++ b/askbot/utils/functions.py
@@ -132,27 +132,39 @@ def setup_paginator(context):
if (context["pages"] <= LEADING_PAGE_RANGE_DISPLAYED):
in_leading_range = in_trailing_range = True
page_numbers = [n for n in range(1, context["pages"] + 1) if n > 0 and n <= context["pages"]]
- elif (context["page"] <= LEADING_PAGE_RANGE):
+ elif (context["current_page_number"] <= LEADING_PAGE_RANGE):
in_leading_range = True
page_numbers = [n for n in range(1, LEADING_PAGE_RANGE_DISPLAYED + 1) if n > 0 and n <= context["pages"]]
pages_outside_leading_range = [n + context["pages"] for n in range(0, -NUM_PAGES_OUTSIDE_RANGE, -1)]
- elif (context["page"] > context["pages"] - TRAILING_PAGE_RANGE):
+ elif (context["current_page_number"] > context["pages"] - TRAILING_PAGE_RANGE):
in_trailing_range = True
page_numbers = [n for n in range(context["pages"] - TRAILING_PAGE_RANGE_DISPLAYED + 1, context["pages"] + 1) if n > 0 and n <= context["pages"]]
pages_outside_trailing_range = [n + 1 for n in range(0, NUM_PAGES_OUTSIDE_RANGE)]
else:
- page_numbers = [n for n in range(context["page"] - ADJACENT_PAGES, context["page"] + ADJACENT_PAGES + 1) if n > 0 and n <= context["pages"]]
+ page_numbers = [n for n in range(context["current_page_number"] - ADJACENT_PAGES, context["current_page_number"] + ADJACENT_PAGES + 1) if n > 0 and n <= context["pages"]]
pages_outside_leading_range = [n + context["pages"] for n in range(0, -NUM_PAGES_OUTSIDE_RANGE, -1)]
pages_outside_trailing_range = [n + 1 for n in range(0, NUM_PAGES_OUTSIDE_RANGE)]
+ page_object = context['page_object']
+ #patch for change in django 1.5
+ if page_object.has_previous():
+ previous_page_number = page_object.previous_page_number()
+ else:
+ previous_page_number = None
+
+ if page_object.has_next():
+ next_page_number = page_object.next_page_number()
+ else:
+ next_page_number = None
+
return {
"base_url": context["base_url"],
"is_paginated": context["is_paginated"],
- "previous": context["previous"],
- "has_previous": context["has_previous"],
- "next": context["next"],
- "has_next": context["has_next"],
- "page": context["page"],
+ "previous": previous_page_number,
+ "has_previous": page_object.has_previous(),
+ "next": next_page_number,
+ "has_next": page_object.has_next(),
+ "page": context["current_page_number"],
"pages": context["pages"],
"page_numbers": page_numbers,
"in_leading_range" : in_leading_range,
diff --git a/askbot/views/meta.py b/askbot/views/meta.py
index 6714f61e..692216da 100644
--- a/askbot/views/meta.py
+++ b/askbot/views/meta.py
@@ -203,11 +203,8 @@ def list_suggested_tags(request):
paginator_context = functions.setup_paginator({
'is_paginated' : True,
'pages': paginator.num_pages,
- 'page': page_no,
- 'has_previous': page.has_previous(),
- 'has_next': page.has_next(),
- 'previous': page.previous_page_number(),
- 'next': page.next_page_number(),
+ 'current_page_number': page_no,
+ 'page_object': page,
'base_url' : request.path
})
diff --git a/askbot/views/readers.py b/askbot/views/readers.py
index 1f19c1e6..f738da25 100644
--- a/askbot/views/readers.py
+++ b/askbot/views/readers.py
@@ -115,14 +115,9 @@ def questions(request, **kwargs):
paginator_context = {
'is_paginated' : (paginator.count > page_size),
-
'pages': paginator.num_pages,
- 'page': search_state.page,
- 'has_previous': page.has_previous(),
- 'has_next': page.has_next(),
- 'previous': page.previous_page_number(),
- 'next': page.next_page_number(),
-
+ 'current_page_number': search_state.page,
+ 'page_object': page,
'base_url' : search_state.query_string(),
'page_size' : page_size,
}
@@ -297,11 +292,8 @@ def tags(request):#view showing a listing of available tags - plain list
paginator_data = {
'is_paginated' : (objects_list.num_pages > 1),
'pages': objects_list.num_pages,
- 'page': page,
- 'has_previous': tags.has_previous(),
- 'has_next': tags.has_next(),
- 'previous': tags.previous_page_number(),
- 'next': tags.next_page_number(),
+ 'current_page_number': page,
+ 'page_object': tags,
'base_url' : reverse('tags') + '?sort=%s&amp;' % sortby
}
paginator_context = functions.setup_paginator(paginator_data)
@@ -524,11 +516,8 @@ def question(request, id):#refactor - long subroutine. display question body, an
paginator_data = {
'is_paginated' : (objects_list.count > const.ANSWERS_PAGE_SIZE),
'pages': objects_list.num_pages,
- 'page': show_page,
- 'has_previous': page_objects.has_previous(),
- 'has_next': page_objects.has_next(),
- 'previous': page_objects.previous_page_number(),
- 'next': page_objects.next_page_number(),
+ 'current_page_number': show_page,
+ 'page_object': page_objects,
'base_url' : request.path + '?sort=%s&amp;' % answer_sort_method,
}
paginator_context = functions.setup_paginator(paginator_data)
diff --git a/askbot/views/users.py b/askbot/views/users.py
index 0842074a..179392d2 100644
--- a/askbot/views/users.py
+++ b/askbot/views/users.py
@@ -163,11 +163,8 @@ def show_users(request, by_group=False, group_id=None, group_slug=None):
paginator_data = {
'is_paginated' : is_paginated,
'pages': objects_list.num_pages,
- 'page': page,
- 'has_previous': users_page.has_previous(),
- 'has_next': users_page.has_next(),
- 'previous': users_page.previous_page_number(),
- 'next': users_page.next_page_number(),
+ 'current_page_number': page,
+ 'page_object': users_page,
'base_url' : base_url
}
paginator_context = functions.setup_paginator(paginator_data) #