wip: Big refacto

Top menu is back.
This commit is contained in:
Antoine Nguyen
2013-08-16 16:47:45 +02:00
parent 1155532365
commit 1fcb3a4bb1
3 changed files with 33 additions and 19 deletions
+1 -14
View File
@@ -11,21 +11,8 @@ register = template.Library()
@register.simple_tag
def core_menu(selection, user):
entries = []
# if user.has_perm("admin.view_domains"):
# entries += [
# {"name" : "domains",
# "url" : reverse("modoboa.admin.views.domains"),
# "label" : _("Domains")}
# ]
entries += \
entries = \
events.raiseQueryEvent("AdminMenuDisplay", "top_menu", user)
# if user.has_perm("admin.add_user") or user.has_perm("admin.add_alias"):
# entries += [
# {"name" : "identities",
# "url" : reverse("modoboa.admin.views.identities"),
# "label" : _("Identities")},
# ]
if user.is_superuser:
entries += [
{"name": "settings",
+23
View File
@@ -1,5 +1,6 @@
# coding: utf-8
from django.utils.translation import ugettext as _, ugettext_lazy
from django.core.urlresolvers import reverse
from modoboa.core.extensions import ModoExtension, exts_pool
from modoboa.lib import parameters, events
@@ -19,3 +20,25 @@ class AdminConsole(ModoExtension):
parameters.unregister()
exts_pool.register_extension(AdminConsole, show=False)
@events.observe("AdminMenuDisplay")
def menu(target, user):
if target != "top_menu":
print "rien"
return []
entries = []
if user.has_perm("admin.view_domains"):
entries += [
{"name" : "domains",
"url" : reverse("modoboa.extensions.admin.views.domain.domains"),
"label" : _("Domains")}
]
if user.has_perm("admin.add_user") or user.has_perm("admin.add_alias"):
entries += [
{"name" : "identities",
"url" : reverse("modoboa.extensions.admin.views.identity.identities"),
"label" : _("Identities")},
]
print entries
return entries
+9 -5
View File
@@ -127,14 +127,18 @@ class observe(object):
@wraps(f)
def wrapped_f(*args):
if extname:
from modoboa.admin.models import Extension
from modoboa.core.models import Extension
from modoboa.core.extensions import exts_pool
try:
ext = Extension.objects.get(name=extname)
except Extension.DoesNotExist:
return []
if not ext.enabled:
return []
elif not modname in settings.INSTALLED_APPS:
extdef = exts_pool.get_extension(extname)
if not extdef.always_active:
return []
else:
if not ext.enabled:
return []
elif not modname in settings.MODOBOA_APPS:
return []
return f(*args)