diff --git a/ckan/lib/helpers.py b/ckan/lib/helpers.py index fd26fe7fbca..abfe0bb91a3 100644 --- a/ckan/lib/helpers.py +++ b/ckan/lib/helpers.py @@ -337,16 +337,33 @@ def _subnav_named_route(text, routename, **kwargs): def default_group_type(): return str( config.get('ckan.default.group_type', 'group') ) -def new_facet_items(name, limit=10): +def unselected_facet_items(facet, limit=10): + '''Return the list of unselected facet items for the given facet, sorted + by count. + + Returns the list of unselected facet contraints or facet items (e.g. tag + names like "russian" or "tolstoy") for the given search facet (e.g. + "tags"), sorted by facet item count (i.e. the number of search results that + match each facet item). + + Reads the complete list of facet items for the given facet from + c.new_facets, and filters out the facet items that the user has already + selected. + + Arguments: + facet -- the name of the facet to filter. + limit -- the max. number of facet items to return. + + ''' if not c.new_facets or \ - not c.new_facets.get(name) or \ - not c.new_facets.get(name).get('items'): + not c.new_facets.get(facet) or \ + not c.new_facets.get(facet).get('items'): return [] facets = [] - for facet_item in c.new_facets.get(name)['items']: + for facet_item in c.new_facets.get(facet)['items']: if not len(facet_item['name'].strip()): continue - if not (name, facet_item['name']) in request.params.items(): + if not (facet, facet_item['name']) in request.params.items(): facets.append(facet_item) return sorted(facets, key=lambda item: item['count'], reverse=True)[:limit] diff --git a/ckan/lib/helpers_clean.py b/ckan/lib/helpers_clean.py index cc420600e72..8cef5193da4 100644 --- a/ckan/lib/helpers_clean.py +++ b/ckan/lib/helpers_clean.py @@ -28,7 +28,7 @@ subnav_link, subnav_named_route, default_group_type, - new_facet_items, + unselected_facet_items, facet_items, facet_title, # am_authorized, # depreciated diff --git a/ckan/templates/facets.html b/ckan/templates/facets.html index 5e20b95f32b..2d8924142a2 100644 --- a/ckan/templates/facets.html +++ b/ckan/templates/facets.html @@ -31,17 +31,17 @@ --> -
+

${h.facet_title(title)}

-

${if_empty}

+

${if_empty}

@@ -85,17 +85,17 @@

${h.facet_title(title)}

import logging logging.getLogger('ckan.templates.facets').warning("Deprecated function: ckan/templates/facets.html:facet_sidebar()") ?> -
+

${title(code)}

-

${if_empty}

+

${if_empty}

@@ -120,8 +120,8 @@

${title(code)}

--> -
  • ${if_empty}
  • -
  • +
  • ${if_empty}
  • +
  • ${label(facet_item.name)} (facet_item['count'])