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)
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)
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
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)
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)
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")
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")