summaryrefslogtreecommitdiff
path: root/chimere/actions.py
diff options
context:
space:
mode:
Diffstat (limited to 'chimere/actions.py')
-rw-r--r--chimere/actions.py18
1 files changed, 16 insertions, 2 deletions
diff --git a/chimere/actions.py b/chimere/actions.py
index f965e9b..27614a1 100644
--- a/chimere/actions.py
+++ b/chimere/actions.py
@@ -22,9 +22,10 @@ Actions available in the main interface
"""
from django.conf import settings
from django.core.urlresolvers import reverse, NoReverseMatch
+from django.http import Http404
from django.utils.translation import ugettext_lazy as _
-from chimere.models import Page, Area
+from chimere.models import Page, Area, AreaPages
class Action:
@@ -79,6 +80,8 @@ def actions(area_name=''):
(Action('categories', 'chimere:category-directory',
_('Directory')), [])
)
+ else:
+ raise Http404
real_acts = []
for act, childs in acts:
@@ -99,9 +102,20 @@ def actions(area_name=''):
for child_act in real_childs:
child_act.update_url(area_name)
real_acts.append((act, real_childs))
- for page in Page.objects.filter(available=True).order_by('order'):
+ for page in Page.objects.filter(areas__urn=area.urn, available=True):
act = Action(page.mnemonic, 'chimere:extra_page', page.title,
[page.mnemonic])
act.update_url(area_name)
real_acts.append((act, []))
return real_acts
+
+
+def get_extra_pages(area):
+ if not area:
+ return []
+ extra_pages = []
+ for area_page in AreaPages.objects.filter(
+ area__urn=area.urn, page__available=True).order_by('order').all():
+ extra_pages.append(area_page.page)
+ return extra_pages
+