filename = metadata.get("filename", self.obj.name) content_type = metadata.get("mimetype") stream = blob.file.open("rb") return send_file( stream, as_attachment=True, attachment_filename=filename, mimetype=content_type, cache_timeout=0, add_etags=False, ) download_view = AttachmentDownload.as_view("download") bp.route("/<int:entity_id>/<int:object_id>/download")(download_view) class AttachmentEdit(BaseAttachmentView, ObjectEdit): _message_success = _l("Attachment edited") edit_view = AttachmentEdit.as_view("edit") bp.route("/<int:entity_id>/<int:object_id>/edit")(edit_view) class AttachmentCreateView(BaseAttachmentView, ObjectCreate): _message_success = _l("Attachment added") def init_object(self, args, kwargs):
metadata = blob.meta filename = metadata.get('filename', self.obj.name) content_type = metadata.get('mimetype') stream = blob.file.open('rb') return send_file(stream, as_attachment=True, attachment_filename=filename, mimetype=content_type, cache_timeout=0, add_etags=False, conditional=False) download_view = AttachmentDownload.as_view('download') bp.route('/<int:entity_id>/<int:object_id>/download')(download_view) class AttachmentEdit(BaseAttachmentView, ObjectEdit): _message_success = _l(u'Attachment edited') edit_view = AttachmentEdit.as_view('edit') bp.route('/<int:entity_id>/<int:object_id>/edit')(edit_view) class AttachmentCreateView(BaseAttachmentView, ObjectCreate): """ """ _message_success = _l(u'Attachment added')
"""Mixin for tag views.""" Model = Tag Form = TagForm def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.extension = current_app.extensions["tags"] class TagEdit(BaseTagView, ObjectEdit): _message_success = _l("Tag edited") edit_view = TagEdit.as_view("edit") bp.route("/manage/<int:object_id>/edit")(edit_view) class TagCreate(BaseTagView, ObjectCreate): _message_success = _l("Tag created") create_view = TagCreate.as_view("create") bp.route("/manage/new")(create_view) class TagDelete(BaseTagView, ObjectDelete): _message_success = _l("Tag deleted") delete_view = TagDelete.as_view("delete")
metadata = blob.meta filename = metadata.get('filename', self.obj.name) content_type = metadata.get('mimetype') stream = blob.file.open('rb') return send_file(stream, as_attachment=True, attachment_filename=filename, mimetype=content_type, cache_timeout=0, add_etags=False, conditional=False) download_view = AttachmentDownload.as_view('download') bp.route('/<int:entity_id>/<int:object_id>/download')(download_view) class AttachmentEdit(BaseAttachmentView, ObjectEdit): _message_success = _l(u'Attachment edited') edit_view = AttachmentEdit.as_view('edit') bp.route('/<int:entity_id>/<int:object_id>/edit')(edit_view) class AttachmentCreateView(BaseAttachmentView, ObjectCreate): """ """ _message_success = _l(u'Attachment added')
"""Mixin for tag views.""" Model = Tag Form = TagForm def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.extension = current_app.extensions["tags"] class TagEdit(BaseTagView, ObjectEdit): _message_success = _l("Tag edited") edit_view = TagEdit.as_view("edit") bp.route("/manage/<int:object_id>/edit")(edit_view) class TagCreate(BaseTagView, ObjectCreate): _message_success = _l("Tag created") create_view = TagCreate.as_view("create") bp.route("/manage/new")(create_view) class TagDelete(BaseTagView, ObjectDelete): _message_success = _l("Tag deleted") delete_view = TagDelete.as_view("delete")
def after_populate_obj(self): obj_meta = self.obj.meta.setdefault("abilian.core.models.comment", {}) history = obj_meta.setdefault("history", []) history.append( { "user_id": current_user.id, "user": str(current_user), "date": utc_dt(datetime.utcnow()).isoformat(), } ) self.obj.meta.changed() edit_view = CommentEditView.as_view("edit") bp.route("/<int:entity_id>/<int:object_id>/edit")(edit_view) class CommentCreateView(BaseCommentView, ObjectCreate): """""" _message_success = _l("Comment added") def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) def init_object(self, args, kwargs): args, kwargs = super().init_object(args, kwargs) self.obj.entity = self.entity session = sa.orm.object_session(self.entity)
Form = TagForm def __init__(self, *args, **kwargs): super(BaseTagView, self).__init__(*args, **kwargs) self.extension = current_app.extensions['tags'] def view_url(self): return url_for() class TagEdit(BaseTagView, ObjectEdit): _message_success = _l(u'Tag edited') edit_view = TagEdit.as_view('edit') bp.route('/manage/<int:object_id>/edit')(edit_view) class TagCreate(BaseTagView, ObjectCreate): _message_success = _l(u'Tag created') create_view = TagCreate.as_view('create') bp.route('/manage/new')(create_view) class TagDelete(BaseTagView, ObjectDelete): _message_success = _l(u'Tag deleted') delete_view = TagDelete.as_view('delete')
Form = TagForm def __init__(self, *args, **kwargs): super(BaseTagView, self).__init__(*args, **kwargs) self.extension = current_app.extensions['tags'] def view_url(self): return url_for() class TagEdit(BaseTagView, ObjectEdit): _message_success = _l(u'Tag edited') edit_view = TagEdit.as_view('edit') bp.route('/manage/<int:object_id>/edit')(edit_view) class TagCreate(BaseTagView, ObjectCreate): _message_success = _l(u'Tag created') create_view = TagCreate.as_view('create') bp.route('/manage/new')(create_view) class TagDelete(BaseTagView, ObjectDelete): _message_success = _l(u'Tag deleted') delete_view = TagDelete.as_view('delete')
result.update(task.result) handle = result["handle"] uploads = current_app.extensions["uploads"] filemeta = uploads.get_metadata(current_user, handle) result["filename"] = filemeta.get("filename", "export.xlsx") result["downloadUrl"] = url_for( "uploads.handle", handle=handle, _external=True ) return result # unattended state, return data anyway # FIXME: log at error level for sentry? return result bp.route("/export/task_status")(TaskStatusView.as_view("task_status")) class ExcelImport(BaseExcelView): methods = ["POST"] @csrf.protect def post(self): xls = request.files["file"] try: xls.stream.seek(0, 2) size = xls.stream.tell() xls.stream.seek(0) except BaseException: size = 0