Author: leidel
Date: Mon Dec 22 08:00:50 2008
New Revision: 287

Modified:
    trunk/pages/admin/views.py
    trunk/pages/managers.py
    trunk/pages/models.py
    trunk/pages/templates/admin/pages/page/menu.html
    trunk/pages/views.py

Log:
Added new HIDDEN option for the status field that hides a page from the  
navigation. Also made navigation only contain the published root pages

Modified: trunk/pages/admin/views.py
==============================================================================
--- trunk/pages/admin/views.py  (original)
+++ trunk/pages/admin/views.py  Mon Dec 22 08:00:50 2008
@@ -14,7 +14,7 @@
      """
      if request.method == 'POST':
          page = Page.objects.get(pk=page_id)
-        if page.status == Page.DRAFT:
+        if page.status in (Page.DRAFT, Page.HIDDEN):
              page.status = Page.PUBLISHED
              page.save()
          elif page.status == Page.PUBLISHED:

Modified: trunk/pages/managers.py
==============================================================================
--- trunk/pages/managers.py     (original)
+++ trunk/pages/managers.py     Mon Dec 22 08:00:50 2008
@@ -7,6 +7,7 @@
  from pages import settings

  class PageManager(models.Manager):
+
      def on_site(self, site=None):
          if hasattr(site, 'domain'):
              return self.filter(**{'sites__domain__exact': site.domain})
@@ -34,8 +35,18 @@
          else:
              return self.exclude(id__in=exclude_list)

+    def navigation(self, site=None):
+        return self.root(site).filter(status=self.model.PUBLISHED)
+
+    def hidden(self, site=None):
+        return self.on_site(site).filter(status=self.model.HIDDEN)
+
      def published(self, site=None):
-        pub = self.on_site(site).filter(status=self.model.PUBLISHED)
+        print "yeah"
+        from itertools import chain
+        pub = chain(self.on_site(site).filter(status=self.model.PUBLISHED),
+                    self.hidden(site))
+        print list(pub)

          if settings.PAGE_SHOW_START_DATE:
              pub = pub.filter(publication_date__lte=datetime.now())

Modified: trunk/pages/models.py
==============================================================================
--- trunk/pages/models.py       (original)
+++ trunk/pages/models.py       Mon Dec 22 08:00:50 2008
@@ -31,9 +31,11 @@
      DRAFT = 0
      PUBLISHED = 1
      EXPIRED = 2
+    HIDDEN = 3
      STATUSES = (
          (DRAFT, _('Draft')),
          (PUBLISHED, _('Published')),
+        (HIDDEN, _('Hidden')),
      )
      author = models.ForeignKey(User, verbose_name=_('author'))
      parent = models.ForeignKey('self', null=True, blank=True,  
related_name='children', verbose_name=_('parent'))

Modified: trunk/pages/templates/admin/pages/page/menu.html
==============================================================================
--- trunk/pages/templates/admin/pages/page/menu.html    (original)
+++ trunk/pages/templates/admin/pages/page/menu.html    Mon Dec 22 08:00:50  
2008
@@ -27,7 +27,7 @@
      {% endfor %}
  </td>
  <td>
-{% if page.status %}
+{% ifequal page.status page.PUBLISHED %}
      <label>
          <img alt="True" src="{%  
admin_media_prefix %}img/admin/icon-yes.gif"/>
          <input type="checkbox" class="publish-checkbox" name="status-{{  
page.id }}" checked="checked" value="1" />
@@ -37,7 +37,7 @@
          <img alt="False" src="{%  
admin_media_prefix %}img/admin/icon-no.gif" />
          <input type="checkbox" class="publish-checkbox" name="status-{{  
page.id }}" value="0" />
      </label>
-{% endif %}
+{% endifequal %}
  </td>
  <td>
  {{ page.get_template }}

Modified: trunk/pages/views.py
==============================================================================
--- trunk/pages/views.py        (original)
+++ trunk/pages/views.py        Mon Dec 22 08:00:50 2008
@@ -4,20 +4,22 @@

  from pages import settings
  from pages.models import Page, Content
-from pages.utils import auto_render, get_template_from_request,  
get_language_from_request
+from pages.utils import auto_render, get_language_from_request

  def details(request, page_id=None, slug=None,
          template_name=settings.DEFAULT_PAGE_TEMPLATE):
      lang = get_language_from_request(request)
      site = request.site
-    pages = Page.objects.root(site).order_by("tree_id")
+    pages = Page.objects.navigation(site).order_by("tree_id")
      if pages:
          if page_id:
-            current_page = get_object_or_404(Page.objects.published(site),  
pk=page_id)
+            current_page = get_object_or_404(
+                Page.objects.published(site), pk=page_id)
          elif slug:
              slug_content = Content.objects.get_page_slug(slug, site)
              if slug_content and \
-                    slug_content.page.calculated_status == Page.PUBLISHED:
+                slug_content.page.calculated_status in (
+                    Page.PUBLISHED, Page.HIDDEN):
                  current_page = slug_content.page
              else:
                  raise Http404

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