return re.sub( search, replace, string )
-@register.filter
-def remove_tag_facet(url, facet):
+
+def remove_facet(facet_id, url, facet):
scheme, netloc, path, query, fragment = list(urlparse.urlsplit(str(url)))
- facet = 'tags_exact:%s' % facet.encode('utf-8')
+ facet = '%s_exact:%s' % (facet_id, facet.encode('utf-8'))
query_string = urlparse.parse_qsl(query)
query_string = [x for x in query_string if not (
x[0] == 'selected_facets' and x[1] == facet)]
url = urlparse.urlunsplit([scheme, netloc, path, query, None])
return re.sub(r'&page=\d+', '', url)
+@register.filter
+def remove_tag_facet(url, facet):
+ return remove_facet('tags', url, facet)
@register.filter
def remove_category_facet(url, facet):
- scheme, netloc, path, query, fragment = list(urlparse.urlsplit(str(url)))
- facet = 'categories_exact:%s' % facet.encode('utf-8')
- query_string = urlparse.parse_qsl(query)
- query_string = [x for x in query_string if not (
- x[0] == 'selected_facets' and x[1] == facet)]
- query = '&'.join(['%s=%s' % x for x in query_string])
- url = urlparse.urlunsplit([scheme, netloc, path, query, None])
- return re.sub(r'&page=\d+', '', url)
+ return remove_facet('categories', url, facet)
@register.filter
def remove_news_category_facet(url, facet):
- scheme, netloc, path, query, fragment = list(urlparse.urlsplit(str(url)))
- facet = 'news_categories_exact:%s' % facet.encode('utf-8')
- query_string = urlparse.parse_qsl(query)
- query_string = [x for x in query_string if not (
- x[0] == 'selected_facets' and x[1] == facet)]
- query = '&'.join(['%s=%s' % x for x in query_string])
- url = urlparse.urlunsplit([scheme, netloc, path, query, None])
- return re.sub(r'&page=\d+', '', url)
-
+ return remove_facet('news_categories', url, facet)
@register.filter
-def append_tag_facet(url, facet):
+def remove_format_facet(url, facet):
+ return remove_facet('format', url, facet)
+
+
+def append_facet(facet_id, url, facet):
facet = urllib2.quote(facet.encode('utf-8'), safe='')
if not '?' in url:
url = url + '?'
- return re.sub(r'&page=\d+', '', url + '&selected_facets=tags_exact:%s' % facet)
+ return re.sub(r'&page=\d+', '', url + '&selected_facets=%s_exact:%s' % (facet_id, facet))
+
+@register.filter
+def append_tag_facet(url, facet):
+ return append_facet('tags', url, facet)
@register.filter
def append_category_facet(url, facet):
- facet = urllib2.quote(facet.encode('utf-8'), safe='')
- if not '?' in url:
- url = url + '?'
- return re.sub(r'&page=\d+', '', url + '&selected_facets=categories_exact:%s' % facet)
+ return append_facet('categories', url, facet)
@register.filter
def append_news_category_facet(url, facet):
- facet = urllib2.quote(facet.encode('utf-8'), safe='')
- if not '?' in url:
- url = url + '?'
- return re.sub(r'&page=\d+', '', url + '&selected_facets=news_categories_exact:%s' % facet)
+ return append_facet('news_categories', url, facet)
+
+@register.filter
+def append_format_facet(url, facet):
+ return append_facet('format', url, facet)
+
@register.tag
def search_result_template(parser, token):