},
}
+LOGIN_REDIRECT_URL = '/'
+
try:
from local_settings import *
except ImportError:
--- /dev/null
+{% extends "panikdb/base.html" %}
+{% load url from future %}
+
+{% block content %}
+
+<h2>Connexion</h2>
+
+{% if form.errors %}
+<p>Mot de passe incorrect. Essayez encore.</p>
+{% endif %}
+
+<form method="post" id="login-form" action="{% url 'django.contrib.auth.views.login' %}">
+{% csrf_token %}
+
+<p>
+ <label for="id_username">Identifiant</label>
+ {{ form.username }}
+</p>
+<p>
+ <label for="id_password">Mot de passe</label>
+ {{ form.password }}
+</p>
+
+<input type="submit" value="Se connecter" class="submit login" />
+<input type="hidden" name="next" value="{{ next }}" />
+</form>
+
+{% endblock %}
from django.conf import settings
from django.views.generic import RedirectView
from django.core.urlresolvers import reverse_lazy
+from django.contrib.auth.decorators import login_required
from django.contrib import admin
admin.autodiscover()
from haystack.query import SearchQuerySet
from emissions.views import FacetedSearchView
+from .emissions.urls import urlpatterns as emissions_urlpatterns
+
+from urls_utils import decorated_includes
+
sqs = SearchQuerySet().facet('categories').facet('tags')
(r'^ckeditor/', include('ckeditor.urls')),
url(r'^search/', search_view_factory(view_class=FacetedSearchView,
form_class=FacetedSearchForm, searchqueryset=sqs), name='haystack_search'),
- url(r'^emissions/', include('panikdb.emissions.urls')),
+
+ url(r'^emissions/',
+ decorated_includes(login_required, include(emissions_urlpatterns))),
+
+ url(r'^accounts/', include('registration.backends.default.urls')),
url(r'^admin/', include(admin.site.urls)),
)
--- /dev/null
+from django.core.urlresolvers import RegexURLPattern, RegexURLResolver
+
+class DecoratedURLPattern(RegexURLPattern):
+ def resolve(self, *args, **kwargs):
+ result = super(DecoratedURLPattern, self).resolve(*args, **kwargs)
+ if result:
+ result.func = self._decorate_with(result.func)
+ return result
+
+class DecoratedRegexURLResolver(RegexURLResolver):
+ def resolve(self, *args, **kwargs):
+ result = super(DecoratedRegexURLResolver, self).resolve(*args, **kwargs)
+ if result:
+ result.func = self._decorate_with(result.func)
+ return result
+
+def decorated_includes(func, includes, *args, **kwargs):
+ urlconf_module, app_name, namespace = includes
+
+ for item in urlconf_module:
+ if isinstance(item, RegexURLPattern):
+ item.__class__ = DecoratedURLPattern
+ item._decorate_with = func
+
+ elif isinstance(item, RegexURLResolver):
+ item.__class__ = DecoratedRegexURLResolver
+ item._decorate_with = func
+
+ return urlconf_module, app_name, namespace
+
django-ckeditor
django-taggit
git+https://github.com/toastdriven/django-haystack.git
+django-registration