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