From b65639a76933819f06df34e36e5bd3e230ed0cfe Mon Sep 17 00:00:00 2001 From: tonio Date: Mon, 25 Oct 2010 23:11:35 +0200 Subject: [PATCH] new: parameter MODOBOA_WEBPATH added to settings.py. The default value is "modoboa/". It corresponds to urls prefix. Documentation update. --- INSTALL | 9 ++++++++- extensions/__init__.py | 4 ++-- extensions/amavis_quarantine/main.py | 4 ++-- extensions/postfix_autoreply/main.py | 4 ++-- extensions/stats/main.py | 4 ++-- extensions/webmail/main.py | 4 ++-- settings_sample.py | 1 + urls.py | 13 ++++++++++--- 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/INSTALL b/INSTALL index 8b80cc112..06605ac6c 100644 --- a/INSTALL +++ b/INSTALL @@ -72,9 +72,16 @@ requires a migration:: MEDIA_ROOT = os.path.join(MODOBOA_DIR, '/static') MEDIA_URL = '/static/' - * Then, delete the following variables: STATIC_ROOTDIR and + * Add the following variable:: + + MODOBOA_WEBPATH = 'modoboa/' + + * Delete the following variables: STATIC_ROOTDIR and TEMPLATE_CONTEXT_PROCESSORS. + * Finally, add 'modoboa.lib.middleware.ExtControlMiddleware' to + MIDDLEWARE_CLASSES. + 0.8 -> 0.8.1 : project renamed. * First, rename your mailng folder to modoboa and copy all the diff --git a/extensions/__init__.py b/extensions/__init__.py index 1f3eedac0..6dca2dee2 100644 --- a/extensions/__init__.py +++ b/extensions/__init__.py @@ -7,7 +7,7 @@ from modoboa.admin.models import Extension def isinstalled(ext): return "modoboa.extensions.%s" % ext in settings.INSTALLED_APPS -def loadextensions(): +def loadextensions(prefix): basedir = "%s/extensions" % settings.MODOBOA_DIR result = [] for f in os.listdir(basedir): @@ -22,7 +22,7 @@ def loadextensions(): module.main.init() except Extension.DoesNotExist: pass - u = module.main.urls() + u = module.main.urls(prefix) if u == (): continue result += [u] diff --git a/extensions/amavis_quarantine/main.py b/extensions/amavis_quarantine/main.py index 35632f1f9..fd16676c2 100644 --- a/extensions/amavis_quarantine/main.py +++ b/extensions/amavis_quarantine/main.py @@ -37,8 +37,8 @@ def destroy(): events.unregister("UserMenuDisplay", menu) parameters.unregister_app("amavis_quarantine") -def urls(): - return (r'^modoboa/quarantine/', +def urls(prefix): + return (r'^%squarantine/' % prefix, include('modoboa.extensions.amavis_quarantine.urls')) def menu(**kwargs): diff --git a/extensions/postfix_autoreply/main.py b/extensions/postfix_autoreply/main.py index 999e85710..f4bd8ff89 100644 --- a/extensions/postfix_autoreply/main.py +++ b/extensions/postfix_autoreply/main.py @@ -41,8 +41,8 @@ def destroy(): events.unregister("UserMenuDisplay", menu) parameters.unregister_app("postfix_autoreply") -def urls(): - return (r'^modoboa/postfix_autoreply/', +def urls(prefix): + return (r'^%spostfix_autoreply/' % prefix, include('modoboa.extensions.postfix_autoreply.urls')) def menu(**kwargs): diff --git a/extensions/stats/main.py b/extensions/stats/main.py index 99703afbd..dfb1bf0bc 100644 --- a/extensions/stats/main.py +++ b/extensions/stats/main.py @@ -34,8 +34,8 @@ def init(): def destroy(): events.unregister("AdminMenuDisplay", menu) -def urls(): - return (r'^modoboa/stats/', +def urls(prefix): + return (r'^%sstats/' % prefix, include('modoboa.extensions.stats.urls')) def menu(**kwargs): diff --git a/extensions/webmail/main.py b/extensions/webmail/main.py index 82308ebb7..6dc90f303 100644 --- a/extensions/webmail/main.py +++ b/extensions/webmail/main.py @@ -64,8 +64,8 @@ def infos(): "description" : _("Simple IMAP webmail") } -def urls(): - return (r'^modoboa/webmail/', +def urls(prefix): + return (r'^%swebmail/' % prefix, include('modoboa.extensions.webmail.urls')) def menu(**kwargs): diff --git a/settings_sample.py b/settings_sample.py index 6ebd25ed1..5f87ddac1 100644 --- a/settings_sample.py +++ b/settings_sample.py @@ -5,6 +5,7 @@ DEBUG = False TEMPLATE_DEBUG = DEBUG MODOBOA_DIR = os.path.dirname(__file__) +MODOBOA_WEBPATH = "modoboa/" ADMINS = ( # ('Your Name', 'your_email@domain.com'), diff --git a/urls.py b/urls.py index c74fea294..5bccfd84c 100644 --- a/urls.py +++ b/urls.py @@ -3,14 +3,21 @@ from django.conf import settings from modoboa.extensions import * from modoboa.lib import parameters +prefix = settings.MODOBOA_WEBPATH +if prefix != "": + if prefix.startswith("/"): + prefix = prefix[1:] + if not prefix.endswith("/"): + prefix += "/" + urlpatterns = patterns('', - (r'^modoboa/admin/', include('modoboa.admin.urls')), - (r'^modoboa/userprefs/', include('modoboa.userprefs.urls')), + (r'^%sadmin/' % prefix, include('modoboa.admin.urls')), + (r'^%suserprefs/' % prefix, include('modoboa.userprefs.urls')), (r'^accounts/login/$', 'modoboa.auth.views.dologin'), (r'^accounts/logout/$', 'modoboa.auth.views.dologout'), (r'^jsi18n/$', 'django.views.i18n.javascript_catalog', {'packages': ('modoboa',),}), - *loadextensions() + *loadextensions(prefix) ) if settings.DEBUG: