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
-~----------~----~----~----~------~----~------~--~---

Reply via email to