about summary refs log tree commit diff
diff options
context:
space:
mode:
authorFrederick Muriuki Muriithi2025-04-25 12:09:23 -0500
committerFrederick Muriuki Muriithi2025-04-25 12:25:38 -0500
commita962991759349c152cfc03293f5ce413be9be9d2 (patch)
treeb5a425d425933675c8e8d291fed086caed716b77
parentc1ef845689ff6bc63ab0606d0e5d11e8d9b1b38a (diff)
downloadgn-uploader-a962991759349c152cfc03293f5ce413be9be9d2.tar.gz
Fix display of upload errors for samples
* Update the uri to fit in with existing paradigm
* Pass the species and population to the endpoint
-rw-r--r--uploader/samples/views.py19
-rw-r--r--uploader/templates/samples/upload-failure.html2
2 files changed, 16 insertions, 5 deletions
diff --git a/uploader/samples/views.py b/uploader/samples/views.py
index 27e5d3c..c0adb88 100644
--- a/uploader/samples/views.py
+++ b/uploader/samples/views.py
@@ -221,7 +221,10 @@ def upload_status(species: dict, population: dict, job_id: uuid.UUID, **kwargs):
 
         if status == "error":
             return redirect(url_for(
-                "species.populations.samples.upload_failure", job_id=job_id))
+                "species.populations.samples.upload_failure",
+                species_id=species["SpeciesId"],
+                population_id=population["Id"],
+                job_id=job_id))
 
         error_filename = Path(jobs.error_filename(
             job_id, f"{app.config['UPLOAD_FOLDER']}/job_errors"))
@@ -241,9 +244,14 @@ def upload_status(species: dict, population: dict, job_id: uuid.UUID, **kwargs):
                            species=species,
                            population=population), 400
 
-@samplesbp.route("/upload/failure/<uuid:job_id>", methods=["GET"])
+
+@samplesbp.route("<int:species_id>/populations/<int:population_id>/"
+                 "upload-samples/failure/<uuid:job_id>",
+                 methods=["GET"])
 @require_login
-def upload_failure(job_id: uuid.UUID):
+@with_population(species_redirect_uri="species.populations.samples.index",
+                 redirect_uri="species.populations.samples.select_population")
+def upload_failure(species: dict, population: dict, job_id: uuid.UUID, **kwargs):
     """Display the errors of the samples upload failure."""
     job = with_redis_connection(lambda rconn: jobs.job(
         rconn, jobs.jobsnamespace(), job_id))
@@ -257,4 +265,7 @@ def upload_failure(job_id: uuid.UUID):
         if stat.st_size > 0:
             return render_template("worker_failure.html", job_id=job_id)
 
-    return render_template("samples/upload-failure.html", job=job)
+    return render_template("samples/upload-failure.html",
+                           species=species,
+                           population=population,
+                           job=job)
diff --git a/uploader/templates/samples/upload-failure.html b/uploader/templates/samples/upload-failure.html
index 458ab55..2cf8053 100644
--- a/uploader/templates/samples/upload-failure.html
+++ b/uploader/templates/samples/upload-failure.html
@@ -15,7 +15,7 @@
 
 <h3>Debugging Information</h3>
 <ul>
-  <li><strong>job id</strong>: {{job.job_id}}</li>
+  <li><strong>job id</strong>: {{job.jobid}}</li>
   <li><strong>status</strong>: {{job.status}}</li>
   <li><strong>job type</strong>: {{job["job-type"]}}</li>
 </ul>