Add Explore tab and query-less searching
Allows for exploration of all visible repositories, in paginated form. This change also fixes the layout of the header on different viewport sizes to be consistently a single line in height. Fixes https://jira.coreos.com/browse/QS-63
This commit is contained in:
parent
c7e439f593
commit
2ced523313
7 changed files with 39 additions and 30 deletions
|
@ -509,18 +509,20 @@ def _get_sorted_matching_repositories(lookup_value, repo_kind='image', include_p
|
|||
if search_fields is None:
|
||||
search_fields = set([SEARCH_FIELDS.description.name, SEARCH_FIELDS.name.name])
|
||||
|
||||
# Always search at least on name (init clause)
|
||||
clause = Repository.name.match(lookup_value)
|
||||
computed_score = RepositorySearchScore.score.alias('score')
|
||||
if lookup_value:
|
||||
# Always search at least on name (init clause)
|
||||
clause = Repository.name.match(lookup_value)
|
||||
computed_score = RepositorySearchScore.score.alias('score')
|
||||
|
||||
# If the description field is in the search fields, then we need to compute a synthetic score
|
||||
# to discount the weight of the description more than the name.
|
||||
if SEARCH_FIELDS.description.name in search_fields:
|
||||
clause = Repository.description.match(lookup_value) | clause
|
||||
|
||||
cases = [(Repository.name.match(lookup_value), 100 * RepositorySearchScore.score),]
|
||||
|
||||
computed_score = case(None, cases, RepositorySearchScore.score).alias('score')
|
||||
# If the description field is in the search fields, then we need to compute a synthetic score
|
||||
# to discount the weight of the description more than the name.
|
||||
if SEARCH_FIELDS.description.name in search_fields:
|
||||
clause = Repository.description.match(lookup_value) | clause
|
||||
cases = [(Repository.name.match(lookup_value), 100 * RepositorySearchScore.score),]
|
||||
computed_score = case(None, cases, RepositorySearchScore.score).alias('score')
|
||||
else:
|
||||
clause = (Repository.id >= 0)
|
||||
computed_score = RepositorySearchScore.score.alias('score')
|
||||
|
||||
query = (Repository.select(Repository, Namespace, computed_score)
|
||||
.join(Namespace, on=(Namespace.id == Repository.namespace_user)).where(clause)
|
||||
|
|
Reference in a new issue