aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fietsboek/views/edit.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/fietsboek/views/edit.py b/fietsboek/views/edit.py
index a26452d..b3dcf1e 100644
--- a/fietsboek/views/edit.py
+++ b/fietsboek/views/edit.py
@@ -81,20 +81,22 @@ def do_edit(request):
if any(user not in track.tagged_people and user not in user_friends for user in tagged_people):
return HTTPBadRequest()
+ data = request.data_manager.open(track.id)
tz_offset = datetime.timedelta(minutes=int(request.params["date-tz"]))
date = datetime.datetime.fromisoformat(request.params["date"])
- track.date = date.replace(tzinfo=datetime.timezone(tz_offset))
-
- track.tagged_people = tagged_people
- track.title = request.params["title"]
- track.visibility = Visibility[request.params["visibility"]]
- track.type = TrackType[request.params["type"]]
- track.description = request.params["description"]
- track.badges = badges
- tags = request.params.getall("tag[]")
- track.sync_tags(tags)
-
- edit_images(request, request.context)
+ with data.lock():
+ track.date = date.replace(tzinfo=datetime.timezone(tz_offset))
+
+ track.tagged_people = tagged_people
+ track.title = request.params["title"]
+ track.visibility = Visibility[request.params["visibility"]]
+ track.type = TrackType[request.params["type"]]
+ track.description = request.params["description"]
+ track.badges = badges
+ tags = request.params.getall("tag[]")
+ track.sync_tags(tags)
+
+ edit_images(request, request.context)
return HTTPFound(request.route_url("details", track_id=track.id))