From cea67730a25376470dc34177865d09f319afcc08 Mon Sep 17 00:00:00 2001 From: Daniel Schadt Date: Sat, 1 Nov 2025 13:58:39 +0100 Subject: fix archive download --- fietsboek/views/browse.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fietsboek/views/browse.py b/fietsboek/views/browse.py index a01c015..c024828 100644 --- a/fietsboek/views/browse.py +++ b/fietsboek/views/browse.py @@ -534,12 +534,18 @@ def archive(request: Request) -> Response: if not track.is_visible_to(request.identity): return HTTPForbidden() + # Since we stream the data, we need to ensure it's loaded before we close + # the session + for track in tracks: + request.dbsession.refresh(track, ["points", "waypoints"]) + request.dbsession.expunge(track) + def generate(): stream = Stream() with ZipFile(stream, "w", ZIP_DEFLATED) as zipfile: # type: ignore - for track_id in track_ids: - data = request.data_manager.open(track_id).decompress_gpx() - zipfile.writestr(f"track_{track_id}.gpx", data) + for track in tracks: + data = track.gpx_xml() + zipfile.writestr(f"track_{track.id}.gpx", data) yield stream.readall() yield stream.readall() -- cgit v1.2.3