Warning
This document is for an in-development version of Galaxy. You can alternatively view this page in the latest release if it exists or view the top of the latest release's documentation.
Source code for tool_shed.grids.repository_grid_filter_manager
import logging
from galaxy.util.bunch import Bunch
log = logging.getLogger(__name__)
[docs]class RepositoryGridFilterManager:
"""Provides filtered views of the many Tool SHed repository grids."""
filters = Bunch(
CERTIFIED_LEVEL_ONE="certified_level_one",
CERTIFIED_LEVEL_TWO="certified_level_two",
CERTIFIED_LEVEL_ONE_SUITES="certified_level_one_suites",
CERTIFIED_LEVEL_TWO_SUITES="certified_level_two_suites",
SUITES="suites",
)
[docs] def get_grid_title(self, trans, trailing_string="", default=""):
filter = self.get_filter(trans)
if filter == self.filters.CERTIFIED_LEVEL_ONE:
return f"Certified 1 Repositories {trailing_string}"
if filter == self.filters.CERTIFIED_LEVEL_TWO:
return f"Certified 2 Repositories {trailing_string}"
if filter == self.filters.CERTIFIED_LEVEL_ONE_SUITES:
return f"Certified 1 Repository Suites {trailing_string}"
if filter == self.filters.CERTIFIED_LEVEL_TWO_SUITES:
return f"Certified 2 Repository Suites {trailing_string}"
if filter == self.filters.SUITES:
return f"Repository Suites {trailing_string}"
return f"{default} {trailing_string}"
[docs] def get_filter(self, trans):
filter = trans.get_cookie(name="toolshedrepogridfilter")
return filter or None
[docs] def is_valid_filter(self, filter):
if filter is None:
return True
for valid_filter in self.filters.values():
if filter == valid_filter:
return True
return False
[docs] def set_filter(self, trans, **kwd):
# Set a session cookie value with the selected filter.
filter = kwd.get("filter", None)
if filter is not None and self.is_valid_filter(filter):
trans.set_cookie(value=filter, name="toolshedrepogridfilter")
# if the filter is not valid, expire the cookie.
trans.set_cookie(value=filter, name="toolshedrepogridfilter", age=-1)