Ejemplo n.º 1
0
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'))
Ejemplo n.º 2
0
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'}
Ejemplo n.º 3
0
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'}
Ejemplo n.º 4
0
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)