"""Feature blueprints registered by app.py (one module per page group). views.dell_updates - Updates > Dell drivers and BIOS views.ipxe - Updates > iPXE Secure Boot files views.blancco_update - Updates > Blancco Drive Eraser releases Shared here: the download speed cap form handler. The cap is one setting (services/updates_common.py settings.json) used by every download; each Updates page with downloads shows the same form and posts it to its own route, which calls save_speed_cap() and redirects back to that page. """ import math from flask import flash, request from services import updates_common from services.audit import audit def save_speed_cap(): """Validate and save the shared speed cap from the posted form, audit and flash the result. Returns the saved settings, or None when refused.""" try: value = float(request.form.get("max_mbps", "")) if not math.isfinite(value): # float() accepts "nan" raise ValueError("not a number") data = updates_common.save_settings(value) except ValueError as ex: msg = str(ex) if "between" in str(ex) else "enter a number of MB/s (0 = no cap)" flash(f"Speed cap not saved: {msg}", "danger") return None audit("UPDATES_SPEED_CAP", f"{data['max_mbps']} MB/s") cap = data["max_mbps"] flash(f"Download speed cap set to {cap:g} MB/s (shared by Dell and iPXE downloads)." if cap else "Download speed cap removed (shared by Dell and iPXE downloads).", "success") return data