From c92513f0c5a75261c444bb4a3bfccfcbd2976ebe Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laura=20Kl=C3=BCnder?= Date: Sat, 31 Aug 2024 19:25:29 +0200 Subject: [PATCH] only lock mapupdate for writable requests --- src/c3nav/editor/views/base.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/c3nav/editor/views/base.py b/src/c3nav/editor/views/base.py index be98bb5f..c6509bda 100644 --- a/src/c3nav/editor/views/base.py +++ b/src/c3nav/editor/views/base.py @@ -35,13 +35,18 @@ def maybe_lock_changeset_to_edit(request): yield +@contextmanager +def noctx(): + yield + + def accesses_mapdata(func): @wraps(func) def wrapped(request, *args, **kwargs): writable_method = request.method in ("POST", "PUT") if request.changeset.direct_editing: - with MapUpdate.lock(): + with (MapUpdate.lock() if writable_method else noctx()): changed_geometries.reset() with DatabaseOverlayManager.enable(changes=None, commit=writable_method) as manager: result = func(request, *args, **kwargs)