Add app url namespacing to the common and main apps, fix missing namespace in the registration app, remove explict reverse_lazy for the LOGIN_URL and LOGIN_REDIRECT_URL these are expected to be views or URLs (failover)

This commit is contained in:
Roberto Rosario
2014-09-09 03:51:23 -04:00
parent 7dfacc624c
commit f5bef4b52d
11 changed files with 26 additions and 27 deletions

View File

@@ -24,8 +24,8 @@ from .utils import validate_path
logger = logging.getLogger(__name__)
register_links(['current_user_details', 'current_user_edit', 'password_change_view'], [link_current_user_details, link_current_user_edit, link_password_change], menu_name='secondary_menu')
register_links(['about_view', 'license_view', 'form_view'], [link_about, link_license], menu_name='secondary_menu')
register_links(['common:current_user_details', 'common:current_user_edit', 'common:password_change_view'], [link_current_user_details, link_current_user_edit, link_password_change], menu_name='secondary_menu')
register_links(['common:about_view', 'common:license_view', 'registration:form_view'], [link_about, link_license], menu_name='secondary_menu')
register_top_menu('about', link_about, position=-1)

View File

@@ -7,9 +7,9 @@ def has_usable_password(context):
return context['request'].user.has_usable_password
link_password_change = {'text': _(u'change password'), 'view': 'password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password}
link_current_user_details = {'text': _(u'user details'), 'view': 'current_user_details', 'famfam': 'vcard'}
link_current_user_edit = {'text': _(u'edit details'), 'view': 'current_user_edit', 'famfam': 'vcard_edit'}
link_password_change = {'text': _(u'change password'), 'view': 'common:password_change_view', 'famfam': 'computer_key', 'condition': has_usable_password}
link_current_user_details = {'text': _(u'user details'), 'view': 'common:current_user_details', 'famfam': 'vcard'}
link_current_user_edit = {'text': _(u'edit details'), 'view': 'common:current_user_edit', 'famfam': 'vcard_edit'}
link_about = {'text': _(u'about'), 'view': 'about_view', 'famfam': 'information'}
link_license = {'text': _(u'license'), 'view': 'license_view', 'famfam': 'script'}
link_about = {'text': _(u'about'), 'view': 'common:about_view', 'famfam': 'information'}
link_license = {'text': _(u'license'), 'view': 'common:license_view', 'famfam': 'script'}

View File

@@ -4,10 +4,11 @@ import re
from django.http import HttpResponseRedirect
from django.conf import settings
from django.core.urlresolvers import reverse
from ..conf.settings import ALLOW_ANONYMOUS_ACCESS
EXEMPT_URLS = [re.compile(settings.LOGIN_URL.lstrip('/'))]
EXEMPT_URLS = [re.compile(reverse(settings.LOGIN_URL).lstrip('/'))]
if hasattr(settings, 'LOGIN_EXEMPT_URLS'):
EXEMPT_URLS += [re.compile(expr) for expr in settings.LOGIN_EXEMPT_URLS]
@@ -34,4 +35,4 @@ class LoginRequiredMiddleware:
if not request.user.is_authenticated():
path = request.path_info.lstrip('/')
if not any(m.match(path) for m in EXEMPT_URLS):
return HttpResponseRedirect(settings.LOGIN_URL)
return HttpResponseRedirect(reverse(settings.LOGIN_URL))

View File

@@ -181,7 +181,7 @@ def current_user_edit(request):
Allow an user to edit his own details
"""
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('current_user_details'))))
next = request.POST.get('next', request.GET.get('next', request.META.get('HTTP_REFERER', reverse('common:current_user_details'))))
if request.method == 'POST':
form = UserForm(instance=request.user, data=request.POST)
@@ -245,7 +245,7 @@ def password_change_view(request):
request,
extra_context=context,
template_name='main/password_change_form.html',
post_change_redirect=reverse('password_change_done'),
post_change_redirect=reverse('common:password_change_done'),
)

View File

@@ -11,7 +11,7 @@ from .conf.settings import DISABLE_HOME_VIEW
from .links import admin_site, diagnostics, maintenance_menu, sentry
if not DISABLE_HOME_VIEW:
register_top_menu('home', link={'text': _(u'home'), 'view': 'home', 'famfam': 'house'}, position=0)
register_top_menu('home', link={'text': _(u'home'), 'view': 'main:home', 'famfam': 'house'}, position=0)
if 'django.contrib.admin' in settings.INSTALLED_APPS:
register_setup(admin_site)

View File

@@ -5,7 +5,7 @@ def is_superuser(context):
return context['request'].user.is_staff or context['request'].user.is_superuser
maintenance_menu = {'text': _(u'maintenance'), 'view': 'maintenance_menu', 'famfam': 'wrench', 'icon': 'wrench.png'}
diagnostics = {'text': _(u'diagnostics'), 'view': 'diagnostics', 'famfam': 'pill', 'icon': 'pill.png'}
sentry = {'text': _(u'sentry'), 'view': 'sentry', 'famfam': 'bug', 'icon': 'bug.png', 'condition': is_superuser}
maintenance_menu = {'text': _(u'maintenance'), 'view': 'main:maintenance_menu', 'famfam': 'wrench', 'icon': 'wrench.png'}
diagnostics = {'text': _(u'diagnostics'), 'view': 'main:diagnostics', 'famfam': 'pill', 'icon': 'pill.png'}
sentry = {'text': _(u'sentry'), 'view': 'main:sentry', 'famfam': 'bug', 'icon': 'bug.png', 'condition': is_superuser}
admin_site = {'text': _(u'admin site'), 'view': 'admin:index', 'famfam': 'keyboard', 'icon': 'keyboard.png', 'condition': is_superuser}

View File

@@ -148,7 +148,7 @@
{% else %}
{% if not web_theme_hide_menus %}
<div id="header">
<h1><a href="{% url 'home' %}">{% project_name %}{% if debug %} {% trans "(DEBUG)" %}{% endif %} - {% registered_name %}</a></h1>
<h1><a href="{% url 'main:home' %}">{% project_name %}{% if debug %} {% trans "(DEBUG)" %}{% endif %} - {% registered_name %}</a></h1>
<div id="main-navigation">
<ul class="wat-cf" style="width: 73%;">
{% get_top_menu_links %}
@@ -172,14 +172,14 @@
{% trans 'Anonymous' %}
{% else %}
{{ user.get_full_name|default:user }}
<a href="{% url 'current_user_details' %}" title="{% trans 'User details' %}"><span class="famfam active famfam-vcard"></span></a>
<a href="{% url 'common:current_user_details' %}" title="{% trans 'User details' %}"><span class="famfam active famfam-vcard"></span></a>
{% endif %}
</li>
{% get_setting "MIDDLEWARE_CLASSES" as middleware_classes %}
{% if 'django.middleware.locale.LocaleMiddleware' in middleware_classes %}
<li>
<form action="{% url 'set_language' %}" method="post">{% csrf_token %}
<form action="{% url 'common:set_language' %}" method="post">{% csrf_token %}
<select name="language" onchange="this.form.submit()">
{% for lang in LANGUAGES %}
<option value="{{ lang.0 }}" {% if lang.0 == LANGUAGE_CODE %}selected="selected"{% endif %}>{{ lang.0|language_name_local|capfirst }}</option>
@@ -189,7 +189,7 @@
</li>
{% endif %}
{% get_setting "LOGIN_URL" as login_url %}
<li><a class="logout" href="{% if not user.is_authenticated %}{% url 'login_view' %}?next=/{% else %}{% url 'logout_view' %}{% endif %}">{% if not user.is_authenticated %}{% trans 'Login' %}{% else %}{% trans 'Logout' %}{% endif %}</a></li>
<li><a class="logout" href="{% if not user.is_authenticated %}{% url 'common:login_view' %}?next=/{% else %}{% url 'common:logout_view' %}{% endif %}">{% if not user.is_authenticated %}{% trans 'Login' %}{% else %}{% trans 'Logout' %}{% endif %}</a></li>
</ul>
</div>
</div>

View File

@@ -15,7 +15,7 @@ from .conf.settings import DISABLE_HOME_VIEW
def home(request):
if DISABLE_HOME_VIEW:
return HttpResponseRedirect(reverse('document_list_recent'))
return HttpResponseRedirect(reverse('documents:document_list_recent'))
else:
return render_to_response('main/home.html', {},
context_instance=RequestContext(request))

View File

@@ -9,7 +9,7 @@ from navigation.api import register_links
from .links import form_view
from .models import RegistrationSingleton
register_links(['form_view', 'about_view', 'license_view'], [form_view], menu_name='secondary_menu')
register_links(['registration:form_view', 'common:about_view', 'common:license_view'], [form_view], menu_name='secondary_menu')
@receiver(post_migrate, dispatch_uid='create_registration_instance')

View File

@@ -140,8 +140,6 @@ USE_TZ = True
# Custom settings section
from django.core.urlresolvers import reverse_lazy
PROJECT_TITLE = 'Mayan EDMS'
PROJECT_NAME = 'mayan'
@@ -213,8 +211,8 @@ SENDFILE_BACKEND = 'sendfile.backends.simple'
# --------- Web theme ---------------
WEB_THEME_ENABLE_SCROLL_JS = False
# --------- Django -------------------
LOGIN_URL = reverse_lazy('login_view')
LOGIN_REDIRECT_URL = reverse_lazy('home')
LOGIN_URL = 'common:login_view'
LOGIN_REDIRECT_URL = 'main:home'
# -------- LoginRequiredMiddleware ----------
LOGIN_EXEMPT_URLS = (
r'^favicon\.ico$',

View File

@@ -8,8 +8,8 @@ urlpatterns = patterns('',
(r'^admin/doc/', include('django.contrib.admindocs.urls')),
(r'^admin/', include(admin.site.urls)),
(r'^', include('common.urls')),
(r'^', include('main.urls')),
(r'^', include('common.urls', namespace='common')),
(r'^', include('main.urls', namespace='main')),
url(r'^docs/', include('rest_framework_swagger.urls')),
(r'^documents/', include('documents.urls', namespace='documents')),
(r'^folders/', include('folders.urls', namespace='folders')),