mirror of
https://github.com/jwinterm/modoboa.git
synced 2026-10-24 06:48:35 +02:00
#48 : rollback, this is not trivial.
This commit is contained in:
+12
-50
@@ -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
|
||||
|
||||
@@ -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 []
|
||||
|
||||
@@ -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
|
||||
)
|
||||
|
||||
@@ -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"}
|
||||
]
|
||||
|
||||
|
||||
Reference in New Issue
Block a user