Exemple #1
0
 def entity_delete(self, entity_id):
   # TODO: don't really delete, switch state to "deleted"
   entity = self.managed_class.query.get(entity_id)
   assert entity is not None
   db.session.delete(entity)
   activity.send(self, actor=g.user, verb="delete", object=entity)
   db.session.commit()
   flash("Entity deleted", "success")
   return redirect(self.url)
Exemple #2
0
def upload_new_version(file_id):
  f = get_file(file_id)
  fd = request.files['file']

  f._update(fd.read(), fd.content_type)
  self = current_app._get_current_object()
  activity.send(self, actor=g.user, verb="update", object=f)
  db.session.commit()

  flash("New version successfully uploaded", "success")
  return redirect(ROOT + "%d" % f.id)
Exemple #3
0
def create_file(fs):
  if isinstance(fs.filename, unicode):
    name = fs.filename
  else:
    name = unicode(fs.filename, errors='ignore')
  f = File(name, fs.read(), fs.content_type)

  db.session.add(f)
  self = current_app._get_current_object()
  activity.send(self, actor=g.user, verb="post", object=f)

  return f
Exemple #4
0
def tag_post(file_id):
  f = get_file(file_id)
  tags = request.form.get("tags")

  f.tags = tags
  self = current_app._get_current_object()
  activity.send(self, actor=g.user, verb="tag", object=f)

  db.session.commit()

  flash("Tags successfully successfully updated", "success")

  return redirect(ROOT + "%d" % f.id)
Exemple #5
0
def delete_multiple():
  selected_ids = map(int, request.form.getlist("file-selected"))
  files = map(get_file, selected_ids)

  for f in files:
    db.session.delete(f)
    self = current_app._get_current_object()
    activity.send(self, actor=g.user, verb="delete", object=f)

  db.session.commit()
  flash("%d file(s) successfully deleted." % len(files), "success")

  return redirect(ROOT)
Exemple #6
0
  def entity_new_put(self):
    form = self.edit_form_class()
    entity = self.managed_class()

    if request.form.get('_action') == 'cancel':
      return redirect("%s/" % self.url)

    if form.validate():
      form.populate_obj(entity)
      db.session.add(entity)
      try:
        db.session.flush()
        activity.send(self, actor=g.user, verb="post", object=entity)
        db.session.commit()
        flash("Entity successfully added", "success")
        return redirect("%s/%d" % (self.url, entity.id))
      except ValidationError, e:
        db.session.rollback()
        flash(e.message, "error")
      except IntegrityError, e:
        db.session.rollback()
        flash("An entity with this name already exists in the database", "error")
Exemple #7
0
  def entity_edit_post(self, entity_id):
    entity = self.managed_class.query.get(entity_id)
    assert entity is not None
    form = self.edit_form_class(obj=entity)

    if request.form.get('_action') == 'cancel':
      return redirect("%s/%d" % (self.url, entity_id))
    elif form.validate():
      form.populate_obj(entity)
      activity.send(self, actor=g.user, verb="update", object=entity)
      try:
        db.session.commit()
        flash("Entity successfully edited", "success")
        return redirect("%s/%d" % (self.url, entity_id))
      except ValidationError, e:
        db.session.rollback()
        flash(e.message, "error")
      except IntegrityError, e:
        sentry = current_app.extensions.get('sentry')
        if sentry:
          sentry.captureException()
        db.session.rollback()
        flash("An entity with this name already exists in the database.", "error")