author | Tero Marttila <terom@qmsk.net> |
Mon, 10 Oct 2016 19:48:34 +0300 | |
changeset 132 | 8f3cec6118bf |
parent 107 | 4e0b53e960cd |
permissions | -rw-r--r-- |
100 | 1 |
from django import http |
83
f167c68d9f34
qmsk_www_pages: symlink support for page redirects
Tero Marttila <terom@paivola.fi>
parents:
74
diff
changeset
|
2 |
from django.shortcuts import render, redirect |
54
92552b2d8e34
manage.py startapp qmsk_www_pages
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
3 |
|
107
4e0b53e960cd
move qmsk_www_pages to qmsk.pages
Tero Marttila <terom@qmsk.net>
parents:
100
diff
changeset
|
4 |
from qmsk.pages import pages |
60
bd9cea0b5b11
qmsk_www_pages: pages.Page.lookup() and .html support; logging
Tero Marttila <terom@paivola.fi>
parents:
56
diff
changeset
|
5 |
|
100 | 6 |
def page_error (request, page, status, title, error_message=None, error_exception=None): |
7 |
site = pages.SITE |
|
8 |
||
9 |
if page: |
|
10 |
page_hierarchy = list(page.hierarchy()) |
|
11 |
else: |
|
12 |
tree = site.tree() |
|
13 |
page_hierarchy = [(tree, None)] |
|
14 |
||
107
4e0b53e960cd
move qmsk_www_pages to qmsk.pages
Tero Marttila <terom@qmsk.net>
parents:
100
diff
changeset
|
15 |
return render(request, 'qmsk.pages/error.html', dict( |
100 | 16 |
site_name = site.name, |
17 |
page_hierarchy = page_hierarchy, |
|
18 |
error_page = page, |
|
19 |
error_title = title, |
|
20 |
error_message = error_message, |
|
21 |
error_output = str(error_exception) if error_exception else None, |
|
22 |
), status=status) |
|
23 |
||
54
92552b2d8e34
manage.py startapp qmsk_www_pages
Tero Marttila <terom@paivola.fi>
parents:
diff
changeset
|
24 |
# Create your views here. |
56 | 25 |
def page (request, page): |
74
d8413d2b0bee
qmsk_www_pages view: handle pages.NotFound, drop unused tree_list
Tero Marttila <terom@paivola.fi>
parents:
69
diff
changeset
|
26 |
try: |
d8413d2b0bee
qmsk_www_pages view: handle pages.NotFound, drop unused tree_list
Tero Marttila <terom@paivola.fi>
parents:
69
diff
changeset
|
27 |
page = pages.page(page) |
100 | 28 |
except pages.NotFound as error: |
29 |
return page_error(request, None, |
|
30 |
status = 404, |
|
31 |
title = u"Not Found", |
|
32 |
error_message = page, |
|
33 |
) |
|
60
bd9cea0b5b11
qmsk_www_pages: pages.Page.lookup() and .html support; logging
Tero Marttila <terom@paivola.fi>
parents:
56
diff
changeset
|
34 |
|
83
f167c68d9f34
qmsk_www_pages: symlink support for page redirects
Tero Marttila <terom@paivola.fi>
parents:
74
diff
changeset
|
35 |
redirect_page = page.redirect_page(request) |
f167c68d9f34
qmsk_www_pages: symlink support for page redirects
Tero Marttila <terom@paivola.fi>
parents:
74
diff
changeset
|
36 |
|
f167c68d9f34
qmsk_www_pages: symlink support for page redirects
Tero Marttila <terom@paivola.fi>
parents:
74
diff
changeset
|
37 |
if redirect_page: |
f167c68d9f34
qmsk_www_pages: symlink support for page redirects
Tero Marttila <terom@paivola.fi>
parents:
74
diff
changeset
|
38 |
return redirect('page', redirect_page) |
100 | 39 |
|
40 |
try: |
|
107
4e0b53e960cd
move qmsk_www_pages to qmsk.pages
Tero Marttila <terom@qmsk.net>
parents:
100
diff
changeset
|
41 |
return render(request, 'qmsk.pages/page.html', dict( |
100 | 42 |
site_name = page.tree.site.name, |
43 |
page_name = page.name, |
|
44 |
page_title = page.title, |
|
45 |
page_breadcrumb = page.breadcrumb(), |
|
46 |
page_hierarchy = list(page.hierarchy()), |
|
47 |
page_html = page.render_html(request), |
|
48 |
page_modified = page.modified(), |
|
49 |
)) |
|
50 |
except pages.RenderError as error: |
|
51 |
return page_error(request, page, |
|
52 |
status = 500, |
|
53 |
title = u"Server Error: {page}".format(page=page.url()), |
|
54 |
error_exception = error, |
|
55 |
) |