#48 : rollback, this is not trivial.

This commit is contained in:
tonio
2010-05-26 16:50:09 +02:00
parent f9f2a9e546
commit 67c66ed649
14 changed files with 74 additions and 198 deletions
+12 -50
View File
@@ -1,61 +1,23 @@
# -*- coding: utf-8 -*-
import os
import re
extensions = {}
from django.conf import settings
def loadextensions():
from admin.models import Extension
from django.template import add_to_builtins
exts = Extension.objects.filter(enabled=True)
for ext in exts:
tagsdir = "extensions/%s/templatetags" % ext.name
if os.path.isdir("extensions/%s/templatetags" % ext.name):
for f in os.listdir(tagsdir):
if f in ["__init__.py", "__init__.pyc"]:
continue
parts = f.split('.')
if len(parts) == 2 and parts[1] == "py":
add_to_builtins("extensions.%s.templatetags.%s" \
% (ext.name, parts[0]))
module = __import__(ext.name, globals(), locals(), ['main'])
module.main.init()
globals()['extensions'][ext] = module
def loadmenus():
basedir = "%s/extensions" % settings.MAILNG_DIR
result = []
for name, mod in extensions.iteritems():
u = mod.main.urls()
for f in os.listdir(basedir):
if not os.path.isdir("%s/%s" % (basedir, f)):
continue
if not isenabled(f):
continue
module = __import__(f, globals(), locals(), ['main'])
module.main.init()
u = module.main.urls()
if u == ():
continue
result += (u,)
result += [u]
return result
def isenabled(ext):
return extensions.has_key(ext)
def list_extensions():
basedir = "extensions"
result = []
for d in os.listdir(basedir):
if not os.path.isdir("%s/%s" % (basedir, d)):
continue
isvalid = True
for f in ['urls.py', 'main.py', '__init__.py']:
if not os.path.exists("%s/%s/%s" % (basedir, d, f)):
isvalid = False
break
if isvalid:
module = __import__(d, globals(), locals(), ['main'])
try:
infos = module.main.infos()
infos["id"] = d
if os.path.isdir("%s/%s/templates" % (basedir, d)):
infos["templates"] = True
else:
infos["templates"] = False
result += [infos]
except AttributeError:
pass
return result
return "mailng.extensions.%s" % ext in settings.INSTALLED_APPS
+1 -1
View File
@@ -44,7 +44,7 @@ def menu(**kwargs):
return [
{"name" : "quarantine",
"label" : _("Quarantine"),
"url" : reverse(views.index),
"url" : reverse(views.index, urlconf='mailng.extensions.amavis_quarantine.exturls'),
"img" : "/static/pics/quarantine.png"}
]
return []
+12 -8
View File
@@ -1,12 +1,16 @@
from django.conf.urls.defaults import *
extpatterns = [
(r'^$', 'index'),
(r'^listing/$', '_listing'),
(r'^getmailcontent/(?P<mail_id>[\w\-\+]+)/$', 'getmailcontent'),
(r'^(?P<mail_id>[\w\-\+]+)/headers/$', 'viewheaders'),
(r'^process/$', 'process'),
(r'^delete/(?P<mail_id>[\w\-\+]+)/$', 'delete'),
(r'^release/(?P<mail_id>[\w\-\+]+)/$', 'release'),
(r'^(?P<mail_id>[\w\-\+]+)/$', 'viewmail')
]
urlpatterns = patterns('mailng.extensions.amavis_quarantine.views',
(r'^$', 'index'),
(r'^listing/$', '_listing'),
(r'^getmailcontent/(?P<mail_id>[\w\-\+]+)/$', 'getmailcontent'),
(r'^(?P<mail_id>[\w\-\+]+)/headers/$', 'viewheaders'),
(r'^process/$', 'process'),
(r'^delete/(?P<mail_id>[\w\-\+]+)/$', 'delete'),
(r'^release/(?P<mail_id>[\w\-\+]+)/$', 'release'),
(r'^(?P<mail_id>[\w\-\+]+)/$', 'viewmail'),
*extpatterns
)
+1 -1
View File
@@ -46,7 +46,7 @@ def menu(**kwargs):
return [
{"name" : "webmail",
"label" : _("Webmail"),
"url" : reverse(views.index),
"url" : reverse(views.index, urlconf='mailng.urls'),
"img" : "/static/pics/webmail.png"}
]