diff options
author | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-21 19:47:19 +0100 |
---|---|---|
committer | substantialnoninfringinguser <substantialnoninfringinguser@gmail.com> | 2009-05-21 19:47:19 +0100 |
commit | 54a62999c03f5293b42d56f9a99b1c5a3b02fa5f (patch) | |
tree | 8221aee4d3e16f1373c3162cd7c44eebb273345a /feincms/views | |
parent | 99949d466a0bf2667bad10f8c6c2c751036fd858 (diff) | |
download | troggle-54a62999c03f5293b42d56f9a99b1c5a3b02fa5f.tar.gz troggle-54a62999c03f5293b42d56f9a99b1c5a3b02fa5f.tar.bz2 troggle-54a62999c03f5293b42d56f9a99b1c5a3b02fa5f.zip |
[svn] Updates to allow subcave tree with nice admin.
Diffstat (limited to 'feincms/views')
-rw-r--r-- | feincms/views/__init__.py | 0 | ||||
-rw-r--r-- | feincms/views/base.py | 23 | ||||
-rw-r--r-- | feincms/views/decorators.py | 16 | ||||
-rw-r--r-- | feincms/views/generic/__init__.py | 0 | ||||
-rw-r--r-- | feincms/views/generic/create_update.py | 8 | ||||
-rw-r--r-- | feincms/views/generic/date_based.py | 12 | ||||
-rw-r--r-- | feincms/views/generic/list_detail.py | 7 | ||||
-rw-r--r-- | feincms/views/generic/simple.py | 6 |
8 files changed, 72 insertions, 0 deletions
diff --git a/feincms/views/__init__.py b/feincms/views/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/feincms/views/__init__.py diff --git a/feincms/views/base.py b/feincms/views/base.py new file mode 100644 index 0000000..47ca887 --- /dev/null +++ b/feincms/views/base.py @@ -0,0 +1,23 @@ +from django.http import HttpResponseRedirect +from django.shortcuts import render_to_response +from django.template import RequestContext +from django.utils import translation + +from feincms.module.page.models import Page + + +def handler(request, path=None): + if path is None: + path = request.path + + page = Page.objects.page_for_path_or_404(path) + + if page.redirect_to: + return HttpResponseRedirect(page.redirect_to) + + page.setup_request(request) + + return render_to_response(page.template.path, { + 'feincms_page': page, + }, context_instance=RequestContext(request)) + diff --git a/feincms/views/decorators.py b/feincms/views/decorators.py new file mode 100644 index 0000000..e31bcdd --- /dev/null +++ b/feincms/views/decorators.py @@ -0,0 +1,16 @@ +try: + from functools import wraps +except ImportError: + from django.utils.functional import wraps + +from feincms.module.page.models import Page + + +def add_page_to_extra_context(view_func): + def inner(request, *args, **kwargs): + kwargs.setdefault('extra_context', {}) + kwargs['extra_context']['feincms_page'] = Page.objects.best_match_for_request(request) + + return view_func(request, *args, **kwargs) + return wraps(view_func)(inner) + diff --git a/feincms/views/generic/__init__.py b/feincms/views/generic/__init__.py new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/feincms/views/generic/__init__.py diff --git a/feincms/views/generic/create_update.py b/feincms/views/generic/create_update.py new file mode 100644 index 0000000..8ffe4c7 --- /dev/null +++ b/feincms/views/generic/create_update.py @@ -0,0 +1,8 @@ +from django.views.generic import create_update +from feincms.views.decorators import add_page_to_extra_context + + +create_object = add_page_to_extra_context(create_update.create_object) +update_object = add_page_to_extra_context(create_update.update_object) +delete_object = add_page_to_extra_context(create_update.delete_object) + diff --git a/feincms/views/generic/date_based.py b/feincms/views/generic/date_based.py new file mode 100644 index 0000000..1b0474a --- /dev/null +++ b/feincms/views/generic/date_based.py @@ -0,0 +1,12 @@ +from django.views.generic import date_based +from feincms.views.decorators import add_page_to_extra_context + + +archive_index = add_page_to_extra_context(date_based.archive_index) +archive_year = add_page_to_extra_context(date_based.archive_year) +archive_month = add_page_to_extra_context(date_based.archive_month) +archive_week = add_page_to_extra_context(date_based.archive_week) +archive_day = add_page_to_extra_context(date_based.archive_day) +archive_today = add_page_to_extra_context(date_based.archive_today) +object_detail = add_page_to_extra_context(date_based.object_detail) + diff --git a/feincms/views/generic/list_detail.py b/feincms/views/generic/list_detail.py new file mode 100644 index 0000000..6684e5a --- /dev/null +++ b/feincms/views/generic/list_detail.py @@ -0,0 +1,7 @@ +from django.views.generic import list_detail +from feincms.views.decorators import add_page_to_extra_context + + +object_list = add_page_to_extra_context(list_detail.object_list) +object_detail = add_page_to_extra_context(list_detail.object_detail) + diff --git a/feincms/views/generic/simple.py b/feincms/views/generic/simple.py new file mode 100644 index 0000000..22f1b7e --- /dev/null +++ b/feincms/views/generic/simple.py @@ -0,0 +1,6 @@ +from django.views.generic import simple +from feincms.views.decorators import add_page_to_extra_context + + +direct_to_template = add_page_to_extra_context(simple.direct_to_template) + |