diff --git a/snpdb/grids.py b/snpdb/grids.py index 2ac57944b..e756e4f36 100644 --- a/snpdb/grids.py +++ b/snpdb/grids.py @@ -28,7 +28,7 @@ class VCFListGrid(JqGridUserRowConfig): model = VCF caption = 'VCFs' - fields = ["id", "name", "date", "import_status", "genome_build__name", "user__username", "source", + fields = ["id", "name", "vcf_url", "date", "import_status", "genome_build__name", "user__username", "source", "uploadedvcf__uploaded_file__import_source", "genotype_samples", "project__name", "cohort__import_status", "uploadedvcf__vcf_importer__name", 'uploadedvcf__vcf_importer__version'] colmodel_overrides = { @@ -38,6 +38,7 @@ class VCFListGrid(JqGridUserRowConfig): 'formatter_kwargs': {"icon_css_class": "vcf-icon", "url_name": "view_vcf", "url_object_column": "id"}}, + "vcf_url": {'name': 'vcf_url', 'label': 'VCF URL', "model_field": False, 'hidden': True}, 'import_status': {'formatter': 'viewImportStatus'}, "genome_build__name": {"label": "Genome Build"}, 'user__username': {'label': 'Uploaded by', 'width': 60}, @@ -62,6 +63,18 @@ def __init__(self, user, **kwargs): genome_build = GenomeBuild.get_name_or_alias(genome_build_name) queryset = queryset.filter(genome_build=genome_build) + fake_number = "1234567890" + view_vcf_url = reverse('view_vcf', kwargs={"vcf_id": fake_number}).rstrip(fake_number) + view_vcf_url_prefix = get_url_from_view_path(view_vcf_url) + annotation_kwargs = { + "vcf_url": Func( + Value(view_vcf_url_prefix), + F("pk"), + function="CONCAT", + output_field=CharField(), + ), + } + queryset = queryset.annotate(**annotation_kwargs) self.queryset = queryset.order_by("-pk").values(*self.get_field_names()) self.extra_config.update({'shrinkToFit': False, 'sortname': 'id', diff --git a/snpdb/templates/snpdb/data/vcfs.html b/snpdb/templates/snpdb/data/vcfs.html index ec37a5aa6..1d9b5af54 100644 --- a/snpdb/templates/snpdb/data/vcfs.html +++ b/snpdb/templates/snpdb/data/vcfs.html @@ -25,5 +25,5 @@
{% user_data_grid_filter 'vcf' 'VCFs' %} -{% jqgrid 'vcfs_grid' 'vcf' search=False delete=True template_name='snpdb/grids/vcfs_grid.html' init_func='vcfInitFunc' %} +{% jqgrid 'vcfs_grid' 'vcf' search=False delete=True download_grid_json_as_csv=True template_name='snpdb/grids/vcfs_grid.html' init_func='vcfInitFunc' %}