diff options
Diffstat (limited to 'uploader/population')
| -rw-r--r-- | uploader/population/views.py | 38 |
1 files changed, 28 insertions, 10 deletions
diff --git a/uploader/population/views.py b/uploader/population/views.py index 8d4ceb7..a6e2358 100644 --- a/uploader/population/views.py +++ b/uploader/population/views.py @@ -11,6 +11,8 @@ from flask import (flash, Blueprint, current_app as app) +from uploader.sui import sui_template + from uploader.samples.views import samplesbp from uploader.flask_extensions import url_for from uploader.oauth2.client import oauth2_post @@ -19,11 +21,12 @@ from uploader.authorisation import require_login from uploader.genotypes.views import genotypesbp from uploader.datautils import enumerate_sequence from uploader.phenotypes.views import phenotypesbp -from uploader.phenotypes.models import datasets_by_population from uploader.expression_data.views import exprdatabp from uploader.species.models import all_species, species_by_id from uploader.monadic_requests import make_either_error_handler from uploader.input_validation import is_valid_representative_name +from uploader.phenotypes.models import (dataset_phenotypes, + datasets_by_population) from .models import (save_population, population_families, @@ -219,12 +222,27 @@ def view_population(species_id: int, population_id: int): species_id=species["SpeciesId"], streamlined_ui=streamlined_ui)) - return render_template(("populations/sui-view-population.html" - if bool(streamlined_ui) - else "populations/view-population.html"), - species=species, - population=population, - **({"dataset": datasets[0]} if len(datasets) == 1 else {}), - activelink="view-population", - streamlined_ui=streamlined_ui, - view_under_construction=request.args.get("view_under_construction", False)) + _datasets = datasets_by_population( + conn, species["SpeciesId"], population["Id"]) + assert len(datasets) == 0 or len(datasets) == 1, ( + "We expect only one phenotypes dataset per population.") + _kwargs = { + "species": species, + "population": population, + "activelink": "view-population", + "streamlined_ui": streamlined_ui, + "view_under_construction": request.args.get( + "view_under_construction", False) + } + + if len(_datasets) == 1: + _dataset = _datasets[0] + _kwargs = { + **_kwargs, + "dataset": _dataset, + "phenotypes": enumerate_sequence( + dataset_phenotypes(conn, population["Id"], _dataset["Id"])) + } + + return render_template(sui_template("populations/view-population.html"), + **_kwargs) |
