about summary refs log tree commit diff
path: root/uploader/route_utils.py
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/route_utils.py')
-rw-r--r--uploader/route_utils.py12
1 files changed, 7 insertions, 5 deletions
diff --git a/uploader/route_utils.py b/uploader/route_utils.py
index 63b2852..53247e6 100644
--- a/uploader/route_utils.py
+++ b/uploader/route_utils.py
@@ -1,5 +1,5 @@
 """Generic routing utilities."""
-import json
+import logging
 from json.decoder import JSONDecodeError
 
 from flask import (flash,
@@ -15,6 +15,8 @@ from uploader.datautils import base64_encode_dict, base64_decode_to_dict
 from uploader.population.models import (populations_by_species,
                                         population_by_species_and_id)
 
+logger = logging.getLogger(__name__)
+
 def generic_select_population(
         # pylint: disable=[too-many-arguments, too-many-positional-arguments]
         species: dict,
@@ -56,9 +58,9 @@ def redirect_to_next(default: dict):
     assert "uri" in default, "You must provide at least the 'uri' value."
     try:
         next_page = base64_decode_to_dict(request.args.get("next"))
-        return redirect(url_for(
-            next_page["uri"],
-            **{key:value for key,value in next_page.items()}))
+        _uri = next_page["uri"]
+        next_page.pop("uri")
+        return redirect(url_for(_uri, **next_page))
     except (TypeError, JSONDecodeError) as _err:
         logger.debug("We could not decode the next value '%s'",
                      next_page,
@@ -66,7 +68,7 @@ def redirect_to_next(default: dict):
 
     return redirect(url_for(
         default["uri"],
-        **{key:value for key,value in default.items()}))
+        **{key:value for key,value in default.items() if key != "uri"}))
 
 
 def build_next_argument(uri: str, **kwargs) -> str: