(ip: str)
| 12690 | |
| 12691 | |
| 12692 | @app.route("/files/bulk", methods=["POST"]) |
| 12693 | @login_required |
| 12694 | def file_bulk_action(): |
| 12695 | entries = list(dict.fromkeys(request.form.getlist("entry")))[:500]; action = request.form.get("action", "download"); return_p = safe_relpath(request.form.get("return_p", "") or "") |
| 12696 | if not entries: flash("Select at least one entry."); return redirect(url_for("files", p=return_p)) |
| 12697 | if action == "download": |
| 12698 | try: |
| 12699 | path = _zip_paths(current_user(), entries, "selected") |
| 12700 | except Exception: |
| 12701 | flash("Not enough temporary storage to create the ZIP archive.") |
| 12702 | return redirect(url_for("files", p=return_p)) |
| 12703 | _log_file_activity(current_user(), "bulk_download", return_p, f"{len(entries)} entries") |
| 12704 | return _send_temporary_zip(path, "ButSystem-selected-files.zip") |
| 12705 | if action == "delete": |
| 12706 | count = 0 |
| 12707 | for rel in entries: |
no outgoing calls
no test coverage detected