diff options
Diffstat (limited to 'chimere/actions.py')
-rw-r--r-- | chimere/actions.py | 18 |
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 + |