From ccb37ce74cae13115a65b4cb73db156d40131765 Mon Sep 17 00:00:00 2001 From: Malcolm Tredinnick Date: Tue, 26 Aug 2008 06:58:43 +0000 Subject: [PATCH] The comments app was unconditionally accessing various settings that didn't exist in Django's global settings. Changed those accesses to conditional lookups with default fallbacks. The comment_test tests now pass without needing to add any extra settings. git-svn-id: http://code.djangoproject.com/svn/django/trunk@8573 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/contrib/comments/__init__.py | 17 ++++++++++++----- .../contrib/comments/templatetags/comments.py | 2 +- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/django/contrib/comments/__init__.py b/django/contrib/comments/__init__.py index 2455d40e92..55b8bac94a 100644 --- a/django/contrib/comments/__init__.py +++ b/django/contrib/comments/__init__.py @@ -10,14 +10,14 @@ def get_comment_app(): Get the comment app (i.e. "django.contrib.comments") as defined in the settings """ # Make sure the app's in INSTALLED_APPS - comments_app = getattr(settings, 'COMMENTS_APP', 'django.contrib.comments') + comments_app = get_comment_app_name() if comments_app not in settings.INSTALLED_APPS: raise ImproperlyConfigured("The COMMENTS_APP (%r) "\ "must be in INSTALLED_APPS" % settings.COMMENTS_APP) # Try to import the package try: - package = __import__(settings.COMMENTS_APP, '', '', ['']) + package = __import__(comments_app, '', '', ['']) except ImportError: raise ImproperlyConfigured("The COMMENTS_APP setting refers to "\ "a non-existing package.") @@ -31,6 +31,13 @@ def get_comment_app(): return package +def get_comment_app_name(): + """ + Returns the name of the comment app (either the setting value, if it + exists, or the default). + """ + return getattr(settings, 'COMMENTS_APP', 'django.contrib.comments') + def get_model(): from django.contrib.comments.models import Comment return Comment @@ -46,7 +53,7 @@ def get_flag_url(comment): """ Get the URL for the "flag this comment" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_flag_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_flag_url"): return get_comment_app().get_flag_url(comment) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.flag", args=(comment.id,)) @@ -55,7 +62,7 @@ def get_delete_url(comment): """ Get the URL for the "delete this comment" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_delete_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_delete_url"): return get_comment_app().get_flag_url(get_delete_url) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.delete", args=(comment.id,)) @@ -64,7 +71,7 @@ def get_approve_url(comment): """ Get the URL for the "approve this comment from moderation" view. """ - if settings.COMMENTS_APP != __name__ and hasattr(get_comment_app(), "get_approve_url"): + if get_comment_app_name() != __name__ and hasattr(get_comment_app(), "get_approve_url"): return get_comment_app().get_approve_url(comment) else: return urlresolvers.reverse("django.contrib.comments.views.moderation.approve", args=(comment.id,)) diff --git a/django/contrib/comments/templatetags/comments.py b/django/contrib/comments/templatetags/comments.py index 78f2819678..c2a99c843b 100644 --- a/django/contrib/comments/templatetags/comments.py +++ b/django/contrib/comments/templatetags/comments.py @@ -81,7 +81,7 @@ class BaseCommentNode(template.Node): site__pk = settings.SITE_ID, is_public = True, ) - if settings.COMMENTS_HIDE_REMOVED: + if getattr(settings, 'COMMENTS_HIDE_REMOVED', True): qs = qs.filter(is_removed=False) return qs