diff --git a/apps/common/__init__.py b/apps/common/__init__.py index c94d7a3845..76db2fc4e8 100644 --- a/apps/common/__init__.py +++ b/apps/common/__init__.py @@ -7,15 +7,18 @@ from django.contrib.auth import models as auth_models from django.contrib.auth.management import create_superuser from django.dispatch import receiver from django.db.models.signals import post_syncdb +from django.conf import settings from navigation.api import bind_links, register_top_menu, Link +from project_setup.api import register_setup +from project_tools.api import register_tool from .conf.settings import (AUTO_CREATE_ADMIN, AUTO_ADMIN_USERNAME, AUTO_ADMIN_PASSWORD, TEMPORARY_DIRECTORY) from .conf import settings as common_settings from .utils import validate_path from .links import (password_change_view, current_user_details, - current_user_edit, about_view, license_view) + current_user_edit, about_view, license_view, admin_site, sentry) bind_links(['about_view', 'license_view'], [about_view, license_view], menu_name='secondary_menu') bind_links(['current_user_details', 'current_user_edit', 'password_change_view'], [current_user_details, current_user_edit, password_change_view], menu_name='secondary_menu') @@ -49,3 +52,9 @@ def create_superuser_processor(sender, **kwargs): if (validate_path(TEMPORARY_DIRECTORY) == False) or (not TEMPORARY_DIRECTORY): setattr(common_settings, 'TEMPORARY_DIRECTORY', tempfile.mkdtemp()) + +if 'django.contrib.admin' in settings.INSTALLED_APPS: + register_setup(admin_site) + +if 'sentry' in settings.INSTALLED_APPS: + register_tool(sentry) diff --git a/apps/common/links.py b/apps/common/links.py index 7fe8457d74..3180001f1c 100644 --- a/apps/common/links.py +++ b/apps/common/links.py @@ -6,8 +6,15 @@ from navigation.api import Link def has_usable_password(context): return context['request'].user.has_usable_password + +def is_superuser(context): + return context['request'].user.is_staff or context['request'].user.is_superuser + + password_change_view = Link(text=_(u'change password'), view='password_change_view', sprite='computer_key', condition=has_usable_password) current_user_details = Link(text=_(u'user details'), view='current_user_details', sprite='vcard') current_user_edit = Link(text=_(u'edit details'), view='current_user_edit', sprite='vcard_edit') about_view = Link(text=_('about'), view='about_view', sprite='information') license_view = Link(text=_('license'), view='license_view', sprite='script') +sentry = Link(text=_(u'sentry'), view='sentry', sprite='bug', icon='bug.png', condition=is_superuser) +admin_site = Link(text=_(u'admin site'), view='admin:index', sprite='keyboard', icon='keyboard.png', condition=is_superuser) diff --git a/apps/main/__init__.py b/apps/main/__init__.py index 3c8c2a8a99..96d4328c47 100644 --- a/apps/main/__init__.py +++ b/apps/main/__init__.py @@ -9,7 +9,7 @@ from project_tools.api import register_tool from .conf.settings import SIDE_BAR_SEARCH, DISABLE_HOME_VIEW from .utils import register_multi_items_links -from .links import maintenance_menu, statistics, diagnostics, sentry, admin_site +from .links import maintenance_menu, statistics, diagnostics __author__ = 'Roberto Rosario' __copyright__ = 'Copyright 2011 Roberto Rosario' @@ -47,14 +47,9 @@ def get_version(): __version__ = get_version() -if 'django.contrib.admin' in settings.INSTALLED_APPS: - register_setup(admin_site) register_tool(maintenance_menu) register_tool(statistics) register_tool(diagnostics) -if 'sentry' in settings.INSTALLED_APPS: - register_tool(sentry) - register_multi_items_links()