def remove_post(id): if not g.db.doc_exist(id): abort(404) Post.get(id).delete() flash('Post was successfully removed') return redirect(url_for('show_posts'))
def like_post(id): if not g.db.doc_exist(id): abort(404) post = Post.get(id) uid = session.get('uid') if uid not in post.likes: post.likes.add(uid) else: post.likes.remove(uid) post.save() return 'OK', 200, {'Content-Type': 'text/plain'}
def star_post(id): if not g.db.doc_exist(id): abort(404) post = Post.get(id) uid = session.get('uid') user = User.get(uid) if uid not in post.stars: post.stars.add(uid) user.starred.add(post._id) else: post.stars.remove(uid) user.starred.remove(post._id) post.save() user.save() return 'OK', 200, {'Content-Type': 'text/plain'}
def edit_post(id): if not g.db.doc_exist(id): abort(404) form = PostForm(request.form) post = Post.get(id) errors = [] if request.method == 'POST' and form.validate(): post.title = form.title.data post.text = form.text.data post.tags = set(form.tags.data.split()) post.save() flash('Post was successfully updated') return redirect(url_for('show_posts')) elif request.method == 'POST' and not form.validate(): errors.extend(format_form_errors(form.errors.items())) elif request.method == 'GET': form.title.data = post.title form.text.data = post.text form.tags.data = ' '.join(post.tags) return render_template \ ('edit_post.html', id = id, form = form, submit = 'Update', errors = errors)