aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--wqflask/wqflask/marker_regression/exceptions.py13
-rw-r--r--wqflask/wqflask/templates/mapping_error.html7
-rw-r--r--wqflask/wqflask/views.py10
3 files changed, 25 insertions, 5 deletions
diff --git a/wqflask/wqflask/marker_regression/exceptions.py b/wqflask/wqflask/marker_regression/exceptions.py
new file mode 100644
index 00000000..8c7e822b
--- /dev/null
+++ b/wqflask/wqflask/marker_regression/exceptions.py
@@ -0,0 +1,13 @@
+"""Mapping Exception classes."""
+
+class NoMappingResultsError(Exception):
+ "Exception to raise if no results are computed."
+
+ def __init__(self, trait, dataset, mapping_method):
+ self.trait = trait
+ self.dataset = dataset
+ self.mapping_method = mapping_method
+ self.message = (
+ f"The mapping of trait '{trait}' from dataset '{dataset}' using "
+ f"the '{mapping_method}' mapping method returned no results.")
+ super().__init__(self.message, trait, mapping_method)
diff --git a/wqflask/wqflask/templates/mapping_error.html b/wqflask/wqflask/templates/mapping_error.html
index 963bf7d6..8364af3c 100644
--- a/wqflask/wqflask/templates/mapping_error.html
+++ b/wqflask/wqflask/templates/mapping_error.html
@@ -9,7 +9,12 @@
{%if error:%}
<p>
The following error was raised<br /><br />
- &nbsp;&nbsp;&nbsp;&nbsp;{{error.args[0]}}<br /><br />
+ <dl>
+ <dt>Error message</dt>
+ <dd>{{error.args[0]}}</dd>
+ <dt>Error Type</dt>
+ <dd>{{error_type}}</dd>
+ </dl>
</p>
<p>
Please contact Zach Sloan (zachary.a.sloan@gmail.com) or Arthur Centeno
diff --git a/wqflask/wqflask/views.py b/wqflask/wqflask/views.py
index ee0cd582..88dd31ba 100644
--- a/wqflask/wqflask/views.py
+++ b/wqflask/wqflask/views.py
@@ -46,6 +46,7 @@ from wqflask.external_tools import send_to_webgestalt
from wqflask.external_tools import send_to_geneweaver
from wqflask.comparison_bar_chart import comparison_bar_chart
from wqflask.marker_regression import run_mapping
+from wqflask.marker_regression.exceptions import NoMappingResultsError
from wqflask.marker_regression import display_mapping_results
from wqflask.network_graph import network_graph
from wqflask.correlation.show_corr_results import set_template_vars
@@ -720,10 +721,11 @@ def mapping_results_page():
try:
template_vars = run_mapping.RunMapping(start_vars, temp_uuid)
if template_vars.no_results:
- rendered_template = render_template("mapping_error.html")
- return rendered_template
- except FileNotFoundError as fnfe:
- rendered_template = render_template("mapping_error.html", error=fnfe)
+ raise NoMappingResultsError(
+ start_vars["trait_id"], start_vars["dataset"], start_vars["method"])
+ except Exception as exc:
+ rendered_template = render_template(
+ "mapping_error.html", error=exc, error_type=type(exc).__name__)
return rendered_template
if not template_vars.pair_scan: