Ejemplo n.º 1
0
        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):
Ejemplo n.º 2
0
        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')
Ejemplo n.º 3
0
    """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")
Ejemplo n.º 4
0
    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')
Ejemplo n.º 5
0
    """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")
Ejemplo n.º 6
0
    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)
Ejemplo n.º 7
0
    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')
Ejemplo n.º 8
0
  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')
Ejemplo n.º 9
0
            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