Exemplo n.º 1
0
    def bulk():
        action = request.form['action']

        doc_names_selected = request.form.getlist('doc_names_selected')
        selected_docs = [
            doc for doc in g.source.collection
            if doc.filename in doc_names_selected
        ]
        if selected_docs == []:
            if action == 'download':
                flash(gettext("No collections selected for download."),
                      "error")
            elif action in ('delete', 'confirm_delete'):
                flash(gettext("No collections selected for deletion."),
                      "error")
            return redirect(url_for('col.col', filesystem_id=g.filesystem_id))

        if action == 'download':
            source = get_source(g.filesystem_id)
            return download(source.journalist_filename, selected_docs)
        elif action == 'delete':
            return bulk_delete(g.filesystem_id, selected_docs)
        elif action == 'confirm_delete':
            return confirm_bulk_delete(g.filesystem_id, selected_docs)
        else:
            abort(400)
Exemplo n.º 2
0
    def bulk() -> Union[str, werkzeug.Response]:
        action = request.form['action']
        error_redirect = url_for('col.col', filesystem_id=g.filesystem_id)
        doc_names_selected = request.form.getlist('doc_names_selected')
        selected_docs = [
            doc for doc in g.source.collection
            if doc.filename in doc_names_selected
        ]
        if selected_docs == []:
            if action == 'download':
                flash(
                    Markup("<b>{}</b> {}".format(
                        # Translators: Error shown when a user has not selected items to act on.
                        escape(gettext("Nothing Selected")),
                        escape(
                            gettext(
                                "You must select one or more items for download"
                            )))),
                    'error')
            elif action in ('delete', 'confirm_delete'):
                flash(
                    Markup("<b>{}</b> {}".format(
                        # Translators: Error shown when a user has not selected items to act on.
                        escape(gettext("Nothing Selected")),
                        escape(
                            gettext(
                                "You must select one or more items for deletion"
                            )))),
                    'error')

            return redirect(error_redirect)

        if action == 'download':
            source = get_source(g.filesystem_id)
            return download(source.journalist_filename,
                            selected_docs,
                            on_error_redirect=error_redirect)
        elif action == 'delete':
            return bulk_delete(g.filesystem_id, selected_docs)
        elif action == 'confirm_delete':
            return confirm_bulk_delete(g.filesystem_id, selected_docs)
        else:
            abort(400)
Exemplo n.º 3
0
    def bulk():
        action = request.form['action']

        doc_names_selected = request.form.getlist('doc_names_selected')
        selected_docs = [doc for doc in g.source.collection
                         if doc.filename in doc_names_selected]
        if selected_docs == []:
            if action == 'download':
                flash(gettext("No collections selected for download."),
                      "error")
            elif action in ('delete', 'confirm_delete'):
                flash(gettext("No collections selected for deletion."),
                      "error")
            return redirect(url_for('col.col', filesystem_id=g.filesystem_id))

        if action == 'download':
            source = get_source(g.filesystem_id)
            return download(source.journalist_filename, selected_docs)
        elif action == 'delete':
            return bulk_delete(g.filesystem_id, selected_docs)
        elif action == 'confirm_delete':
            return confirm_bulk_delete(g.filesystem_id, selected_docs)
        else:
            abort(400)