mirror of
https://github.com/galaxyproject/galaxy.git
synced 2026-09-24 16:30:27 +08:00
Fix SA2.0 usage in tool_shed.util.shed_index
This commit is contained in:
@@ -5,6 +5,10 @@ from mercurial import (
|
||||
hg,
|
||||
ui,
|
||||
)
|
||||
from sqlalchemy import (
|
||||
false,
|
||||
select,
|
||||
)
|
||||
from whoosh.writing import AsyncWriter
|
||||
|
||||
import tool_shed.webapp.model.mapping as ts_mapping
|
||||
@@ -91,21 +95,11 @@ def get_repos(sa_session, file_path, hgweb_config_dir, **kwargs):
|
||||
"""
|
||||
hgwcm = hgweb_config_manager
|
||||
hgwcm.hgweb_config_dir = hgweb_config_dir
|
||||
# Do not index deleted, deprecated, or "tool_dependency_definition" type repositories.
|
||||
q = (
|
||||
sa_session.query(model.Repository)
|
||||
.filter_by(deleted=False)
|
||||
.filter_by(deprecated=False)
|
||||
.order_by(model.Repository.update_time.desc())
|
||||
)
|
||||
q = q.filter(model.Repository.type != "tool_dependency_definition")
|
||||
for repo in q:
|
||||
for repo in get_repositories_for_indexing(sa_session):
|
||||
category_names = []
|
||||
for rca in sa_session.query(model.RepositoryCategoryAssociation).filter(
|
||||
model.RepositoryCategoryAssociation.repository_id == repo.id
|
||||
):
|
||||
for category in sa_session.query(model.Category).filter(model.Category.id == rca.category.id):
|
||||
category_names.append(category.name.lower())
|
||||
for rca in get_repo_cat_associations(sa_session, repo.id):
|
||||
category = sa_session.get(model.Category, rca.category.id)
|
||||
category_names.append(category.name.lower())
|
||||
categories = (",").join(category_names)
|
||||
repo_id = repo.id
|
||||
name = repo.name
|
||||
@@ -118,7 +112,7 @@ def get_repos(sa_session, file_path, hgweb_config_dir, **kwargs):
|
||||
|
||||
repo_owner_username = ""
|
||||
if repo.user_id is not None:
|
||||
user = sa_session.query(model.User).filter(model.User.id == repo.user_id).one()
|
||||
user = sa_session.get(model.User, repo.user_id)
|
||||
repo_owner_username = user.username.lower()
|
||||
|
||||
last_updated = pretty_print_time_interval(repo.update_time)
|
||||
@@ -196,3 +190,23 @@ def load_one_dir(path):
|
||||
)
|
||||
tools_in_dir.append(tool)
|
||||
return tools_in_dir
|
||||
|
||||
|
||||
def get_repositories_for_indexing(session):
|
||||
# Do not index deleted, deprecated, or "tool_dependency_definition" type repositories.
|
||||
Repository = model.Repository
|
||||
stmt = (
|
||||
select(Repository)
|
||||
.where(Repository.deleted == false())
|
||||
.where(Repository.deprecated == false())
|
||||
.where(Repository.type != "tool_dependency_definition")
|
||||
.order_by(Repository.update_time.desc())
|
||||
)
|
||||
return session.scalars(stmt)
|
||||
|
||||
|
||||
def get_repo_cat_associations(session, repository_id):
|
||||
stmt = select(model.RepositoryCategoryAssociation).where(
|
||||
model.RepositoryCategoryAssociation.repository_id == repository_id
|
||||
)
|
||||
return session.scalars(stmt)
|
||||
|
||||
Reference in New Issue
Block a user