From a35925726cb32bc5908947d6d0c3d9696790096e Mon Sep 17 00:00:00 2001 From: Antoine Nguyen Date: Tue, 1 Nov 2011 09:58:35 +0100 Subject: [PATCH] Catch the DatabaseError exception in order to allow the syncdb execution. fix #184 --- admin/__init__.py | 14 +++++++++++++- userprefs/views.py | 1 - 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/admin/__init__.py b/admin/__init__.py index 9ca20e031..1003d4e9d 100644 --- a/admin/__init__.py +++ b/admin/__init__.py @@ -2,6 +2,7 @@ from modoboa.lib import parameters, events from django.utils.translation import ugettext as _ +from django.db.utils import DatabaseError from models import Extension parameters.register_admin("CREATE_DIRECTORIES", type="list_yesno", deflt="yes", @@ -23,11 +24,22 @@ parameters.register_admin("PASSWORD_SCHEME", type="list", deflt="crypt", parameters.register_admin("ITEMS_PER_PAGE", type="int", deflt=30, help=_("Number of displayed items per page")) +# +# Quick fix for #184 +# +# Just catch the DatabaseError exception raised when runnning the +# first ``syncdb`` command. +# +try: + enabled_extensions = list(Extension.objects.filter(enabled=True)) +except DatabaseError: + enabled_extensions = [] + parameters.register_admin("DEFAULT_TOP_REDIRECTION", type="list", deflt="admin", app="general", values=sorted([("admin", "admin"), ("userprefs", "userprefs")] \ + map(lambda ext: (ext.name, ext.name), - Extension.objects.filter(enabled=True))), + enabled_extensions)), help=_("The default redirection used when no application is specified")) def unset_default_topredirection(**kwargs): diff --git a/userprefs/views.py b/userprefs/views.py index 7fd8e2546..cab96d0c5 100644 --- a/userprefs/views.py +++ b/userprefs/views.py @@ -74,7 +74,6 @@ def setforward(request, tplname="userprefs/setforward.html"): @login_required def preferences(request): apps = sorted(parameters._params.keys()) - print request.LANGUAGE_CODE gparams = [] for app in apps: if not len(parameters._params[app]['U']):