Example #1
0
def redirect(request, document_id):
	# FIXME F**k I am an idiot need to figure out a way to make this better.
	# Maybe something like Django's Content Types where it will look up the model
	# within the `INSTALLED_APPS` or something.
	try:
		doc = Document.load(db, document_id)
	except:
		raise Http404
	
	# Is it a Blog post?
	if doc.type == 'Post':
		from comfy.apps.blog.models import Post
		post = Post.load(db, doc.id)
		return HttpResponseRedirect(post.get_absolute_url())
	# Is it a Flat page?
	elif doc.type == 'FlatPage':
		from comfy.apps.flatpages.models import FlatPage
		f = FlatPage.load(db, doc.id)
		return HttpResponseRedirect(f.get_absolute_url())
	# Is it a Note?
	elif doc.type == 'Note':
		from comfy.apps.notes.models import Note
		note = Note.load(db, doc.id)
		return HttpResponseRedirect(note.get_absolute_url())
	elif doc.type == 'Bookmark':
		from comfy.apps.bookmarks.models import Bookmark
		bookmark = Bookmark.load(db, doc.id)
		return HttpResponseRedirect(bookmark.get_absolute_url())
	else:
		raise Http404
Example #2
0
def flatpage(request, url):
	"""
	Flat page view.
	"""
	if not url.endswith('/') and settings.APPEND_SLASH:
		return HttpResponseRedirect("%s/" % request.path)
	
	if not url.startswith('/'):
		url = "/" + url
	
	flatpages = list(FlatPage.by_url()[(url)])
	
	try:
		f = flatpages[0]
	except:
		raise Http404
	
	# If registration is required for accessing this page, and the user isn't
	# logged in, redirect to the login page.
	if f.registration_required and not request.user.is_authenticated():
		from django.contrib.auth.views import redirect_to_login
		return redirect_to_login(request.path)
	
	if f.template_name:
		t = loader.select_template((f.template_name, DEFAULT_TEMPLATE))
	else:
		t = loader.get_template(DEFAULT_TEMPLATE)
	
	# To avoid having to always use the "|safe" filter in flatpage templates,
	# mark the title and content as already safe (since they are raw HTML
	# content in the first place).
	f.title = mark_safe(f.title)
	f.content = mark_safe(f.content)
	
	c = RequestContext(request, {
		'flatpage': f,
	})
	response = HttpResponse(t.render(c))
	# populate_xheaders(request, response, FlatPage, f.id)
	return response