about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2026-02-10 10:40:07 -0600
committerFrederick Muriuki Muriithi2026-02-10 10:40:07 -0600
commitdab64dd96739a8cc397ab872f4e4a6ad6ea0fcd3 (patch)
treed8191b939361401863957799ef8fb55137cca1d3
parente3d8b80b76d56227244972690e65cc37688372dc (diff)
downloadgn-uploader-dab64dd96739a8cc397ab872f4e4a6ad6ea0fcd3.tar.gz
Samples: Redirect background job correctly on success.
-rw-r--r--uploader/samples/views.py23
1 files changed, 22 insertions, 1 deletions
diff --git a/uploader/samples/views.py b/uploader/samples/views.py
index 1c0569d..2a09f8e 100644
--- a/uploader/samples/views.py
+++ b/uploader/samples/views.py
@@ -172,7 +172,11 @@ def upload_samples(species_id: int, population_id: int):#pylint: disable=[too-ma
                 ] + (["--firstlineheading"] if firstlineheading else []),
                 "samples_upload",
                 extra_meta={
-                    "job_name": f"Samples Upload: {samples_file.name}"
+                    "job_name": f"Samples Upload: {samples_file.name}",
+                    "species_id": species["SpeciesId"],
+                    "population_id": population["Id"],
+                    "success_handler": (
+                        "uploader.samples.views.samples_upload_success_handler")
                 },
                 external_id=session.logged_in_user_id()),
             _jobs_db,
@@ -181,3 +185,20 @@ def upload_samples(species_id: int, population_id: int):#pylint: disable=[too-ma
                 app.logger.getEffectiveLevel()).lower())
         return redirect(
             url_for("background-jobs.job_status", job_id=job["job_id"]))
+
+
+def samples_upload_success_handler(job):
+    """Handler for background jobs: Successful upload of samples"""
+    return return_to_samples_list_view_handler(
+        job, "Samples uploaded successfully.")
+
+
+def return_to_samples_list_view_handler(job, msg):
+    """Handler for background jobs: Return to list_samples page."""
+    flash(msg, "alert alert-success")
+    return redirect(url_for(
+        "species.populations.samples."
+        "list_samples",
+        species_id=job["metadata"]["species_id"],
+        population_id=job["metadata"]["population_id"],
+        job_id=job["job_id"]))