Author: batiste.bieler
Date: Mon Jan 26 05:37:39 2009
New Revision: 305
Modified:
trunk/pages/admin/__init__.py
trunk/pages/admin/utils.py
trunk/pages/views.py
Log:
Raise a 404 when there is not pages in the database
Modified: trunk/pages/admin/__init__.py
==============================================================================
--- trunk/pages/admin/__init__.py (original)
+++ trunk/pages/admin/__init__.py Mon Jan 26 05:37:39 2009
@@ -12,7 +12,6 @@
from pages import settings
from pages.models import Page, Content
-from pages.views import details
from pages.utils import get_template_from_request,
has_page_add_permission, \
get_language_from_request
Modified: trunk/pages/admin/utils.py
==============================================================================
--- trunk/pages/admin/utils.py (original)
+++ trunk/pages/admin/utils.py Mon Jan 26 05:37:39 2009
@@ -1,5 +1,6 @@
from django.template import loader, Context, RequestContext,
TemplateDoesNotExist
from django.template.loader_tags import ExtendsNode
+from django.http import Http404
# must be imported like this for isinstance
from django.templatetags.pages_tags import PlaceholderNode
@@ -13,7 +14,10 @@
temp = loader.get_template(template_name)
except TemplateDoesNotExist:
return []
- context = details(request, only_context=True)
+ try:
+ context = details(request, only_context=True)
+ except Http404:
+ context = {}
temp.render(RequestContext(request, context))
list = []
placeholders_recursif(temp.nodelist, list)
Modified: trunk/pages/views.py
==============================================================================
--- trunk/pages/views.py (original)
+++ trunk/pages/views.py Mon Jan 26 05:37:39 2009
@@ -6,7 +6,7 @@
from pages.models import Page, Content
from pages.utils import auto_render, get_language_from_request
-def details(request, page_id=None, slug=None,
+def details(request, page_id=None, slug=None, raise404=True,
template_name=settings.DEFAULT_PAGE_TEMPLATE):
"""
Example view that get the root pages for navigation,
@@ -16,6 +16,7 @@
lang = get_language_from_request(request)
site = request.site
pages = Page.objects.navigation(site).order_by("tree_id")
+
if pages:
if page_id:
current_page = get_object_or_404(
@@ -32,10 +33,7 @@
current_page = pages[0]
template_name = current_page.get_template()
else:
- # Don't raise Http404 here because
- # pages.admin.utils.get_placeholders need
- # to get the context correctly
- current_page = None
+ raise Http404
return template_name, locals()
details = auto_render(details)
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"pinax-updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/pinax-updates?hl=en
-~----------~----~----~----~------~----~------~--~---