Clinical-Genomics / scout

VCF visualization interface
https://clinical-genomics.github.io/scout
BSD 3-Clause "New" or "Revised" License
150 stars 46 forks source link

General report does not generate on missing STR source #4895

Open dnil opened 10 hours ago

dnil commented 10 hours ago

Thank you for taking the time to contribute an issue!

Describe the bug Creating a report with an STR missing source (ZFHX3 currently) crashes.

To Reproduce Steps to reproduce the behavior:

  1. Go to '...'
  2. Click on '....'
  3. Scroll down to '....'
  4. See error

Expected behavior

2024-09-30 07:02:16,075 - scout.server.app - ERROR: Exception on /cust002/F0008649-3/case_report [GET] [in /venv/lib/python3.11/site-packages/flask/app.py:838]
Traceback (most recent call last):
 File "/venv/lib/python3.11/site-packages/flask/app.py", line 1473, in wsgi_app
   response = self.full_dispatch_request()
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask/app.py", line 882, in full_dispatch_request
   rv = self.handle_user_exception(e)
        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask_cors/extension.py", line 194, in wrapped_function
   return cors_after_request(app.make_response(f(*args, **kwargs)))
                                               ^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask/app.py", line 880, in full_dispatch_request
   rv = self.dispatch_request()
        ^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask/app.py", line 865, in dispatch_request
   return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args)  # type: ignore[no-any-return]
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/home/worker/app/scout/server/utils.py", line 92, in decorated_function
   return render_template(template_name, **context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask/templating.py", line 150, in render_template
   return _render(app, template, context)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/flask/templating.py", line 131, in _render
   rv = template.render(context)
        ^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/jinja2/environment.py", line 1304, in render
   self.environment.handle_exception()
 File "/venv/lib/python3.11/site-packages/jinja2/environment.py", line 939, in handle_exception
   raise rewrite_traceback_stack(source=source)
 File "/home/worker/app/scout/server/blueprints/cases/templates/cases/case_report.html", line 1447, in top-level template code
   <span class="badge rounded-pill bg-secondary" title="Manual rank">{{ manual_rank_options[variant.manual_rank]['label'] }}</span>
   ^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/home/worker/app/scout/server/templates/report_base.html", line 20, in top-level template code
   {% block body %}
 File "/home/worker/app/scout/server/blueprints/cases/templates/cases/case_report.html", line 64, in block 'body'
   {{ causatives_panel()}}
 File "/venv/lib/python3.11/site-packages/jinja2/runtime.py", line 782, in _invoke
   rv = self._func(*arguments)
        ^^^^^^^^^^^^^^^^^^^^^^
 File "/home/worker/app/scout/server/blueprints/cases/templates/cases/case_report.html", line 326, in template
   {{ variant_content(causative, loop.index) }}
   ^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/jinja2/runtime.py", line 782, in _invoke
   rv = self._func(*arguments)
        ^^^^^^^^^^^^^^^^^^^^^^
 File "/home/worker/app/scout/server/blueprints/cases/templates/cases/case_report.html", line 452, in template
   {{ str_variant_content(variant, index) }}
   ^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/jinja2/runtime.py", line 782, in _invoke
   rv = self._func(*arguments)
        ^^^^^^^^^^^^^^^^^^^^^^
 File "/home/worker/app/scout/server/blueprints/cases/templates/cases/case_report.html", line 1265, in template
   {% if variant.str_source.display %}
   ^^^^^^^^^^^^^^^^^^^^^^^^^
 File "/venv/lib/python3.11/site-packages/jinja2/environment.py", line 487, in getattr
   return getattr(obj, attribute)
          ^^^^^^^^^^^^^^^^^^^^^^^
jinja2.exceptions.UndefinedError: 'dict object' has no attribute 'str_source'