aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fietsboek/views/edit.py23
1 files changed, 7 insertions, 16 deletions
diff --git a/fietsboek/views/edit.py b/fietsboek/views/edit.py
index 3daaacd..09c47f5 100644
--- a/fietsboek/views/edit.py
+++ b/fietsboek/views/edit.py
@@ -93,15 +93,13 @@ def do_edit(request):
pass
else:
LOGGER.info("Setting new track for %s", track.id)
- gpx_bytes = convert.smart_convert(gpx_bytes)
- try:
- gpxpy.parse(gpx_bytes)
- except Exception as exc:
+ new_track = convert.smart_convert(gpx_bytes)
+ if new_track is None:
request.session.flash(request.localizer.translate(_("flash.invalid_file")))
LOGGER.info("Could not parse updated gpx: %s", exc)
return HTTPFound(request.route_url("edit", track_id=track.id))
- data.compress_gpx(gpx_bytes)
- data.backup()
+ data.compress_backup(gpx_bytes)
+ track.set_path(new_track.path())
track.transformers = []
redo_cache = True
@@ -117,21 +115,14 @@ def do_edit(request):
track.sync_tags(tags)
actions.edit_images(request, request.context, manager=data)
- gpx = actions.execute_transformers(request, request.context)
- data.engrave_metadata(
- title=track.title,
- description=track.description,
- author_name=track.owner.name,
- time=track.date,
- gpx=gpx,
- )
+ actions.execute_transformers(request, request.context)
# actions.execute_transformers automatically rebuilds the cache, so we only need to do
# this if execute_transformers didn't do it
- if redo_cache and gpx is None:
+ if redo_cache:
LOGGER.info("New file detected, rebuilding cache for %s", track.id)
track.cache = None
- track.ensure_cache(gpx_bytes)
+ track.ensure_cache()
request.dbsession.add(track.cache)
return HTTPFound(request.route_url("details", track_id=track.id))