Skip to content

Commit

Permalink
fix facet_items()
Browse files Browse the repository at this point in the history
  • Loading branch information
tobes committed Mar 28, 2012
1 parent 9146825 commit 563376e
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 6 deletions.
15 changes: 14 additions & 1 deletion ckan/lib/helpers.py
Expand Up @@ -321,7 +321,20 @@ def _subnav_named_route(text, routename, **kwargs):
def default_group_type():
return str( config.get('ckan.default.group_type', 'group') )

def facet_items(c, name, limit=10):

def facet_items(*args, **kwargs):
# facet_items() used to need c passing as the first arg
# this is depriciated as pointless
# throws error if ckan.restrict_template_vars is True
# When we move to strict helpers then this should be removed as a wrapper
if len(args) > 2 or (len(args) > 0 and 'name' in kwargs) or (len(args) > 1 and 'limit' in kwargs):
if not asbool(config.get('ckan.restrict_template_vars', 'false')):
return _facet_items(*args[1:], **kwargs)
raise Exception('facet_items() calling has been changed. remove c in template %s or included one' % c.__template_name)
return _facet_items(*args, **kwargs)


def _facet_items(name, limit=10):
if not c.facets or not c.facets.get(name):
return []
facets = []
Expand Down
10 changes: 5 additions & 5 deletions ckan/templates/facets.html
Expand Up @@ -6,17 +6,17 @@
>

<py:def function="facet_sidebar(code, limit=5, label=lambda n: n, title=h.facet_title, if_empty=None, count_label=lambda c: ' (%d)'%c)">
<div py:if="if_empty is not None or len(h.facet_items(c, code, limit=limit))" class="facet-box">
<div py:if="if_empty is not None or len(h.facet_items(code, limit=limit))" class="facet-box">
<h2>${title(code)}</h2>
<ul class="facet-options">
<li py:for="name, count in h.facet_items(c, code, limit=limit)"
<li py:for="name, count in h.facet_items(code, limit=limit)"
py:if="not (code, name) in c.fields">
<a href="${c.drill_down_url(**{code: name})}">
<span py:if="'format' in code.lower()">${h.icon(h.format_icon(name))}</span>
${label(name)}</a>${count_label(count)}
</li>
</ul>
<p py:if="not len(h.facet_items(c, code, limit=limit))">${if_empty}</p>
<p py:if="not len(h.facet_items(code, limit=limit))">${if_empty}</p>
</div>
</py:def>

Expand All @@ -30,8 +30,8 @@ <h2>${title(code)}</h2>
If if_empty is not None and there are no facets to filter on, then a single <li> element
is generated, with the text specified by if_empty
-->
<li py:if="if_empty and len(h.facet_items(c, code, limit=limit)) == 0">${if_empty}</li>
<li py:for="name, count in h.facet_items(c, code, limit=limit)"
<li py:if="if_empty and len(h.facet_items(code, limit=limit)) == 0">${if_empty}</li>
<li py:for="name, count in h.facet_items(code, limit=limit)"
py:if="not (code, name) in c.fields">
<a href="${c.drill_down_url(**{code: name})}">${label(name)}</a> (${count})
</li>
Expand Down

0 comments on commit 563376e

Please sign in to comment.