about summary refs log tree commit diff
path: root/uploader/samples
diff options
context:
space:
mode:
Diffstat (limited to 'uploader/samples')
-rw-r--r--uploader/samples/views.py27
1 files changed, 24 insertions, 3 deletions
diff --git a/uploader/samples/views.py b/uploader/samples/views.py
index ee002ba..2a09f8e 100644
--- a/uploader/samples/views.py
+++ b/uploader/samples/views.py
@@ -138,7 +138,7 @@ def upload_samples(species_id: int, population_id: int):#pylint: disable=[too-ma
 
     try:
         samples_file = save_file(request.files["samples_file"],
-                                 Path(app.config["UPLOAD_FOLDER"]))
+                                 Path(app.config["UPLOADS_DIRECTORY"]))
     except AssertionError:
         flash("You need to provide a file with the samples data.",
               "alert-error")
@@ -172,12 +172,33 @@ 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,
-            Path(f"{app.config['UPLOAD_FOLDER']}/job_errors").absolute(),
+            Path(f"{app.config['UPLOADS_DIRECTORY']}/job_errors").absolute(),
             loglevel=logging.getLevelName(
                 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"]))