Unverified Commit a92286ba authored by mvdbeek's avatar mvdbeek
Browse files

Merge branch 'release_24.2' into release_25.0

parents e5af5519 957f6f54
Loading
Loading
Loading
Loading
+2 −7
Original line number Diff line number Diff line
@@ -49,6 +49,7 @@ from galaxy.util import (
    unicodify,
)
from galaxy.util.compression_utils import FileObjType
from .util.generic_util import display_as_url

log = logging.getLogger(__name__)
verbose = False
@@ -121,13 +122,7 @@ class GenomeGraphs(Tabular):
                        action="display_at",
                        filename=f"ucsc_{site_name}",
                    )
                    display_url = "{}{}/display_as?id={}&display_app={}&authz_method=display_at".format(
                        base_url,
                        app.url_for(controller="root"),
                        dataset.id,
                        type,
                    )
                    display_url = quote_plus(display_url)
                    display_url = display_as_url(app, base_url, str(dataset.id), type)
                    # was display_url = quote_plus( "%s/display_as?id=%i&display_app=%s" % (base_url, dataset.id, type) )
                    # redirect_url = quote_plus( "%sdb=%s&position=%s:%s-%s&hgt.customText=%%s" % (site_url, dataset.dbkey, chrom, start, stop) )
                    sl = [
+4 −24
Original line number Diff line number Diff line
@@ -52,6 +52,7 @@ from . import (
    data,
    dataproviders,
)
from .util.generic_util import display_as_url

log = logging.getLogger(__name__)

@@ -340,14 +341,7 @@ class Interval(Tabular):
                action="display_at",
                filename="ucsc_" + site_name,
            )
            display_url = quote_plus(
                "{}{}/display_as?id={}&display_app={}&authz_method=display_at".format(
                    base_url,
                    app.url_for(controller="root"),
                    dataset.id,
                    type,
                )
            )
            display_url = display_as_url(app, base_url, str(dataset.id), type)
            redirect_url = quote_plus(f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s")
            link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}"
            ret_val.append((site_name, link))
@@ -777,14 +771,7 @@ class _RemoteCallMixin:
        """
        internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename=f'{type}_{site_name}')}"
        base_url = app.config.get("display_at_callback", base_url)
        display_url = quote_plus(
            "{}{}/display_as?id={}&display_app={}&authz_method=display_at".format(
                base_url,
                app.url_for(controller="root"),
                dataset.id,
                type,
            )
        )
        display_url = display_as_url(app, base_url, str(dataset.id), type)
        link = f"{internal_url}?redirect_url={redirect_url}&display_url={display_url}"
        return link

@@ -1559,14 +1546,7 @@ class CustomTrack(Tabular):
            for site_name, site_url in app.datatypes_registry.get_legacy_sites_by_build("ucsc", dataset.dbkey):
                if site_name in app.datatypes_registry.get_display_sites("ucsc"):
                    internal_url = f"{app.url_for(controller='dataset', dataset_id=dataset.id, action='display_at', filename='ucsc_' + site_name)}"
                    display_url = quote_plus(
                        "{}{}/display_as?id={}&display_app={}&authz_method=display_at".format(
                            base_url,
                            app.url_for(controller="root"),
                            dataset.id,
                            type,
                        )
                    )
                    display_url = display_as_url(app, base_url, str(dataset.id), type)
                    redirect_url = quote_plus(
                        f"{site_url}db={dataset.dbkey}&position={chrom}:{start}-{stop}&hgt.customText=%s"
                    )
+20 −0
Original line number Diff line number Diff line
from urllib.parse import (
    quote_plus,
    urlencode,
    urljoin,
)

from galaxy.util import commands


@@ -16,3 +22,17 @@ def count_special_lines(word, filename, invert=False):
    except commands.CommandLineException:
        return 0
    return int(out)


def display_as_url(app, base_url: str, dataset_id: str, display_app: str) -> str:
    """Generate a link to the ``display_as`` action the the ``root`` controller, encoded for use as a query param."""
    display_base_url = urljoin(base_url, app.url_for(controller="root", action="display_as"))
    display_query = urlencode(
        {
            "id": dataset_id,
            "display_app": display_app,
            "authz_method": "display_at",
        }
    )
    display_url = quote_plus(f"{display_base_url}?{display_query}")
    return display_url