From f9f2a9e54676d8d50247bffcf9ad26f1a4a22ede Mon Sep 17 00:00:00 2001 From: tonio Date: Tue, 25 May 2010 18:31:11 +0200 Subject: [PATCH] Added fixtures for initial admin data. perms object is no longer passed to builtins or filters, we use user instead (it seems that perms content is different with Django 1.2) #48 : I think I've found a way to include templatetags dynamically, using add_to_builtins. --- admin/fixtures/initial_data.json | 1 + admin/templatetags/admin_extras.py | 24 ++-- extensions/__init__.py | 10 ++ .../amavis_quarantine/templates/index.html | 1 - .../amavis_quarantine/templates/viewmail.html | 3 +- extensions/stats/templates/adminindex.html | 3 +- extensions/stats/templates/index.html | 2 +- extensions/webmail/templates/folders.html | 1 - extensions/webmail/templates/index.html | 1 - extensions/webmail/templatetags/webextras.py | 12 +- templates/admin/aliases.html | 2 +- templates/admin/domains.html | 2 +- templates/admin/extensions.html | 2 +- templates/admin/mailboxes.html | 2 +- templates/admin/parameters.html | 2 +- templates/admin/permissions.html | 2 +- templates/layout.html | 124 ------------------ templates/nlayout.html | 8 +- userprefs/templatetags/uprefs_extras.py | 10 +- 19 files changed, 48 insertions(+), 164 deletions(-) create mode 100644 admin/fixtures/initial_data.json delete mode 100644 templates/layout.html diff --git a/admin/fixtures/initial_data.json b/admin/fixtures/initial_data.json new file mode 100644 index 000000000..2cdb5587f --- /dev/null +++ b/admin/fixtures/initial_data.json @@ -0,0 +1 @@ +[{"pk": 1, "model": "auth.group", "fields": {"name": "DomainAdmins", "permissions": [37, 33, 38, 34, 39, 35, 40, 31, 36]}}] diff --git a/admin/templatetags/admin_extras.py b/admin/templatetags/admin_extras.py index 4fff9c50d..62f7fe16e 100644 --- a/admin/templatetags/admin_extras.py +++ b/admin/templatetags/admin_extras.py @@ -12,7 +12,7 @@ genders = { } @register.simple_tag -def domain_menu(domain_id, selection, perms): +def domain_menu(domain_id, selection, user): entries = [ {"name" : "", "url" : reverse(admin.views.newmailbox, args=[domain_id]), @@ -30,7 +30,7 @@ def domain_menu(domain_id, selection, perms): "label" : _("Aliases")}, ] - if perms.user.has_perm("admin.change_domain"): + if user.has_perm("admin.change_domain"): entries += [ {"name" : "", "url" : reverse(admin.views.editdomain, args=[domain_id]), @@ -40,13 +40,13 @@ def domain_menu(domain_id, selection, perms): "rel" : "{handler:'iframe',size:{x:300,y:180}}"} ] entries += events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_bar", - perms=perms, domain=domain_id) + user=user, domain=domain_id) return render_to_string('common/menu.html', {"selection" : selection, "entries" : entries, - "perms" : perms}) + "user" : user}) @register.simple_tag -def settings_menu(selection, perms): +def settings_menu(selection, user): entries = [ {"name" : "permissions", "url" : reverse(admin.views.settings), @@ -68,10 +68,10 @@ def settings_menu(selection, perms): ] return render_to_string('common/menu.html', {"selection" : selection, "entries" : entries, - "perms" : perms}) + "user" : user}) @register.simple_tag -def domains_menu(selection, perms): +def domains_menu(selection, user): entries = [ {"name" : "newdomain", "url" : reverse(admin.views.newdomain), @@ -85,17 +85,17 @@ def domains_menu(selection, perms): "img" : "/static/pics/domains.png"} ] entries += events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_box", - perms=perms) + user=user) return render_to_string('common/menu.html', {"entries" : entries, "selection" : selection, - "perms" : perms}) + "user" : user}) @register.simple_tag -def loadadminextmenu(perms): +def loadadminextmenu(user): menu = events.raiseQueryEvent("AdminMenuDisplay", target="admin_menu_box", - perms=perms) + user=user) return render_to_string('common/menulist.html', - {"entries" : menu, "perms" : perms}) + {"entries" : menu, "user" : user}) @register.simple_tag def param(app, definition): diff --git a/extensions/__init__.py b/extensions/__init__.py index eb7fb41f5..4cccb3b59 100644 --- a/extensions/__init__.py +++ b/extensions/__init__.py @@ -6,9 +6,19 @@ extensions = {} 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 diff --git a/extensions/amavis_quarantine/templates/index.html b/extensions/amavis_quarantine/templates/index.html index 2889f2236..878e0549e 100644 --- a/extensions/amavis_quarantine/templates/index.html +++ b/extensions/amavis_quarantine/templates/index.html @@ -1,6 +1,5 @@ {% extends "common/email_listing.html" %} {% load i18n %} -{% load amextras %} {% block css %} thead tr { position: relative; diff --git a/extensions/amavis_quarantine/templates/viewmail.html b/extensions/amavis_quarantine/templates/viewmail.html index 351418ee3..cf5811a2c 100644 --- a/extensions/amavis_quarantine/templates/viewmail.html +++ b/extensions/amavis_quarantine/templates/viewmail.html @@ -34,8 +34,7 @@ window.addEvent("domready", function() { {% endblock %} {% block middletitle %}{% trans "Mail content" %}{% endblock %} {% block menu %} - {% load amextras %} - {% viewm_menu "" mail_id page_id perms %} + {% viewm_menu "" mail_id page_id user %} {% endblock %} {% block content %}
diff --git a/extensions/stats/templates/adminindex.html b/extensions/stats/templates/adminindex.html index a01b6f8d7..11b6ef8cd 100644 --- a/extensions/stats/templates/adminindex.html +++ b/extensions/stats/templates/adminindex.html @@ -1,6 +1,5 @@ {% extends "nlayout.html" %} {% load i18n %} -{% load stats_extra %} {% load admin_extras %} {% block html_head %}