From 2ce7b2d3a2313b5be3e765dd7507d14d0062f1c8 Mon Sep 17 00:00:00 2001 From: Evgeny Fadeev Date: Fri, 26 Apr 2013 05:39:02 -0400 Subject: seems to work on django 1.5 --- askbot/doc/source/changelog.rst | 1 + askbot/models/post.py | 5 +---- askbot/startup_procedures.py | 3 ++- askbot/tests/page_load_tests.py | 44 ++++++++++++++++++++++------------------- askbot/utils/functions.py | 28 ++++++++++++++++++-------- askbot/views/meta.py | 7 ++----- askbot/views/readers.py | 23 ++++++--------------- askbot/views/users.py | 7 ++----- 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&' % 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&' % 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) # -- cgit v1.2.3-1-g7c22