def posts(): ''' (HTML) list of ALL posts. (also deletes broken posts, if error) ''' try: user = user_session.get_user() except user_session.NotLoggedIn: user = User() try: if user.is_admin: return render_template('posts.html', posts=Post.select(), user=user) else: return render_template('posts.html', posts=Post.select() \ .where(Post.status == 0), user=user) except Feed.DoesNotExist: # Ah. Database inconsistancy! Not good, lah. ps = Post.raw('select post.id from post' ' left join feed on feed.id = post.feed_id' ' where feed.id is null;') for p in ps: p.delete_instance() flash('Cleaned up old posts...') if user.is_admin: return render_template('posts.html', posts=Post.select(), user=user) else: return render_template('posts.html', posts=Post.select()\ .where(Post.status == 0), user=user)