def single_post(view): try: post = models.post.by_id(view.request.get('p')) if post.private and not models.user.user(view).admin: return base.raise_forbidden(view) view.put_page('post.html', { 'page_title': utils.escape.esc_title_plain(post.title), 'post': utils.escape.client_post(post), }) except ValueError: base.raise_not_found(view)
def single_post(view): def title_text(title): def flat_nodes(nodes): r = [] for n in nodes: if n.nodeType == n.TEXT_NODE: r.append(n.data) else: r.extend(flat_nodes(n.childNodes)) return r import xml.dom.minidom as dom return ''.join(flat_nodes(dom.parseString(( '<title>' + title + '</title>').encode('utf-8')).childNodes)) try: post = base.post_for_client(models.post.by_id(view.request.get('p'))) view.put_page('templates/post.html', { 'post': post, 'title': title_text(post.title), }) except ValueError: base.raise_not_found(view)