summaryrefslogtreecommitdiffstats
path: root/askbot/startup_procedures.py
diff options
context:
space:
mode:
authorEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-03-11 00:23:42 -0300
committerEvgeny Fadeev <evgeny.fadeev@gmail.com>2012-03-11 00:23:42 -0300
commitad674457cadb50bc8caf333b0bb586fbd61ba7df (patch)
treec114b6aacb46851fcc21cf51c5a07a9e158e7aae /askbot/startup_procedures.py
parent81b775b6e292a943d609132985711eec17e8184d (diff)
parentf15f8fa0049340afc287fbd61e9727c676d30645 (diff)
downloadaskbot-ad674457cadb50bc8caf333b0bb586fbd61ba7df.tar.gz
askbot-ad674457cadb50bc8caf333b0bb586fbd61ba7df.tar.bz2
askbot-ad674457cadb50bc8caf333b0bb586fbd61ba7df.zip
Merge branch 'dan'
Diffstat (limited to 'askbot/startup_procedures.py')
-rw-r--r--askbot/startup_procedures.py52
1 files changed, 31 insertions, 21 deletions
diff --git a/askbot/startup_procedures.py b/askbot/startup_procedures.py
index 0ce5b3a1..b4b36e35 100644
--- a/askbot/startup_procedures.py
+++ b/askbot/startup_procedures.py
@@ -109,7 +109,7 @@ def test_middleware():
installed in the django settings.py file. If that is not the
case - raises an AskbotConfigError exception.
"""
- required_middleware = (
+ required_middleware = [
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
@@ -117,37 +117,47 @@ def test_middleware():
'askbot.middleware.forum_mode.ForumModeMiddleware',
'askbot.middleware.cancel.CancelActionMiddleware',
'django.middleware.transaction.TransactionMiddleware',
- 'askbot.middleware.view_log.ViewLogMiddleware',
- )
+ ]
if 'debug_toolbar' in django_settings.INSTALLED_APPS:
- required_middleware += (
+ required_middleware.append(
'debug_toolbar.middleware.DebugToolbarMiddleware',
)
-
- installed_middleware_set = set(django_settings.MIDDLEWARE_CLASSES)
- missing_middleware_set = set(required_middleware) - installed_middleware_set
-
- if missing_middleware_set:
- error_message = """\n\nPlease add the following middleware (listed after this message)
+ required_middleware.extend([
+ 'askbot.middleware.view_log.ViewLogMiddleware',
+ 'askbot.middleware.spaceless.SpacelessMiddleware',
+ ])
+ found_middleware = [x for x in django_settings.MIDDLEWARE_CLASSES
+ if x in required_middleware]
+ if found_middleware != required_middleware:
+ # either middleware is out of order or it's missing an item
+ missing_middleware_set = set(required_middleware) - set(found_middleware)
+ middleware_text = ''
+ if missing_middleware_set:
+ error_message = """\n\nPlease add the following middleware (listed after this message)
to the MIDDLEWARE_CLASSES variable in your site settings.py file.
-The order the middleware records may be important, please take a look at the example in
+The order the middleware records is important, please take a look at the example in
https://github.com/ASKBOT/askbot-devel/blob/master/askbot/setup_templates/settings.py:\n\n"""
- middleware_text = format_as_text_tuple_entries(missing_middleware_set)
+ middleware_text = format_as_text_tuple_entries(missing_middleware_set)
+ else:
+ # middleware is out of order
+ error_message = """\n\nPlease check the order of middleware closely.
+The order the middleware records is important, please take a look at the example in
+https://github.com/ASKBOT/askbot-devel/blob/master/askbot/setup_templates/settings.py
+for the correct order.\n\n"""
raise AskbotConfigError(error_message + middleware_text)
#middleware that was used in the past an now removed
- canceled_middleware = (
- 'askbot.deps.recaptcha_django.middleware.ReCaptchaMiddleware',
- )
- #'debug_toolbar.middleware.DebugToolbarMiddleware',
-
- remove_middleware_set = set(canceled_middleware) \
- & installed_middleware_set
- if remove_middleware_set:
+ canceled_middleware = [
+ 'askbot.deps.recaptcha_django.middleware.ReCaptchaMiddleware'
+ ]
+
+ invalid_middleware = [x for x in canceled_middleware
+ if x in django_settings.MIDDLEWARE_CLASSES]
+ if invalid_middleware:
error_message = """\n\nPlease remove the following middleware entries from
the list of MIDDLEWARE_CLASSES in your settings.py - these are not used any more:\n\n"""
- middleware_text = format_as_text_tuple_entries(remove_middleware_set)
+ middleware_text = format_as_text_tuple_entries(invalid_middleware)
raise AskbotConfigError(error_message + middleware_text)
def try_import(module_name, pypi_package_name):