diff --git a/modoboa/core/templatetags/core_tags.py b/modoboa/core/templatetags/core_tags.py
index b8ede2953..a0abf2dad 100644
--- a/modoboa/core/templatetags/core_tags.py
+++ b/modoboa/core/templatetags/core_tags.py
@@ -19,7 +19,7 @@ def core_menu(selection, user):
entries += [
{"name": "settings",
"label": _("Modoboa"),
- "url": reverse("modoboa.core.views.admin.viewsettings")}
+ "url": reverse("core:index")}
]
if not len(entries):
@@ -79,14 +79,14 @@ def user_menu(user, selection):
{"name": "settings",
"img": "glyphicon glyphicon-list",
"label": _("Settings"),
- "url": reverse("modoboa.core.views.user.index")}
+ "url": reverse("core:user_index")}
]}
]
entries[0]["menu"] += \
events.raiseQueryEvent("UserMenuDisplay", "options_menu", user) \
+ [{"name": "logout",
- "url": reverse("modoboa.core.views.auth.dologout"),
+ "url": reverse("core:logout"),
"label": _("Logout"),
"img": "glyphicon glyphicon-off"}]
diff --git a/modoboa/core/tests.py b/modoboa/core/tests.py
index f21c4b34c..7f2e1ac88 100644
--- a/modoboa/core/tests.py
+++ b/modoboa/core/tests.py
@@ -25,7 +25,7 @@ class ProfileTestCase(ModoTestCase):
* The default admin changes his password (no associated Mailbox)
* A normal user changes his password
"""
- self.ajax_post(reverse("modoboa.core.views.user.profile"),
+ self.ajax_post(reverse("core:user_profile"),
{"oldpassword": "password",
"newpassword": "titi", "confirmation": "titi"})
self.clt.logout()
@@ -38,7 +38,7 @@ class ProfileTestCase(ModoTestCase):
)
self.ajax_post(
- reverse("modoboa.core.views.user.profile"),
+ reverse("core:user_profile"),
{"oldpassword": "toto",
"newpassword": "tutu", "confirmation": "tutu"}
)
diff --git a/modoboa/core/urls.py b/modoboa/core/urls.py
index 5db970d7c..a35fd4242 100644
--- a/modoboa/core/urls.py
+++ b/modoboa/core/urls.py
@@ -4,23 +4,31 @@ from django.conf.urls import patterns, url
urlpatterns = patterns(
'',
- (r'^accounts/login/$', 'modoboa.core.views.auth.dologin'),
- (r'^accounts/logout/$', 'modoboa.core.views.auth.dologout'),
+ url(r'^accounts/login/$', 'modoboa.core.views.auth.dologin',
+ name="login"),
+ url(r'^accounts/logout/$', 'modoboa.core.views.auth.dologout',
+ name="logout"),
url(r'^core/$', 'modoboa.core.views.admin.viewsettings',
- name="admin_index"),
- (r'^core/parameters/$', 'modoboa.core.views.admin.viewparameters'),
- (r'^core/parameters/save/$', 'modoboa.core.views.admin.saveparameters'),
- (r'^core/extensions/$', 'modoboa.core.views.admin.viewextensions'),
- (r'^core/extensions/save/$', 'modoboa.core.views.admin.saveextensions'),
+ name="index"),
+ url(r'^core/parameters/$', 'modoboa.core.views.admin.viewparameters',
+ name="parameter_listl"),
+ url(r'^core/parameters/save/$', 'modoboa.core.views.admin.saveparameters',
+ name="parameter_save"),
+ url(r'^core/extensions/$', 'modoboa.core.views.admin.viewextensions',
+ name="extension_list"),
+ url(r'^core/extensions/save/$', 'modoboa.core.views.admin.saveextensions',
+ name="extension_save"),
url(r'^core/info/$', 'modoboa.core.views.admin.information',
name="information"),
- (r'^core/logs/$', 'modoboa.core.views.admin.logs'),
+ url(r'^core/logs/$', 'modoboa.core.views.admin.logs', name="log_list"),
url(r'^core/top_notifications/check/$',
'modoboa.core.views.admin.check_top_notifications',
- name='check_top_notifications'),
+ name='top_notifications_check'),
- (r'^user/$', 'modoboa.core.views.user.index'),
- (r'^user/preferences/$', 'modoboa.core.views.user.preferences'),
- (r'^user/profile/$', 'modoboa.core.views.user.profile'),
+ url(r'^user/$', 'modoboa.core.views.user.index', name="user_index"),
+ url(r'^user/preferences/$', 'modoboa.core.views.user.preferences',
+ name="user_preferences"),
+ url(r'^user/profile/$', 'modoboa.core.views.user.profile',
+ name="user_profile"),
)
diff --git a/modoboa/core/views/auth.py b/modoboa/core/views/auth.py
index 878b1cf81..d49e77211 100644
--- a/modoboa/core/views/auth.py
+++ b/modoboa/core/views/auth.py
@@ -36,14 +36,17 @@ def dologin(request):
nextlocation = request.POST.get("next", None)
if nextlocation is None or nextlocation == "None":
if user.group == "SimpleUsers":
- nextlocation = reverse("modoboa.lib.webutils.topredirection")
+ nextlocation = reverse("topredirection")
else:
- nextlocation = reverse("domains")
+ nextlocation = reverse("admin:domain_list")
return HttpResponseRedirect(nextlocation)
- error = _("Your username and password didn't match. Please try again.")
- logger.warning("Failed connection attempt from '%(addr)s' as user '%(user)s'" \
- % {"addr": request.META["REMOTE_ADDR"],
- "user": form.cleaned_data["username"]})
+ error = _(
+ "Your username and password didn't match. Please try again.")
+ logger.warning(
+ "Failed connection attempt from '%(addr)s' as user '%(user)s'" \
+ % {"addr": request.META["REMOTE_ADDR"],
+ "user": form.cleaned_data["username"]}
+ )
nextlocation = request.POST.get("next", None)
httpcode = 401
@@ -68,4 +71,4 @@ def dologout(request):
logger = logging.getLogger("modoboa.auth")
logger.info(_("User '%s' logged out" % request.user.username))
logout(request)
- return HttpResponseRedirect(reverse(dologin))
+ return HttpResponseRedirect(reverse("core:login"))
diff --git a/modoboa/demo/__init__.py b/modoboa/demo/__init__.py
index ca8931b96..b179d6de3 100755
--- a/modoboa/demo/__init__.py
+++ b/modoboa/demo/__init__.py
@@ -20,10 +20,10 @@ def menu(target, user):
"menu": [
{"name": "sendvirus",
"label": _("Send virus"),
- "url": reverse("modoboa.demo.views.send_virus")},
+ "url": reverse("demo:virus_send")},
{"name": "sendspam",
"label": _("Send spam"),
- "url": reverse("modoboa.demo.views.send_spam")}
+ "url": reverse("demo:spam_send")}
]
}
]
diff --git a/modoboa/demo/urls.py b/modoboa/demo/urls.py
index 641080a0a..eb8650107 100644
--- a/modoboa/demo/urls.py
+++ b/modoboa/demo/urls.py
@@ -1,7 +1,9 @@
# coding: utf-8
-from django.conf.urls import patterns
+from django.conf.urls import patterns, url
-urlpatterns = patterns('modoboa.demo.views',
- (r'^sendvirus/$', 'send_virus'),
- (r'^sendspam/$', 'send_spam'),
+urlpatterns = patterns(
+ 'modoboa.demo.views',
+
+ url(r'^sendvirus/$', 'send_virus', name="virus_send"),
+ url(r'^sendspam/$', 'send_spam', name="spam_send"),
)
diff --git a/modoboa/demo/views.py b/modoboa/demo/views.py
index 89a88f9f6..90c5e5dc1 100755
--- a/modoboa/demo/views.py
+++ b/modoboa/demo/views.py
@@ -11,9 +11,10 @@ from modoboa.extensions.admin.lib import needs_mailbox
@login_required
@needs_mailbox()
def send_virus(request):
- status, error = sendmail_fromfile("virus@example.net", request.user.username,
- os.path.join(settings.MODOBOA_DIR,
- "tmp/virus.msg"))
+ status, error = sendmail_fromfile(
+ "virus@example.net", request.user.username,
+ os.path.join(settings.MODOBOA_DIR, "tmp/virus.msg")
+ )
if status:
return render_to_json_response(_("Message sent"))
return render_to_json_response(error, status=500)
@@ -22,7 +23,8 @@ def send_virus(request):
@login_required
@needs_mailbox()
def send_spam(request):
- status, error = sendmail_simple("spam@example.net", request.user.username, content="""
+ status, error = sendmail_simple(
+ "spam@example.net", request.user.username, content="""
This is the GTUBE, the
Generic
Test for
diff --git a/modoboa/extensions/admin/__init__.py b/modoboa/extensions/admin/__init__.py
index acab3ea18..f71dca1a2 100644
--- a/modoboa/extensions/admin/__init__.py
+++ b/modoboa/extensions/admin/__init__.py
@@ -47,7 +47,9 @@ class AdminConsole(ModoExtension):
name = "admin"
label = ugettext_lazy("Administration console")
version = "1.0"
- description = ugettext_lazy("Web based console to manage domains, accounts and aliases")
+ description = ugettext_lazy(
+ "Web based console to manage domains, accounts and aliases"
+ )
always_active = True
def load(self):
@@ -63,8 +65,12 @@ exts_pool.register_extension(AdminConsole, show=False)
@events.observe("ExtraUprefsRoutes")
def extra_routes():
- return [(r'^user/forward/',
- 'modoboa.extensions.admin.views.user.forward'), ]
+ from django.conf.urls import url
+ return [
+ url(r'^user/forward/',
+ 'modoboa.extensions.admin.views.user.forward',
+ name="user_forward"),
+ ]
@events.observe("AdminMenuDisplay")
@@ -75,13 +81,13 @@ def admin_menu(target, user):
if user.has_perm("admin.view_domains"):
entries += [
{"name" : "domains",
- "url" : reverse("modoboa.extensions.admin.views.domain.domains"),
+ "url" : reverse("admin:domain_list"),
"label" : _("Domains")}
]
if user.has_perm("core.add_user") or user.has_perm("admin.add_alias"):
entries += [
{"name" : "identities",
- "url" : reverse("modoboa.extensions.admin.views.identity.identities"),
+ "url" : reverse("admin:identity_list"),
"label" : _("Identities")},
]
return entries
diff --git a/modoboa/extensions/admin/forms/account.py b/modoboa/extensions/admin/forms/account.py
index b2964c193..f6fc9b4d3 100644
--- a/modoboa/extensions/admin/forms/account.py
+++ b/modoboa/extensions/admin/forms/account.py
@@ -36,8 +36,6 @@ class AccountFormGeneral(forms.ModelForm):
label=ugettext_lazy("Confirmation"),
help_text=ugettext_lazy("Enter the same password as above, for verification.")
)
- first_name = forms.CharField()
- last_name = forms.CharField()
class Meta:
model = User
@@ -373,7 +371,7 @@ class AccountForm(TabForms):
context.update({
'title': account.username,
'formid': 'accountform',
- 'action': reverse("edit_account", args=[account.id]),
+ 'action': reverse("admin:account_change", args=[account.id]),
})
def check_perms(self, account):
@@ -438,7 +436,7 @@ class AccountWizard(WizardForm):
def extra_context(self, context):
context.update({
'title': _("New account"),
- 'action': reverse("new_account"),
+ 'action': reverse("admin:account_add"),
'formid': 'newaccount_form'
})
diff --git a/modoboa/extensions/admin/forms/domain.py b/modoboa/extensions/admin/forms/domain.py
index 1834902eb..ac64ee087 100644
--- a/modoboa/extensions/admin/forms/domain.py
+++ b/modoboa/extensions/admin/forms/domain.py
@@ -283,7 +283,7 @@ class DomainForm(TabForms):
domadmins = [u for u in domadmins if u.group == "DomainAdmins"]
context.update({
"title": domain.name,
- "action": reverse("edit_domain", args=[domain.pk]),
+ "action": reverse("admin:domain_change", args=[domain.pk]),
"formid": "domform",
"domain": domain,
"domadmins": domadmins
@@ -334,7 +334,7 @@ class DomainWizard(WizardForm):
def extra_context(self, context):
context.update({
"title": _("New domain"),
- "action": reverse("new_domain"),
+ "action": reverse("admin:domain_add"),
"formid": "domform"
})
diff --git a/modoboa/extensions/admin/templates/admin/forward.html b/modoboa/extensions/admin/templates/admin/forward.html
index 432dff59e..3146beea6 100644
--- a/modoboa/extensions/admin/templates/admin/forward.html
+++ b/modoboa/extensions/admin/templates/admin/forward.html
@@ -1,8 +1,9 @@
{% load i18n form_tags %}{% load url from future %}
{% trans "Forward" %} {% trans "Automatically forward emails to another address" %}
-